Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 /* Copyright (c) 2014 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 | 5 |
| 6 /** | 6 /** |
| 7 * This file defines the <code>PPB_VideoDecoder</code> interface. | 7 * This file defines the <code>PPB_VideoDecoder</code> interface. |
| 8 */ | 8 */ |
| 9 | 9 |
| 10 [generate_thunk] | 10 [generate_thunk] |
| 11 | 11 |
| 12 label Chrome { | 12 label Chrome { |
| 13 /** Though not labeled 'channel=dev', 0.1 is a still a 'Dev' only API. */ | 13 /** Though not labeled 'channel=dev', 0.1 is a still a 'Dev' only API. */ |
| 14 M36 = 0.1, | 14 M36 = 0.1, |
| 15 M39 = 0.2, | 15 M39 = 0.2, |
| 16 M40 = 1.0 | 16 M40 = 1.0, |
| 17 M44 = 1.1 | |
|
bbudge
2015/07/22 02:02:47
Usually we expose a new API to 'Dev' channel and r
| |
| 17 }; | 18 }; |
| 18 | 19 |
| 19 /** | 20 /** |
| 20 * Video decoder interface. | 21 * Video decoder interface. |
| 21 * | 22 * |
| 22 * Typical usage: | 23 * Typical usage: |
| 23 * - Call Create() to create a new video decoder resource. | 24 * - Call Create() to create a new video decoder resource. |
| 24 * - Call Initialize() to initialize it with a 3d graphics context and the | 25 * - Call Initialize() to initialize it with a 3d graphics context and the |
| 25 * desired codec profile. | 26 * desired codec profile. |
| 26 * - Call Decode() continuously (waiting for each previous call to complete) to | 27 * - Call Decode() continuously (waiting for each previous call to complete) to |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 114 */ | 115 */ |
| 115 [version = 0.2] | 116 [version = 0.2] |
| 116 int32_t Initialize( | 117 int32_t Initialize( |
| 117 [in] PP_Resource video_decoder, | 118 [in] PP_Resource video_decoder, |
| 118 [in] PP_Resource graphics3d_context, | 119 [in] PP_Resource graphics3d_context, |
| 119 [in] PP_VideoProfile profile, | 120 [in] PP_VideoProfile profile, |
| 120 [in] PP_HardwareAcceleration acceleration, | 121 [in] PP_HardwareAcceleration acceleration, |
| 121 [in] PP_CompletionCallback callback); | 122 [in] PP_CompletionCallback callback); |
| 122 | 123 |
| 123 /** | 124 /** |
| 125 * Initializes a video decoder resource. This should be called after Create() | |
| 126 * and before any other functions. | |
| 127 * | |
| 128 * @param[in] video_decoder A <code>PP_Resource</code> identifying the video | |
| 129 * decoder. | |
| 130 * @param[in] graphics3d_context A <code>PPB_Graphics3D</code> resource to use | |
| 131 * during decoding. | |
| 132 * @param[in] profile A <code>PP_VideoProfile</code> specifying the video | |
| 133 * codec profile. | |
| 134 * @param[in] acceleration A <code>PP_HardwareAcceleration</code> specifying | |
| 135 * whether to use a hardware accelerated or a software implementation. | |
| 136 * @param[in] min_picture_count A count of pictures the plugin would like to | |
| 137 * have in flight. This is effectively the number of times the plugin can | |
| 138 * call GetPicture() and get a decoded frame without calling | |
| 139 * RecyclePicture(). The decoder has its own internal minimum count, and will | |
| 140 * take the larger of its internal and this value. A client that doesn't care | |
| 141 * can therefore just pass in zero for this argument. | |
| 142 * @param[in] callback A <code>PP_CompletionCallback</code> to be called upon | |
| 143 * completion. | |
| 144 * | |
| 145 * @return An int32_t containing an error code from <code>pp_errors.h</code>. | |
| 146 * Returns PP_ERROR_NOTSUPPORTED if video decoding is not available, or the | |
| 147 * requested profile is not supported. In this case, the client may call | |
| 148 * Initialize() again with different parameters to find a good configuration. | |
| 149 * Returns PP_ERROR_BADARGUMENT if the requested minimum picture count is | |
| 150 * unreasonably large. | |
| 151 */ | |
| 152 [version = 1.1] | |
| 153 int32_t Initialize( | |
| 154 [in] PP_Resource video_decoder, | |
| 155 [in] PP_Resource graphics3d_context, | |
| 156 [in] PP_VideoProfile profile, | |
| 157 [in] PP_HardwareAcceleration acceleration, | |
| 158 [in] uint32_t min_picture_count, | |
| 159 [in] PP_CompletionCallback callback); | |
| 160 | |
| 161 /** | |
| 124 * Decodes a bitstream buffer. Copies |size| bytes of data from the plugin's | 162 * Decodes a bitstream buffer. Copies |size| bytes of data from the plugin's |
| 125 * |buffer|. The plugin should wait until the decoder signals completion by | 163 * |buffer|. The plugin should wait until the decoder signals completion by |
| 126 * returning PP_OK or by running |callback| before calling Decode() again. | 164 * returning PP_OK or by running |callback| before calling Decode() again. |
| 127 * | 165 * |
| 128 * In general, each bitstream buffer should contain a demuxed bitstream frame | 166 * In general, each bitstream buffer should contain a demuxed bitstream frame |
| 129 * for the selected video codec. For example, H264 decoders expect to receive | 167 * for the selected video codec. For example, H264 decoders expect to receive |
| 130 * one AnnexB NAL unit, including the 4 byte start code prefix, while VP8 | 168 * one AnnexB NAL unit, including the 4 byte start code prefix, while VP8 |
| 131 * decoders expect to receive a bitstream frame without the IVF frame header. | 169 * decoders expect to receive a bitstream frame without the IVF frame header. |
| 132 * | 170 * |
| 133 * If the call to Decode() eventually results in a picture, the |decode_id| | 171 * If the call to Decode() eventually results in a picture, the |decode_id| |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 265 * @param[in] callback A <code>PP_CompletionCallback</code> to be called on | 303 * @param[in] callback A <code>PP_CompletionCallback</code> to be called on |
| 266 * completion. | 304 * completion. |
| 267 * | 305 * |
| 268 * @return An int32_t containing an error code from <code>pp_errors.h</code>. | 306 * @return An int32_t containing an error code from <code>pp_errors.h</code>. |
| 269 * Returns PP_ERROR_FAILED if the decoder isn't initialized. | 307 * Returns PP_ERROR_FAILED if the decoder isn't initialized. |
| 270 */ | 308 */ |
| 271 int32_t Reset( | 309 int32_t Reset( |
| 272 [in] PP_Resource video_decoder, | 310 [in] PP_Resource video_decoder, |
| 273 [in] PP_CompletionCallback callback); | 311 [in] PP_CompletionCallback callback); |
| 274 }; | 312 }; |
| OLD | NEW |