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_VIDEO_VIDEO_DECODE_ENGINE_H_ | 5 #ifndef MEDIA_VIDEO_VIDEO_DECODE_ENGINE_H_ |
6 #define MEDIA_VIDEO_VIDEO_DECODE_ENGINE_H_ | 6 #define MEDIA_VIDEO_VIDEO_DECODE_ENGINE_H_ |
7 | 7 |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "media/base/video_decoder_config.h" | 10 #include "media/base/video_decoder_config.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 // Signal the user of VideoDecodeEngine to provide a video sample. | 48 // Signal the user of VideoDecodeEngine to provide a video sample. |
49 // | 49 // |
50 // In the normal running state, this method is called by the video decode | 50 // In the normal running state, this method is called by the video decode |
51 // engine to request video samples used for decoding. | 51 // engine to request video samples used for decoding. |
52 // | 52 // |
53 // In the case when the video decode engine is flushing, this method is | 53 // In the case when the video decode engine is flushing, this method is |
54 // called to return video samples acquired by the video decode engine. | 54 // called to return video samples acquired by the video decode engine. |
55 // | 55 // |
56 // |buffer| can be NULL in which case this method call is purely for | 56 // |buffer| can be NULL in which case this method call is purely for |
57 // requesting new video samples. If |buffer| is non-NULL, the buffer is | 57 // requesting new video samples. If |buffer| is non-NULL, the buffer is |
58 // returned to the owner at the sample time as a request for video sample | 58 // returned to the owner at the same time as a request for video sample |
59 // is made. | 59 // is made. |
60 virtual void ProduceVideoSample(scoped_refptr<Buffer> buffer) = 0; | 60 virtual void ProduceVideoSample(scoped_refptr<Buffer> buffer) = 0; |
61 | 61 |
62 // Signal the user of VideoDecodeEngine that a video frame is ready to | 62 // Signal the user of VideoDecodeEngine that a video frame is ready to |
63 // be consumed or a video frame is returned to the owner. | 63 // be consumed or a video frame is returned to the owner. |
64 // | 64 // |
65 // In the normal running state, this method is called to signal that | 65 // In the normal running state, this method is called to signal that |
66 // |frame| contains a decoded video frame and is ready to be used. | 66 // |frame| contains a decoded video frame and is ready to be used. |
67 // | 67 // |
68 // In the case of flushing and video frame is provided externally, this | 68 // In the case of flushing and video frame is provided externally, this |
(...skipping 21 matching lines...) Expand all Loading... |
90 const VideoDecoderConfig& config) = 0; | 90 const VideoDecoderConfig& config) = 0; |
91 | 91 |
92 // Uninitialize the engine. Engine should destroy all resources and call | 92 // Uninitialize the engine. Engine should destroy all resources and call |
93 // EventHandler::OnUninitializeComplete(). | 93 // EventHandler::OnUninitializeComplete(). |
94 virtual void Uninitialize() = 0; | 94 virtual void Uninitialize() = 0; |
95 | 95 |
96 // Flush the engine. Engine should return all the buffers to owner ( which | 96 // Flush the engine. Engine should return all the buffers to owner ( which |
97 // could be itself. ) then call EventHandler::OnFlushDone(). | 97 // could be itself. ) then call EventHandler::OnFlushDone(). |
98 virtual void Flush() = 0; | 98 virtual void Flush() = 0; |
99 | 99 |
100 // This method is used as a signal for the decode engine to prefoll and | 100 // This method is used as a signal for the decode engine to preroll and |
101 // issue read requests after Flush() us made. | 101 // issue read requests after Flush() is made. |
102 virtual void Seek() = 0; | 102 virtual void Seek() = 0; |
103 | 103 |
104 // Provide a video sample to be used by the video decode engine. | 104 // Provide a video sample to be used by the video decode engine. |
105 // | 105 // |
106 // This method is called in response to ProvideVideoSample() called to the | 106 // This method is called in response to ProvideVideoSample() called to the |
107 // user. | 107 // user. |
108 virtual void ConsumeVideoSample(scoped_refptr<Buffer> buffer) = 0; | 108 virtual void ConsumeVideoSample(scoped_refptr<Buffer> buffer) = 0; |
109 | 109 |
110 // Signal the video decode engine to produce a video frame or return the | 110 // Signal the video decode engine to produce a video frame or return the |
111 // video frame object to the video decode engine. | 111 // video frame object to the video decode engine. |
112 // | 112 // |
113 // In the normal running state, this method is called by the user of the | 113 // In the normal running state, this method is called by the user of the |
114 // video decode engine to request a decoded video frame. If |frame| is | 114 // video decode engine to request a decoded video frame. If |frame| is |
115 // NULL the video decode engine should allocate a video frame object. | 115 // NULL the video decode engine should allocate a video frame object. |
116 // Otherwise video decode engine should try to use the video frame object | 116 // Otherwise video decode engine should try to use the video frame object |
117 // provided as output. | 117 // provided as output. |
118 // | 118 // |
119 // In flushing state and video frames are allocated internally this method | 119 // In flushing state and video frames are allocated internally this method |
120 // is called by the user to return the video frame object. | 120 // is called by the user to return the video frame object. |
121 // | 121 // |
122 // In response to this method call, ConsumeVideoFrame() is called with a | 122 // In response to this method call, ConsumeVideoFrame() is called with a |
123 // video frame object containing decoded video content. | 123 // video frame object containing decoded video content. |
124 virtual void ProduceVideoFrame(scoped_refptr<VideoFrame> frame) = 0; | 124 virtual void ProduceVideoFrame(scoped_refptr<VideoFrame> frame) = 0; |
125 }; | 125 }; |
126 | 126 |
127 } // namespace media | 127 } // namespace media |
128 | 128 |
129 #endif // MEDIA_VIDEO_VIDEO_DECODE_ENGINE_H_ | 129 #endif // MEDIA_VIDEO_VIDEO_DECODE_ENGINE_H_ |
OLD | NEW |