From 79c3c2f9579a51bbf8f40bb94535eb40d07c41d8 Mon Sep 17 00:00:00 2001 From: Jianjun Zhu Date: Wed, 2 Oct 2019 17:59:55 +0800 Subject: [PATCH] Handle kVideoCodecH265 in switch. --- api/video_codecs/video_encoder_config.cc | 11 +++++++++++ api/video_codecs/video_encoder_config.h | 2 +- test/scenario/video_stream.cc | 19 +++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/api/video_codecs/video_encoder_config.cc b/api/video_codecs/video_encoder_config.cc index a775018c126..ee2f2dbc986 100644 --- a/api/video_codecs/video_encoder_config.cc +++ b/api/video_codecs/video_encoder_config.cc @@ -132,6 +132,17 @@ void VideoEncoderConfig::H264EncoderSpecificSettings::FillVideoCodecH264( *h264_settings = specifics_; } +#ifndef DISABLE_H265 +VideoEncoderConfig::H265EncoderSpecificSettings::H265EncoderSpecificSettings( + const VideoCodecH265& specifics) + : specifics_(specifics) {} + +void VideoEncoderConfig::H265EncoderSpecificSettings::FillVideoCodecH265( + VideoCodecH265* h265_settings) const { + *h265_settings = specifics_; +} +#endif + VideoEncoderConfig::Vp8EncoderSpecificSettings::Vp8EncoderSpecificSettings( const VideoCodecVP8& specifics) : specifics_(specifics) {} diff --git a/api/video_codecs/video_encoder_config.h b/api/video_codecs/video_encoder_config.h index 27912149d4d..d4188e46a0c 100644 --- a/api/video_codecs/video_encoder_config.h +++ b/api/video_codecs/video_encoder_config.h @@ -88,7 +88,7 @@ class VideoEncoderConfig { void FillVideoCodecH265(VideoCodecH265* h265_settings) const override; private: - VideoCodecH264 specifics_; + VideoCodecH265 specifics_; }; #endif class Vp8EncoderSpecificSettings : public EncoderSpecificSettings { diff --git a/test/scenario/video_stream.cc b/test/scenario/video_stream.cc index 46852d8c99c..c937dd036b5 100644 --- a/test/scenario/video_stream.cc +++ b/test/scenario/video_stream.cc @@ -189,10 +189,29 @@ CreateH264SpecificSettings(VideoStreamConfig config) { VideoEncoderConfig::H264EncoderSpecificSettings>(h264_settings); } +#ifndef DISABLE_H265 +rtc::scoped_refptr +CreateH265SpecificSettings(VideoStreamConfig config) { + RTC_DCHECK_EQ(config.encoder.layers.temporal, 1); + RTC_DCHECK_EQ(config.encoder.layers.spatial, 1); + + VideoCodecH265 h265_settings = VideoEncoder::GetDefaultH265Settings(); + h265_settings.frameDroppingOn = config.encoder.frame_dropping; + h265_settings.keyFrameInterval = + config.encoder.key_frame_interval.value_or(0); + return new rtc::RefCountedObject< + VideoEncoderConfig::H265EncoderSpecificSettings>(h265_settings); +} +#endif + rtc::scoped_refptr CreateEncoderSpecificSettings(VideoStreamConfig config) { using Codec = VideoStreamConfig::Encoder::Codec; switch (config.encoder.codec) { +#ifndef DISABLE_H265 + case Codec::kVideoCodecH265: + return CreateH265SpecificSettings(config); +#endif case Codec::kVideoCodecH264: return CreateH264SpecificSettings(config); case Codec::kVideoCodecVP8: