| 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 |