Index: media/filters/decoder_stream_traits.cc |
diff --git a/media/filters/decoder_stream_traits.cc b/media/filters/decoder_stream_traits.cc |
index 131fc2d8eabcd4ba692877b5de34bf564d62e196..e59d99f9d66392a12afa4ac54443828ad3dd2be3 100644 |
--- a/media/filters/decoder_stream_traits.cc |
+++ b/media/filters/decoder_stream_traits.cc |
@@ -9,7 +9,6 @@ |
#include "media/base/audio_decoder.h" |
#include "media/base/audio_decoder_config.h" |
#include "media/base/video_decoder.h" |
-#include "media/base/video_decoder_config.h" |
#include "media/base/video_frame.h" |
namespace media { |
@@ -81,4 +80,30 @@ scoped_refptr<DecoderStreamTraits<DemuxerStream::VIDEO>::OutputType> |
return OutputType::CreateEOSFrame(); |
} |
+DecoderStreamTraits<DemuxerStream::AUDIO>::DecoderStreamTraits( |
+ const scoped_refptr<MediaLog>& media_log) |
+ : media_log_(media_log) {} |
+ |
+void DecoderStreamTraits<DemuxerStream::AUDIO>::OnStreamReset( |
+ DemuxerStream* stream) { |
+ DCHECK(stream); |
+ // Stream is likely being seeked to a new timestamp, so make new validator to |
+ // build new timestamp expectations. |
+ audio_ts_validator_.reset( |
+ new AudioTimestampValidator(stream->audio_decoder_config(), media_log_)); |
+} |
+ |
+void DecoderStreamTraits<DemuxerStream::AUDIO>::OnDecode( |
+ const scoped_refptr<DecoderBuffer>& buffer) { |
+ audio_ts_validator_->CheckForTimestampGap(buffer); |
+} |
+ |
+void DecoderStreamTraits<DemuxerStream::AUDIO>::OnDecodeDone( |
+ const scoped_refptr<OutputType>& buffer) { |
+ audio_ts_validator_->RecordOutputDuration(buffer); |
+} |
+ |
+template class DecoderStreamTraits<DemuxerStream::VIDEO>; |
+template class DecoderStreamTraits<DemuxerStream::AUDIO>; |
+ |
} // namespace media |