Index: media/filters/ffmpeg_video_decoder.h |
diff --git a/media/filters/ffmpeg_video_decoder.h b/media/filters/ffmpeg_video_decoder.h |
index a421c8cd42cb00c99842f7581ffaaa717b1555b4..c6c19a93d0c8c318b25e0ef052fc2b9df946180e 100644 |
--- a/media/filters/ffmpeg_video_decoder.h |
+++ b/media/filters/ffmpeg_video_decoder.h |
@@ -7,9 +7,10 @@ |
#include <deque> |
+#include "base/memory/scoped_ptr.h" |
#include "media/base/filters.h" |
#include "media/base/pts_stream.h" |
-#include "media/video/video_decode_engine.h" |
+#include "ui/gfx/size.h" |
class MessageLoop; |
@@ -18,8 +19,7 @@ namespace media { |
class VideoDecodeEngine; |
class MEDIA_EXPORT FFmpegVideoDecoder |
- : public VideoDecoder, |
- public VideoDecodeEngine::EventHandler { |
+ : public VideoDecoder { |
acolwell GONE FROM CHROMIUM
2011/10/28 17:38:47
fits on line above?
scherkus (not reviewing)
2011/11/01 04:18:26
Done.
|
public: |
explicit FFmpegVideoDecoder(MessageLoop* message_loop); |
virtual ~FFmpegVideoDecoder(); |
@@ -39,58 +39,27 @@ class MEDIA_EXPORT FFmpegVideoDecoder |
virtual gfx::Size natural_size() OVERRIDE; |
private: |
- // VideoDecodeEngine::EventHandler interface. |
- virtual void OnInitializeComplete(bool success) OVERRIDE; |
- virtual void OnUninitializeComplete() OVERRIDE; |
- virtual void OnFlushComplete() OVERRIDE; |
- virtual void OnSeekComplete() OVERRIDE; |
- virtual void OnError() OVERRIDE; |
- virtual void ProduceVideoSample(scoped_refptr<Buffer> buffer) OVERRIDE; |
- virtual void ConsumeVideoFrame( |
- scoped_refptr<VideoFrame> frame, |
- const PipelineStatistics& statistics) OVERRIDE; |
- |
enum DecoderState { |
- kUnInitialized, |
- kInitializing, |
+ kUninitialized, |
kNormal, |
kFlushCodec, |
kDecodeFinished, |
- kPausing, |
- kFlushing, |
- kStopped |
}; |
- void OnFlushComplete(const base::Closure& callback); |
- void OnSeekComplete(const base::Closure& callback); |
- void OnReadComplete(Buffer* buffer); |
- |
- // TODO(jiesun): until demuxer pass scoped_refptr<Buffer>: we could not merge |
- // this with OnReadComplete |
- void OnReadCompleteTask(scoped_refptr<Buffer> buffer); |
+ void DoDecodeBuffer(const scoped_refptr<Buffer>& buffer); |
- // Flush the output buffers that we had held in Paused state. |
- void FlushBuffers(); |
- |
- // Injection point for unittest to provide a mock engine. Takes ownership of |
- // the provided engine. |
- virtual void SetVideoDecodeEngineForTest(VideoDecodeEngine* engine); |
+ // Reads from the demuxer stream with corresponding callback method. |
+ void ReadFromDemuxerStream(); |
+ void DecodeBuffer(Buffer* buffer); |
MessageLoop* message_loop_; |
- PtsStream pts_stream_; // Stream of presentation timestamps. |
+ PtsStream pts_stream_; |
DecoderState state_; |
scoped_ptr<VideoDecodeEngine> decode_engine_; |
- base::Closure initialize_callback_; |
- base::Closure uninitialize_callback_; |
- base::Closure flush_callback_; |
- FilterStatusCB seek_cb_; |
StatisticsCallback statistics_callback_; |
- // Hold video frames when flush happens. |
- std::deque<scoped_refptr<VideoFrame> > frame_queue_flushed_; |
- |
// TODO(scherkus): I think this should be calculated by VideoRenderers based |
// on information provided by VideoDecoders (i.e., aspect ratio). |
gfx::Size natural_size_; |