diff options
Diffstat (limited to 'modules/rtp_rtcp/source/rtp_sender_video.cc')
-rw-r--r-- | modules/rtp_rtcp/source/rtp_sender_video.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/modules/rtp_rtcp/source/rtp_sender_video.cc b/modules/rtp_rtcp/source/rtp_sender_video.cc index 3b992dc4eb..4919e3ebf4 100644 --- a/modules/rtp_rtcp/source/rtp_sender_video.cc +++ b/modules/rtp_rtcp/source/rtp_sender_video.cc @@ -169,8 +169,7 @@ RTPSenderVideo::RTPSenderVideo(const Config& config) absolute_capture_time_sender_(config.clock), frame_transformer_delegate_( config.frame_transformer - ? new rtc::RefCountedObject< - RTPSenderVideoFrameTransformerDelegate>( + ? rtc::make_ref_counted<RTPSenderVideoFrameTransformerDelegate>( this, config.frame_transformer, rtp_sender_->SSRC(), @@ -362,7 +361,8 @@ void RTPSenderVideo::AddRtpHeaderExtensions( if (video_header.generic) { bool extension_is_set = false; - if (video_structure_ != nullptr) { + if (packet->IsRegistered<RtpDependencyDescriptorExtension>() && + video_structure_ != nullptr) { DependencyDescriptor descriptor; descriptor.first_packet_in_frame = first_packet; descriptor.last_packet_in_frame = last_packet; @@ -408,7 +408,8 @@ void RTPSenderVideo::AddRtpHeaderExtensions( } // Do not use generic frame descriptor when dependency descriptor is stored. - if (!extension_is_set) { + if (packet->IsRegistered<RtpGenericFrameDescriptorExtension00>() && + !extension_is_set) { RtpGenericFrameDescriptor generic_descriptor; generic_descriptor.SetFirstPacketInSubFrame(first_packet); generic_descriptor.SetLastPacketInSubFrame(last_packet); @@ -438,7 +439,8 @@ void RTPSenderVideo::AddRtpHeaderExtensions( } } - if (first_packet && + if (packet->IsRegistered<RtpVideoLayersAllocationExtension>() && + first_packet && send_allocation_ != SendVideoLayersAllocation::kDontSend && (video_header.frame_type == VideoFrameType::kVideoFrameKey || PacketWillLikelyBeRequestedForRestransmitionIfLost(video_header))) { @@ -524,7 +526,8 @@ bool RTPSenderVideo::SendVideo( AbsoluteCaptureTimeSender::GetSource(single_packet->Ssrc(), single_packet->Csrcs()), single_packet->Timestamp(), kVideoPayloadTypeFrequency, - Int64MsToUQ32x32(single_packet->capture_time_ms() + NtpOffsetMs()), + Int64MsToUQ32x32( + clock_->ConvertTimestampToNtpTimeInMilliseconds(capture_time_ms)), /*estimated_capture_clock_offset=*/ include_capture_clock_offset_ ? estimated_capture_clock_offset_ms : absl::nullopt); |