| Index: webrtc/modules/video_coding/main/source/video_receiver.cc
|
| diff --git a/webrtc/modules/video_coding/main/source/video_receiver.cc b/webrtc/modules/video_coding/main/source/video_receiver.cc
|
| index cf0a490da991fcc27cd338450d928b1b856c95ae..8dc8ba2cfbca2f16575ba55e9f6fc3001f345e6d 100644
|
| --- a/webrtc/modules/video_coding/main/source/video_receiver.cc
|
| +++ b/webrtc/modules/video_coding/main/source/video_receiver.cc
|
| @@ -235,11 +235,9 @@ int32_t VideoReceiver::RegisterDecoderTimingCallback(
|
| return VCM_OK;
|
| }
|
|
|
| -// Register an externally defined decoder/render object.
|
| -// Can be a decoder only or a decoder coupled with a renderer.
|
| +// Register an externally defined decoder object.
|
| int32_t VideoReceiver::RegisterExternalDecoder(VideoDecoder* externalDecoder,
|
| - uint8_t payloadType,
|
| - bool internalRenderTiming) {
|
| + uint8_t payloadType) {
|
| CriticalSectionScoped cs(_receiveCritSect);
|
| if (externalDecoder == NULL) {
|
| // Make sure the VCM updates the decoder next time it decodes.
|
| @@ -247,7 +245,7 @@ int32_t VideoReceiver::RegisterExternalDecoder(VideoDecoder* externalDecoder,
|
| return _codecDataBase.DeregisterExternalDecoder(payloadType) ? 0 : -1;
|
| }
|
| return _codecDataBase.RegisterExternalDecoder(
|
| - externalDecoder, payloadType, internalRenderTiming)
|
| + externalDecoder, payloadType)
|
| ? 0
|
| : -1;
|
| }
|
| @@ -282,14 +280,14 @@ void VideoReceiver::TriggerDecoderShutdown() {
|
| // Should be called as often as possible to get the most out of the decoder.
|
| int32_t VideoReceiver::Decode(uint16_t maxWaitTimeMs) {
|
| int64_t nextRenderTimeMs;
|
| - bool supports_render_scheduling;
|
| + bool has_only_one_output_buffer = false;
|
| {
|
| CriticalSectionScoped cs(_receiveCritSect);
|
| - supports_render_scheduling = _codecDataBase.SupportsRenderScheduling();
|
| + has_only_one_output_buffer = _codecDataBase.HasOnlyOneOutputBuffer();
|
| }
|
|
|
| VCMEncodedFrame* frame = _receiver.FrameForDecoding(
|
| - maxWaitTimeMs, nextRenderTimeMs, supports_render_scheduling);
|
| + maxWaitTimeMs, nextRenderTimeMs, has_only_one_output_buffer);
|
|
|
| if (frame == NULL) {
|
| return VCM_FRAME_NOT_READY;
|
| @@ -370,14 +368,8 @@ int32_t VideoReceiver::Decode(const VCMEncodedFrame& frame) {
|
| "type",
|
| frame.FrameType());
|
| // Change decoder if payload type has changed
|
| - const bool renderTimingBefore = _codecDataBase.SupportsRenderScheduling();
|
| _decoder =
|
| _codecDataBase.GetDecoder(frame.PayloadType(), &_decodedFrameCallback);
|
| - if (renderTimingBefore != _codecDataBase.SupportsRenderScheduling()) {
|
| - // Make sure we reset the decode time estimate since it will
|
| - // be zero for codecs without render timing.
|
| - _timing.ResetDecodeTime();
|
| - }
|
| if (_decoder == NULL) {
|
| return VCM_NO_CODEC_REGISTERED;
|
| }
|
|
|