| Index: webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
|
| index a4a2b150b4416c451bbaedf519581d2de43d1226..93df1ac8718ba908ded64f5340c990f0fa7b200f 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
|
| @@ -49,7 +49,9 @@ RTPSenderVideo::RTPSenderVideo(Clock* clock, RTPSender* rtp_sender)
|
| : rtp_sender_(rtp_sender),
|
| clock_(clock),
|
| fec_bitrate_(1000, RateStatistics::kBpsScale),
|
| - video_bitrate_(1000, RateStatistics::kBpsScale) {}
|
| + video_bitrate_(1000, RateStatistics::kBpsScale) {
|
| + encoder_checker_.Detach();
|
| +}
|
|
|
| RTPSenderVideo::~RTPSenderVideo() {}
|
|
|
| @@ -228,6 +230,7 @@ bool RTPSenderVideo::SendVideo(RtpVideoCodecTypes video_type,
|
| size_t payload_size,
|
| const RTPFragmentationHeader* fragmentation,
|
| const RTPVideoHeader* video_header) {
|
| + RTC_DCHECK_CALLED_SEQUENTIALLY(&encoder_checker_);
|
| if (payload_size == 0)
|
| return false;
|
|
|
| @@ -246,9 +249,16 @@ bool RTPSenderVideo::SendVideo(RtpVideoCodecTypes video_type,
|
| // packet in each group of packets which make up another type of frame
|
| // (e.g. a P-Frame) only if the current value is different from the previous
|
| // value sent.
|
| - // Here we are adding it to every packet of every frame at this point.
|
| - if (video_header && video_header->rotation != kVideoRotation_0)
|
| - rtp_header->SetExtension<VideoOrientation>(video_header->rotation);
|
| + if (video_header) {
|
| + // Set rotation when key frame or when changed (to follow standard).
|
| + // Or when different from 0 (to follow current receiver implementation).
|
| + VideoRotation current_rotation = video_header->rotation;
|
| + if (frame_type == kVideoFrameKey ||
|
| + current_rotation != last_rotation_ ||
|
| + current_rotation != kVideoRotation_0)
|
| + rtp_header->SetExtension<VideoOrientation>(current_rotation);
|
| + last_rotation_ = current_rotation;
|
| + }
|
|
|
| size_t packet_capacity = rtp_sender_->MaxPayloadLength() -
|
| FecPacketOverhead() -
|
|
|