| Index: webrtc/video/payload_router.cc
|
| diff --git a/webrtc/video/payload_router.cc b/webrtc/video/payload_router.cc
|
| index 21439022c1dc3b69a91c981e63dcd42357def8ca..958785269468977dff74daa844a9f00a22879f9e 100644
|
| --- a/webrtc/video/payload_router.cc
|
| +++ b/webrtc/video/payload_router.cc
|
| @@ -137,15 +137,16 @@ void PayloadRouter::UpdateModuleSendingState() {
|
| }
|
| }
|
|
|
| -int32_t PayloadRouter::Encoded(const EncodedImage& encoded_image,
|
| - const CodecSpecificInfo* codec_specific_info,
|
| - const RTPFragmentationHeader* fragmentation) {
|
| +EncodedImageCallback::Result PayloadRouter::OnEncodedImage(
|
| + const EncodedImage& encoded_image,
|
| + const CodecSpecificInfo* codec_specific_info,
|
| + const RTPFragmentationHeader* fragmentation) {
|
| rtc::CritScope lock(&crit_);
|
| RTC_DCHECK(!rtp_modules_.empty());
|
| if (!active_ || num_sending_modules_ == 0)
|
| - return -1;
|
| + return Result(Result::ERROR_SEND_FAILED);
|
|
|
| - int stream_idx = 0;
|
| + int stream_index = 0;
|
|
|
| RTPVideoHeader rtp_video_header;
|
| memset(&rtp_video_header, 0, sizeof(RTPVideoHeader));
|
| @@ -158,13 +159,21 @@ int32_t PayloadRouter::Encoded(const EncodedImage& encoded_image,
|
| // The simulcast index might actually be larger than the number of modules
|
| // in case the encoder was processing a frame during a codec reconfig.
|
| if (rtp_video_header.simulcastIdx >= num_sending_modules_)
|
| - return -1;
|
| - stream_idx = rtp_video_header.simulcastIdx;
|
| + return Result(Result::ERROR_SEND_FAILED);
|
| + stream_index = rtp_video_header.simulcastIdx;
|
|
|
| - return rtp_modules_[stream_idx]->SendOutgoingData(
|
| - encoded_image._frameType, payload_type_, encoded_image._timeStamp,
|
| - encoded_image.capture_time_ms_, encoded_image._buffer,
|
| - encoded_image._length, fragmentation, &rtp_video_header);
|
| + int send_result = rtp_modules_[stream_index]->SendOutgoingData(
|
| + encoded_image._frameType, payload_type_, encoded_image._timeStamp,
|
| + encoded_image.capture_time_ms_, encoded_image._buffer,
|
| + encoded_image._length, fragmentation, &rtp_video_header);
|
| +
|
| + if (send_result < 0)
|
| + return Result(Result::ERROR_SEND_FAILED);
|
| +
|
| + // TODO(sergeyu): Update RtpRtcp::SendOutgoingData() to return timestamp.
|
| + uint32_t frame_id =
|
| + rtp_modules_[stream_index]->StartTimestamp() + encoded_image._timeStamp;
|
| + return Result(Result::OK, frame_id);
|
| }
|
|
|
| void PayloadRouter::SetTargetSendBitrate(uint32_t bitrate_bps) {
|
|
|