diff options
Diffstat (limited to 'chromium/media/filters/decoder_stream_traits.cc')
-rw-r--r-- | chromium/media/filters/decoder_stream_traits.cc | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/chromium/media/filters/decoder_stream_traits.cc b/chromium/media/filters/decoder_stream_traits.cc index eca17402179..69886c7ed24 100644 --- a/chromium/media/filters/decoder_stream_traits.cc +++ b/chromium/media/filters/decoder_stream_traits.cc @@ -61,7 +61,7 @@ void DecoderStreamTraits<DemuxerStream::AUDIO>::InitializeDecoder( const DecoderConfigType& config, bool /* low_delay */, CdmContext* cdm_context, - const InitCB& init_cb, + InitCB init_cb, const OutputCB& output_cb, const WaitingCB& waiting_cb) { DCHECK(config.IsValidConfig()); @@ -71,7 +71,8 @@ void DecoderStreamTraits<DemuxerStream::AUDIO>::InitializeDecoder( config_ = config; stats_.audio_decoder_name = decoder->GetDisplayName(); - decoder->Initialize(config, cdm_context, init_cb, output_cb, waiting_cb); + decoder->Initialize(config, cdm_context, std::move(init_cb), output_cb, + waiting_cb); } void DecoderStreamTraits<DemuxerStream::AUDIO>::OnStreamReset( @@ -89,8 +90,8 @@ void DecoderStreamTraits<DemuxerStream::AUDIO>::OnDecode( } PostDecodeAction DecoderStreamTraits<DemuxerStream::AUDIO>::OnDecodeDone( - const scoped_refptr<OutputType>& buffer) { - audio_ts_validator_->RecordOutputDuration(buffer); + OutputType* buffer) { + audio_ts_validator_->RecordOutputDuration(*buffer); return PostDecodeAction::DELIVER; } @@ -153,14 +154,14 @@ void DecoderStreamTraits<DemuxerStream::VIDEO>::InitializeDecoder( const DecoderConfigType& config, bool low_delay, CdmContext* cdm_context, - const InitCB& init_cb, + InitCB init_cb, const OutputCB& output_cb, const WaitingCB& waiting_cb) { DCHECK(config.IsValidConfig()); stats_.video_decoder_name = decoder->GetDisplayName(); DVLOG(2) << stats_.video_decoder_name; - decoder->Initialize(config, low_delay, cdm_context, init_cb, output_cb, - waiting_cb); + decoder->Initialize(config, low_delay, cdm_context, std::move(init_cb), + output_cb, waiting_cb); } void DecoderStreamTraits<DemuxerStream::VIDEO>::OnStreamReset( @@ -198,7 +199,12 @@ void DecoderStreamTraits<DemuxerStream::VIDEO>::OnDecode( } PostDecodeAction DecoderStreamTraits<DemuxerStream::VIDEO>::OnDecodeDone( - const scoped_refptr<OutputType>& buffer) { + OutputType* buffer) { + // Add a timestamp here (after decoding completed) to enable buffering delay + // measurements down the line. + buffer->metadata()->SetTimeTicks(media::VideoFrameMetadata::DECODE_TIME, + base::TimeTicks::Now()); + auto it = frame_metadata_.find(buffer->timestamp()); // If the frame isn't in |frame_metadata_| it probably was erased below on a @@ -218,12 +224,6 @@ PostDecodeAction DecoderStreamTraits<DemuxerStream::VIDEO>::OnDecodeDone( it->second.duration); } - // Add a timestamp here (after decoding completed) to enable buffering delay - // measurements down the line. - buffer->metadata()->SetTimeTicks( - media::VideoFrameMetadata::DECODE_COMPLETE_TIMESTAMP, - base::TimeTicks::Now()); - // We erase from the beginning onward to our target frame since frames should // be returned in presentation order. It's possible to accumulate entries in // this queue if playback begins at a non-keyframe; those frames may never be |