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 |