Index: media/filters/android/media_codec_audio_decoder.h |
diff --git a/media/filters/android/media_codec_audio_decoder.h b/media/filters/android/media_codec_audio_decoder.h |
index 39aca8c30023626208beef89f3ef18dce2953e64..d306a21dd9db13e5ce9f570a9eaf652fc7e84ecd 100644 |
--- a/media/filters/android/media_codec_audio_decoder.h |
+++ b/media/filters/android/media_codec_audio_decoder.h |
@@ -15,12 +15,7 @@ |
#include "media/base/android/media_codec_bridge.h" |
#include "media/base/audio_decoder.h" |
#include "media/base/audio_decoder_config.h" |
- |
-namespace base { |
-class SingleThreadTaskRunner; |
-} |
- |
-namespace media { |
+#include "media/base/media_export.h" |
// MediaCodecAudioDecoder is based on Android's MediaCodec API. |
// The MediaCodec API is required to play encrypted (as in EME) content on |
@@ -97,7 +92,15 @@ namespace media { |
// | | | |
// [Error] [Ready] [Error] |
-class MediaCodecAudioDecoder : public AudioDecoder { |
+namespace base { |
+class SingleThreadTaskRunner; |
+} |
+ |
+namespace media { |
+ |
+class AudioTimestampHelper; |
+ |
+class MEDIA_EXPORT MediaCodecAudioDecoder : public AudioDecoder { |
public: |
explicit MediaCodecAudioDecoder( |
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner); |
@@ -150,10 +153,15 @@ class MediaCodecAudioDecoder : public AudioDecoder { |
// dequeues output buffers. |
void DoIOTask(); |
- // Enqueues one pending input buffer into MediaCodec if MediaCodec has room. |
+ // Enqueues pending input buffers into MediaCodec as long as it can happen |
+ // without delay in dequeuing and enqueueing input buffers. |
// Returns true if any input was processed. |
bool QueueInput(); |
+ // Enqueues one pending input buffer into MediaCodec if MediaCodec has room. |
+ // Returns true if any input was processed. |
+ bool QueueOneInputBuffer(); |
+ |
// A helper method for QueueInput(). Dequeues an empty input buffer from the |
// codec and returns the information about it. OutputBufferInfo.buf_index is |
// the index of the dequeued buffer or -1 if the codec is busy or an error |
@@ -222,6 +230,8 @@ class MediaCodecAudioDecoder : public AudioDecoder { |
scoped_ptr<MediaCodecBridge> media_codec_; |
+ scoped_ptr<AudioTimestampHelper> timestamp_helper_; |
+ |
// Repeating timer that kicks MediaCodec operation. |
base::RepeatingTimer io_timer_; |