| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef MEDIA_FILTERS_FFMPEG_VIDEO_DECODER_H_ | 5 #ifndef MEDIA_FILTERS_FFMPEG_VIDEO_DECODER_H_ |
| 6 #define MEDIA_FILTERS_FFMPEG_VIDEO_DECODER_H_ | 6 #define MEDIA_FILTERS_FFMPEG_VIDEO_DECODER_H_ |
| 7 | 7 |
| 8 #include <deque> | 8 #include <deque> |
| 9 | 9 |
| 10 #include "base/gtest_prod_util.h" | |
| 11 #include "base/time.h" | |
| 12 #include "media/base/filters.h" | 10 #include "media/base/filters.h" |
| 13 #include "media/base/pts_stream.h" | 11 #include "media/base/pts_stream.h" |
| 14 #include "media/base/video_frame.h" | |
| 15 #include "media/video/video_decode_engine.h" | 12 #include "media/video/video_decode_engine.h" |
| 13 #include "ui/gfx/size.h" |
| 16 | 14 |
| 17 namespace media { | 15 namespace media { |
| 18 | 16 |
| 19 class VideoDecodeEngine; | 17 class VideoDecodeEngine; |
| 20 | 18 |
| 21 class MEDIA_EXPORT FFmpegVideoDecoder | 19 class MEDIA_EXPORT FFmpegVideoDecoder |
| 22 : public VideoDecoder, | 20 : public VideoDecoder, |
| 23 public VideoDecodeEngine::EventHandler { | 21 public VideoDecodeEngine::EventHandler { |
| 24 public: | 22 public: |
| 25 FFmpegVideoDecoder(MessageLoop* message_loop, | 23 FFmpegVideoDecoder(MessageLoop* message_loop, |
| (...skipping 19 matching lines...) Expand all Loading... |
| 45 virtual void OnInitializeComplete(bool success) OVERRIDE; | 43 virtual void OnInitializeComplete(bool success) OVERRIDE; |
| 46 virtual void OnUninitializeComplete() OVERRIDE; | 44 virtual void OnUninitializeComplete() OVERRIDE; |
| 47 virtual void OnFlushComplete() OVERRIDE; | 45 virtual void OnFlushComplete() OVERRIDE; |
| 48 virtual void OnSeekComplete() OVERRIDE; | 46 virtual void OnSeekComplete() OVERRIDE; |
| 49 virtual void OnError() OVERRIDE; | 47 virtual void OnError() OVERRIDE; |
| 50 virtual void ProduceVideoSample(scoped_refptr<Buffer> buffer) OVERRIDE; | 48 virtual void ProduceVideoSample(scoped_refptr<Buffer> buffer) OVERRIDE; |
| 51 virtual void ConsumeVideoFrame( | 49 virtual void ConsumeVideoFrame( |
| 52 scoped_refptr<VideoFrame> frame, | 50 scoped_refptr<VideoFrame> frame, |
| 53 const PipelineStatistics& statistics) OVERRIDE; | 51 const PipelineStatistics& statistics) OVERRIDE; |
| 54 | 52 |
| 55 friend class DecoderPrivateMock; | |
| 56 friend class FFmpegVideoDecoderTest; | |
| 57 FRIEND_TEST_ALL_PREFIXES(FFmpegVideoDecoderTest, PtsStream); | |
| 58 FRIEND_TEST_ALL_PREFIXES(FFmpegVideoDecoderTest, | |
| 59 DoDecode_EnqueueVideoFrameError); | |
| 60 FRIEND_TEST_ALL_PREFIXES(FFmpegVideoDecoderTest, | |
| 61 DoDecode_FinishEnqueuesEmptyFrames); | |
| 62 FRIEND_TEST_ALL_PREFIXES(FFmpegVideoDecoderTest, | |
| 63 DoDecode_TestStateTransition); | |
| 64 FRIEND_TEST_ALL_PREFIXES(FFmpegVideoDecoderTest, DoSeek); | |
| 65 | |
| 66 enum DecoderState { | 53 enum DecoderState { |
| 67 kUnInitialized, | 54 kUnInitialized, |
| 68 kInitializing, | 55 kInitializing, |
| 69 kNormal, | 56 kNormal, |
| 70 kFlushCodec, | 57 kFlushCodec, |
| 71 kDecodeFinished, | 58 kDecodeFinished, |
| 72 kPausing, | 59 kPausing, |
| 73 kFlushing, | 60 kFlushing, |
| 74 kStopped | 61 kStopped |
| 75 }; | 62 }; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 | 98 |
| 112 // Pointer to the demuxer stream that will feed us compressed buffers. | 99 // Pointer to the demuxer stream that will feed us compressed buffers. |
| 113 scoped_refptr<DemuxerStream> demuxer_stream_; | 100 scoped_refptr<DemuxerStream> demuxer_stream_; |
| 114 | 101 |
| 115 DISALLOW_COPY_AND_ASSIGN(FFmpegVideoDecoder); | 102 DISALLOW_COPY_AND_ASSIGN(FFmpegVideoDecoder); |
| 116 }; | 103 }; |
| 117 | 104 |
| 118 } // namespace media | 105 } // namespace media |
| 119 | 106 |
| 120 #endif // MEDIA_FILTERS_FFMPEG_VIDEO_DECODER_H_ | 107 #endif // MEDIA_FILTERS_FFMPEG_VIDEO_DECODER_H_ |
| OLD | NEW |