Index: media/filters/ffmpeg_audio_decoder.h |
=================================================================== |
--- media/filters/ffmpeg_audio_decoder.h (revision 277175) |
+++ media/filters/ffmpeg_audio_decoder.h (working copy) |
@@ -37,10 +37,10 @@ |
// AudioDecoder implementation. |
virtual void Initialize(const AudioDecoderConfig& config, |
- const PipelineStatusCB& status_cb, |
- const OutputCB& output_cb) OVERRIDE; |
+ const PipelineStatusCB& status_cb) OVERRIDE; |
virtual void Decode(const scoped_refptr<DecoderBuffer>& buffer, |
const DecodeCB& decode_cb) OVERRIDE; |
+ virtual scoped_refptr<AudioBuffer> GetDecodeOutput() OVERRIDE; |
virtual void Reset(const base::Closure& closure) OVERRIDE; |
virtual void Stop() OVERRIDE; |
@@ -48,6 +48,7 @@ |
enum DecoderState { |
kUninitialized, |
kNormal, |
+ kFlushCodec, |
kDecodeFinished, |
kError |
}; |
@@ -71,8 +72,6 @@ |
scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
- OutputCB output_cb_; |
- |
DecoderState state_; |
// FFmpeg structures owned by this object. |
@@ -86,6 +85,10 @@ |
scoped_ptr<AudioDiscardHelper> discard_helper_; |
+ // Since multiple frames may be decoded from the same packet we need to queue |
+ // them up. |
+ std::list<scoped_refptr<AudioBuffer> > queued_audio_; |
+ |
LogCB log_cb_; |
DISALLOW_IMPLICIT_CONSTRUCTORS(FFmpegAudioDecoder); |