Skip to content
This repository was archived by the owner on Oct 25, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions api/video_codecs/video_encoder_config.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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) {}
Expand Down
2 changes: 1 addition & 1 deletion api/video_codecs/video_encoder_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ class VideoEncoderConfig {
void FillVideoCodecH265(VideoCodecH265* h265_settings) const override;

private:
VideoCodecH264 specifics_;
VideoCodecH265 specifics_;
};
#endif
class Vp8EncoderSpecificSettings : public EncoderSpecificSettings {
Expand Down
19 changes: 19 additions & 0 deletions test/scenario/video_stream.cc
Original file line number Diff line number Diff line change
Expand Up @@ -189,10 +189,29 @@ CreateH264SpecificSettings(VideoStreamConfig config) {
VideoEncoderConfig::H264EncoderSpecificSettings>(h264_settings);
}

#ifndef DISABLE_H265
rtc::scoped_refptr<VideoEncoderConfig::EncoderSpecificSettings>
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<VideoEncoderConfig::EncoderSpecificSettings>
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:
Expand Down