diff --git a/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.h b/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.h index 05887227e6..1cfad21cd0 100644 --- a/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.h +++ b/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.h @@ -80,6 +80,7 @@ class H264VideoToolboxEncoder : public H264Encoder { EncodedImageCallback* callback_; VTCompressionSessionRef compression_session_; BitrateAdjuster bitrate_adjuster_; + H264PacketizationMode packetization_mode_; uint32_t target_bitrate_bps_; uint32_t encoder_bitrate_bps_; int32_t width_; diff --git a/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.mm b/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.mm index ab65b6ab92..ea4cd04f22 100644 --- a/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.mm +++ b/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.mm @@ -342,13 +342,14 @@ namespace webrtc { // drastically reduced bitrate, so we want to avoid that. In steady state // conditions, 0.95 seems to give us better overall bitrate over long periods // of time. -H264VideoToolboxEncoder::H264VideoToolboxEncoder( - const cricket::VideoCodec& codec) +H264VideoToolboxEncoder::H264VideoToolboxEncoder(const cricket::VideoCodec& codec) : callback_(nullptr), compression_session_(nullptr), bitrate_adjuster_(Clock::GetRealTimeClock(), .5, .95), + packetization_mode_(H264PacketizationMode::NonInterleaved), profile_(internal::ExtractProfile(codec)) { LOG(LS_INFO) << "Using profile " << internal::CFStringToString(profile_); + RTC_CHECK(cricket::CodecNamesEq(codec.name, cricket::kH264CodecName)); } H264VideoToolboxEncoder::~H264VideoToolboxEncoder() { @@ -470,6 +471,9 @@ int H264VideoToolboxEncoder::Encode( this, codec_specific_info, width_, height_, frame.render_time_ms(), frame.timestamp(), frame.rotation())); + encode_params->codec_specific_info.codecSpecific.H264.packetization_mode = + packetization_mode_; + // Update the bitrate if needed. SetBitrateBps(bitrate_adjuster_.GetAdjustedBitrateBps());