diff --git a/media/base/codec.cc b/media/base/codec.cc index 629aba4350..625875b285 100644 --- a/media/base/codec.cc +++ b/media/base/codec.cc @@ -231,6 +231,11 @@ VideoCodec::VideoCodec() : Codec() { clockrate = kVideoCodecClockrate; } +VideoCodec::VideoCodec(const webrtc::SdpVideoFormat& c) + : Codec(0 /* id */, c.name, kVideoCodecClockrate) { + params = c.parameters; +} + VideoCodec::VideoCodec(const VideoCodec& c) = default; VideoCodec::VideoCodec(VideoCodec&& c) = default; VideoCodec& VideoCodec::operator=(const VideoCodec& c) = default; diff --git a/media/base/codec.h b/media/base/codec.h index bbd7760cc0..6c88998077 100644 --- a/media/base/codec.h +++ b/media/base/codec.h @@ -17,6 +17,7 @@ #include #include "api/rtpparameters.h" +#include "api/video_codecs/sdp_video_format.h" #include "common_types.h" // NOLINT(build/include) #include "media/base/mediaconstants.h" @@ -176,6 +177,7 @@ struct VideoCodec : public Codec { // Creates an empty codec. VideoCodec(); VideoCodec(const VideoCodec& c); + explicit VideoCodec(const webrtc::SdpVideoFormat& c); VideoCodec(VideoCodec&& c); ~VideoCodec() override = default; diff --git a/media/engine/webrtcvideoengine.cc b/media/engine/webrtcvideoengine.cc index 8dda10be01..5db4d207a2 100644 --- a/media/engine/webrtcvideoengine.cc +++ b/media/engine/webrtcvideoengine.cc @@ -153,10 +153,7 @@ class WebRtcEncoderFactoryAdapter : public EncoderFactoryAdapter { std::vector codecs; for (const webrtc::SdpVideoFormat& format : encoder_factory_->GetSupportedFormats()) { - VideoCodec codec; - codec.name = format.name; - codec.params = format.parameters; - codecs.push_back(codec); + codecs.push_back(VideoCodec(format)); } return AssignPayloadTypesAndAddAssociatedRtxCodecs(codecs); }