Create VP9Encoder with a VP9 codec object
Empty codec objects do not make sense. Instead of creating an empty
object to be used as a placeholder in the API, at least create a
video codec with the right name.
Bug: webrtc:15214
Change-Id: I705d9d1361f353fe5dc538a6fe972c8a346f1247
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/307221
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40218}
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index 397f9db..fba49e8 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -710,6 +710,7 @@
"../../api/video_codecs:video_codecs_api",
"../../common_video",
"../../media:codec",
+ "../../media:media_constants",
"../../media:rtc_media_base",
"../../rtc_base:buffer",
"../../rtc_base:checks",
diff --git a/modules/video_coding/codecs/vp9/vp9.cc b/modules/video_coding/codecs/vp9/vp9.cc
index 222e57b..c1dbf3a 100644
--- a/modules/video_coding/codecs/vp9/vp9.cc
+++ b/modules/video_coding/codecs/vp9/vp9.cc
@@ -17,6 +17,7 @@
#include "api/video_codecs/scalability_mode.h"
#include "api/video_codecs/sdp_video_format.h"
#include "api/video_codecs/vp9_profile.h"
+#include "media/base/media_constants.h"
#include "modules/video_coding/codecs/vp9/libvpx_vp9_decoder.h"
#include "modules/video_coding/codecs/vp9/libvpx_vp9_encoder.h"
#include "modules/video_coding/svc/create_scalability_structure.h"
@@ -82,9 +83,9 @@
std::unique_ptr<VP9Encoder> VP9Encoder::Create() {
#ifdef RTC_ENABLE_VP9
- return std::make_unique<LibvpxVp9Encoder>(cricket::VideoCodec(),
- LibvpxInterface::Create(),
- FieldTrialBasedConfig());
+ return std::make_unique<LibvpxVp9Encoder>(
+ cricket::CreateVideoCodec(cricket::kVp9CodecName),
+ LibvpxInterface::Create(), FieldTrialBasedConfig());
#else
RTC_DCHECK_NOTREACHED();
return nullptr;
diff --git a/test/fuzzers/BUILD.gn b/test/fuzzers/BUILD.gn
index 37b709a..7748e21 100644
--- a/test/fuzzers/BUILD.gn
+++ b/test/fuzzers/BUILD.gn
@@ -657,6 +657,7 @@
"../../api:field_trials_view",
"../../api/video:video_frame",
"../../api/video_codecs:video_codecs_api",
+ "../../media:media_constants",
"../../modules/video_coding:frame_dependencies_calculator",
"../../modules/video_coding:webrtc_libvpx_interface",
"../../modules/video_coding:webrtc_vp9",
diff --git a/test/fuzzers/vp9_encoder_references_fuzzer.cc b/test/fuzzers/vp9_encoder_references_fuzzer.cc
index 7503507..2d34789 100644
--- a/test/fuzzers/vp9_encoder_references_fuzzer.cc
+++ b/test/fuzzers/vp9_encoder_references_fuzzer.cc
@@ -18,6 +18,7 @@
#include "api/video/video_frame.h"
#include "api/video_codecs/video_codec.h"
#include "api/video_codecs/video_encoder.h"
+#include "media/base/media_constants.h"
#include "modules/video_coding/codecs/interface/libvpx_interface.h"
#include "modules/video_coding/codecs/vp9/libvpx_vp9_encoder.h"
#include "modules/video_coding/frame_dependencies_calculator.h"
@@ -529,7 +530,7 @@
LibvpxState state;
// Initialize encoder
- LibvpxVp9Encoder encoder(cricket::VideoCodec(),
+ LibvpxVp9Encoder encoder(cricket::CreateVideoCodec(cricket::kVp9CodecName),
std::make_unique<StubLibvpx>(&state), field_trials);
VideoCodec codec = CodecSettings(helper);
if (encoder.InitEncode(&codec, EncoderSettings()) != WEBRTC_VIDEO_CODEC_OK) {