| 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 "chrome/renderer/gpu_video_service_host.h" | 9 #include "chrome/renderer/gpu_video_service_host.h" |
| 10 #include "media/base/pts_heap.h" | 10 #include "media/base/pts_heap.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 const GpuVideoDecoderInitDoneParam& param); | 43 const GpuVideoDecoderInitDoneParam& param); |
| 44 virtual void OnUninitializeDone(); | 44 virtual void OnUninitializeDone(); |
| 45 virtual void OnFlushDone(); | 45 virtual void OnFlushDone(); |
| 46 virtual void OnEmptyBufferDone(scoped_refptr<Buffer> buffer); | 46 virtual void OnEmptyBufferDone(scoped_refptr<Buffer> buffer); |
| 47 virtual void OnFillBufferDone(scoped_refptr<VideoFrame> frame); | 47 virtual void OnFillBufferDone(scoped_refptr<VideoFrame> frame); |
| 48 virtual void OnDeviceError(); | 48 virtual void OnDeviceError(); |
| 49 | 49 |
| 50 virtual bool ProvidesBuffer(); | 50 virtual bool ProvidesBuffer(); |
| 51 | 51 |
| 52 private: | 52 private: |
| 53 void OnSeekComplete(FilterCallback* callback); | |
| 54 void OnReadComplete(Buffer* buffer); | |
| 55 void ReadCompleteTask(scoped_refptr<Buffer> buffer); | |
| 56 | |
| 57 private: | |
| 58 friend class FilterFactoryImpl2<IpcVideoDecoder, | 53 friend class FilterFactoryImpl2<IpcVideoDecoder, |
| 59 VideoDecodeEngine*, | 54 VideoDecodeEngine*, |
| 60 MessageLoop*>; | 55 MessageLoop*>; |
| 61 | 56 |
| 62 private: | |
| 63 int32 width_; | |
| 64 int32 height_; | |
| 65 MediaFormat media_format_; | |
| 66 | |
| 67 scoped_ptr<FilterCallback> flush_callback_; | |
| 68 scoped_ptr<FilterCallback> initialize_callback_; | |
| 69 scoped_ptr<FilterCallback> stop_callback_; | |
| 70 | |
| 71 enum DecoderState { | 57 enum DecoderState { |
| 72 kUnInitialized, | 58 kUnInitialized, |
| 73 kPlaying, | 59 kPlaying, |
| 74 kFlushing, | 60 kFlushing, |
| 75 kPausing, | 61 kPausing, |
| 76 kFlushCodec, | 62 kFlushCodec, |
| 77 kEnded, | 63 kEnded, |
| 78 kStopped, | 64 kStopped, |
| 79 }; | 65 }; |
| 66 |
| 67 void OnSeekComplete(FilterCallback* callback); |
| 68 void OnReadComplete(Buffer* buffer); |
| 69 void ReadCompleteTask(scoped_refptr<Buffer> buffer); |
| 70 |
| 71 int32 width_; |
| 72 int32 height_; |
| 73 MediaFormat media_format_; |
| 74 |
| 75 scoped_ptr<FilterCallback> flush_callback_; |
| 76 scoped_ptr<FilterCallback> initialize_callback_; |
| 77 scoped_ptr<FilterCallback> stop_callback_; |
| 78 |
| 80 DecoderState state_; | 79 DecoderState state_; |
| 81 | 80 |
| 82 // Tracks the number of asynchronous reads issued to |demuxer_stream_|. | 81 // Tracks the number of asynchronous reads issued to |demuxer_stream_|. |
| 83 // Using size_t since it is always compared against deque::size(). | 82 // Using size_t since it is always compared against deque::size(). |
| 84 size_t pending_reads_; | 83 size_t pending_reads_; |
| 85 // Tracks the number of asynchronous reads issued from renderer. | 84 // Tracks the number of asynchronous reads issued from renderer. |
| 86 size_t pending_requests_; | 85 size_t pending_requests_; |
| 87 | 86 |
| 88 // Pointer to the demuxer stream that will feed us compressed buffers. | 87 // Pointer to the demuxer stream that will feed us compressed buffers. |
| 89 scoped_refptr<DemuxerStream> demuxer_stream_; | 88 scoped_refptr<DemuxerStream> demuxer_stream_; |
| 90 | 89 |
| 91 MessageLoop* renderer_thread_message_loop_; | 90 MessageLoop* renderer_thread_message_loop_; |
| 92 scoped_refptr<GpuVideoDecoderHost> gpu_video_decoder_host_; | 91 scoped_refptr<GpuVideoDecoderHost> gpu_video_decoder_host_; |
| 93 | 92 |
| 94 DISALLOW_COPY_AND_ASSIGN(IpcVideoDecoder); | 93 DISALLOW_COPY_AND_ASSIGN(IpcVideoDecoder); |
| 95 }; | 94 }; |
| 96 | 95 |
| 97 } // namespace media | 96 } // namespace media |
| 98 | 97 |
| 99 #endif // CHROME_RENDERER_MEDIA_IPC_VIDEO_DECODER_H_ | 98 #endif // CHROME_RENDERER_MEDIA_IPC_VIDEO_DECODER_H_ |
| 100 | |
| OLD | NEW |