OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 CHROME_RENDERER_MEDIA_IPC_VIDEO_DECODER_H_ | 5 #ifndef CHROME_RENDERER_MEDIA_IPC_VIDEO_DECODER_H_ |
6 #define CHROME_RENDERER_MEDIA_IPC_VIDEO_DECODER_H_ | 6 #define CHROME_RENDERER_MEDIA_IPC_VIDEO_DECODER_H_ |
7 | 7 |
8 #include "base/time.h" | 8 #include "base/time.h" |
9 #include "media/base/pts_heap.h" | 9 #include "media/base/pts_heap.h" |
10 #include "media/base/video_frame.h" | 10 #include "media/base/video_frame.h" |
11 #include "media/filters/decoder_base.h" | 11 #include "media/filters/decoder_base.h" |
12 #include "media/video/video_decode_engine.h" | 12 #include "media/video/video_decode_engine.h" |
13 #include "media/video/video_decode_context.h" | 13 #include "media/video/video_decode_context.h" |
14 | 14 |
15 struct AVRational; | 15 struct AVRational; |
16 | 16 |
17 namespace ggl { | 17 namespace ggl { |
18 class Context; | 18 class Context; |
19 } // namespace ggl | 19 } // namespace ggl |
20 | 20 |
21 class IpcVideoDecoder : public media::VideoDecoder, | 21 class IpcVideoDecoder : public media::VideoDecoder, |
22 public media::VideoDecodeEngine::EventHandler { | 22 public media::VideoDecodeEngine::EventHandler { |
23 public: | 23 public: |
24 IpcVideoDecoder(MessageLoop* message_loop, ggl::Context* ggl_context); | 24 IpcVideoDecoder(MessageLoop* message_loop, ggl::Context* ggl_context); |
25 virtual ~IpcVideoDecoder(); | 25 virtual ~IpcVideoDecoder(); |
26 | 26 |
27 // MediaFilter implementation. | 27 // media::Filter implementation. |
28 virtual void Stop(media::FilterCallback* callback); | 28 virtual void Stop(media::FilterCallback* callback); |
29 virtual void Seek(base::TimeDelta time, media::FilterCallback* callback); | 29 virtual void Seek(base::TimeDelta time, media::FilterCallback* callback); |
30 virtual void Pause(media::FilterCallback* callback); | 30 virtual void Pause(media::FilterCallback* callback); |
31 virtual void Flush(media::FilterCallback* callback); | 31 virtual void Flush(media::FilterCallback* callback); |
32 | 32 |
33 // Decoder implementation. | 33 // media::VideoDecoder implementation. |
34 virtual void Initialize(media::DemuxerStream* demuxer_stream, | 34 virtual void Initialize(media::DemuxerStream* demuxer_stream, |
35 media::FilterCallback* callback); | 35 media::FilterCallback* callback); |
36 virtual const media::MediaFormat& media_format() { return media_format_; } | 36 virtual const media::MediaFormat& media_format() { return media_format_; } |
37 virtual void ProduceVideoFrame(scoped_refptr<media::VideoFrame> video_frame); | 37 virtual void ProduceVideoFrame(scoped_refptr<media::VideoFrame> video_frame); |
38 | 38 |
39 // TODO(hclam): Remove this method. | 39 // TODO(hclam): Remove this method. |
40 virtual bool ProvidesBuffer() { return true; } | 40 virtual bool ProvidesBuffer() { return true; } |
41 | 41 |
42 // VideoDecodeEngine::EventHandler implementation. | 42 // media::VideoDecodeEngine::EventHandler implementation. |
43 virtual void OnInitializeComplete(const media::VideoCodecInfo& info); | 43 virtual void OnInitializeComplete(const media::VideoCodecInfo& info); |
44 virtual void OnUninitializeComplete(); | 44 virtual void OnUninitializeComplete(); |
45 virtual void OnFlushComplete(); | 45 virtual void OnFlushComplete(); |
46 virtual void OnSeekComplete(); | 46 virtual void OnSeekComplete(); |
47 virtual void OnError(); | 47 virtual void OnError(); |
48 | 48 |
49 // TODO(hclam): Remove this method. | 49 // TODO(hclam): Remove this method. |
50 virtual void OnFormatChange(media::VideoStreamInfo stream_info) {} | 50 virtual void OnFormatChange(media::VideoStreamInfo stream_info) {} |
51 virtual void ProduceVideoSample(scoped_refptr<media::Buffer> buffer); | 51 virtual void ProduceVideoSample(scoped_refptr<media::Buffer> buffer); |
52 virtual void ConsumeVideoFrame(scoped_refptr<media::VideoFrame> frame); | 52 virtual void ConsumeVideoFrame(scoped_refptr<media::VideoFrame> frame); |
(...skipping 29 matching lines...) Expand all Loading... |
82 // avoid dead lock during tear down of the media pipeline. | 82 // avoid dead lock during tear down of the media pipeline. |
83 scoped_ptr<media::VideoDecodeEngine> decode_engine_; | 83 scoped_ptr<media::VideoDecodeEngine> decode_engine_; |
84 | 84 |
85 // Decoding context to be used by VideoDecodeEngine. | 85 // Decoding context to be used by VideoDecodeEngine. |
86 scoped_ptr<media::VideoDecodeContext> decode_context_; | 86 scoped_ptr<media::VideoDecodeContext> decode_context_; |
87 | 87 |
88 DISALLOW_COPY_AND_ASSIGN(IpcVideoDecoder); | 88 DISALLOW_COPY_AND_ASSIGN(IpcVideoDecoder); |
89 }; | 89 }; |
90 | 90 |
91 #endif // CHROME_RENDERER_MEDIA_IPC_VIDEO_DECODER_H_ | 91 #endif // CHROME_RENDERER_MEDIA_IPC_VIDEO_DECODER_H_ |
OLD | NEW |