Delete CreateVideoDecoder from VideoDecoderFactory interface

Instead require Create to be implemented

Bug: webrtc:15791
Change-Id: I17477b5f047d86b6a05bda594c66d20f8f43a2c6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340480
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41857}
diff --git a/api/test/mock_video_decoder_factory.h b/api/test/mock_video_decoder_factory.h
index 48d96ea..f661ea3 100644
--- a/api/test/mock_video_decoder_factory.h
+++ b/api/test/mock_video_decoder_factory.h
@@ -34,10 +34,6 @@
               Create,
               (const Environment&, const SdpVideoFormat&),
               (override));
-  MOCK_METHOD(std::unique_ptr<VideoDecoder>,
-              CreateVideoDecoder,
-              (const SdpVideoFormat&),
-              (override));
   MOCK_METHOD(void, Die, ());
 };
 }  // namespace webrtc
diff --git a/api/video_codecs/video_decoder_factory.cc b/api/video_codecs/video_decoder_factory.cc
index 60fe92b..20e9fff 100644
--- a/api/video_codecs/video_decoder_factory.cc
+++ b/api/video_codecs/video_decoder_factory.cc
@@ -10,11 +10,7 @@
 
 #include "api/video_codecs/video_decoder_factory.h"
 
-#include <memory>
-
 #include "api/video_codecs/sdp_video_format.h"
-#include "api/video_codecs/video_decoder.h"
-#include "rtc_base/checks.h"
 
 namespace webrtc {
 
@@ -28,18 +24,4 @@
                           format.IsCodecInList(GetSupportedFormats())};
 }
 
-std::unique_ptr<VideoDecoder> VideoDecoderFactory::Create(
-    const Environment& env,
-    const SdpVideoFormat& format) {
-  return CreateVideoDecoder(format);
-}
-
-std::unique_ptr<VideoDecoder> VideoDecoderFactory::CreateVideoDecoder(
-    const SdpVideoFormat& format) {
-  // Newer code shouldn't call this function,
-  // Older code should implement it in derived classes.
-  RTC_CHECK_NOTREACHED();
-  return nullptr;
-}
-
 }  // namespace webrtc
diff --git a/api/video_codecs/video_decoder_factory.h b/api/video_codecs/video_decoder_factory.h
index 92a2697..89433e0 100644
--- a/api/video_codecs/video_decoder_factory.h
+++ b/api/video_codecs/video_decoder_factory.h
@@ -50,16 +50,9 @@
                                          bool reference_scaling) const;
 
   // Creates a VideoDecoder for the specified `format`.
-  // TODO: bugs.webrtc.org/15791 - Make pure virtual when implemented in all
-  // derived classes.
-  virtual std::unique_ptr<VideoDecoder> Create(const Environment& env,
-                                               const SdpVideoFormat& format);
-
- private:
-  // TODO: bugs.webrtc.org/15791 - Delete when all derived classes implement
-  // `Create`.
-  virtual std::unique_ptr<VideoDecoder> CreateVideoDecoder(
-      const SdpVideoFormat& format);
+  virtual std::unique_ptr<VideoDecoder> Create(
+      const Environment& env,
+      const SdpVideoFormat& format) = 0;
 };
 
 }  // namespace webrtc