diff options
author | bbudge@chromium.org <bbudge@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-21 16:55:18 +0000 |
---|---|---|
committer | bbudge@chromium.org <bbudge@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-21 16:55:18 +0000 |
commit | 3966d9d33239e61873481c9e3c875e60770b4373 (patch) | |
tree | c06f1fc38c42df808a6527c87328e83209d97104 /ppapi | |
parent | c67679fcd04b5e69400e3d4c55019b3aaf915780 (diff) | |
download | chromium_src-3966d9d33239e61873481c9e3c875e60770b4373.zip chromium_src-3966d9d33239e61873481c9e3c875e60770b4373.tar.gz chromium_src-3966d9d33239e61873481c9e3c875e60770b4373.tar.bz2 |
Update PPB_VideoDecoder documentation.
The Decode function should not require the plugin to
maintain its buffer when it completes asynchronously.
BUG=281689
R=dmichael@chromium.org
Review URL: https://codereview.chromium.org/291083003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271917 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi')
-rw-r--r-- | ppapi/api/ppb_video_decoder.idl | 42 | ||||
-rw-r--r-- | ppapi/c/ppb_video_decoder.h | 44 | ||||
-rw-r--r-- | ppapi/cpp/video_decoder.h | 44 |
3 files changed, 83 insertions, 47 deletions
diff --git a/ppapi/api/ppb_video_decoder.idl b/ppapi/api/ppb_video_decoder.idl index 90a3520..ab38e9f 100644 --- a/ppapi/api/ppb_video_decoder.idl +++ b/ppapi/api/ppb_video_decoder.idl @@ -91,9 +91,8 @@ interface PPB_VideoDecoder { /** * Decodes a bitstream buffer. Copies |size| bytes of data from the plugin's - * |buffer|. The plugin should maintain the buffer and not call Decode() again - * until the decoder signals completion by returning PP_OK or by running - * |callback|. + * |buffer|. The plugin should wait until the decoder signals completion by + * returning PP_OK or by running |callback| before calling Decode() again. * * In general, each bitstream buffer should contain a demuxed bitstream frame * for the selected video codec. For example, H264 decoders expect to receive @@ -117,6 +116,11 @@ interface PPB_VideoDecoder { * completion. * * @return An int32_t containing an error code from <code>pp_errors.h</code>. + * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Flush() + * or Reset() call is pending. + * Returns PP_ERROR_INPROGRESS if there is another Decode() call pending. + * Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created. + * Returns PP_ERROR_ABORTED when Reset() is called while Decode() is pending. */ int32_t Decode( [in] PP_Resource video_decoder, @@ -140,7 +144,9 @@ interface PPB_VideoDecoder { * completion. * * @return An int32_t containing an error code from <code>pp_errors.h</code>. - * Returns PP_OK if a picture is available. + * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Reset() + * call is pending. + * Returns PP_ERROR_INPROGRESS if there is another GetPicture() call pending. * Returns PP_ERROR_ABORTED when Reset() is called, or if a call to Flush() * completes while GetPicture() is pending. */ @@ -164,13 +170,15 @@ interface PPB_VideoDecoder { [in] PP_VideoPicture picture); /** - * Flushes the decoder. The plugin should call this when it reaches the end of - * its video stream in order to stop cleanly. The decoder will run all pending - * calls to completion. The plugin should make no further calls to the decoder - * other than GetPicture() and RecyclePicture() until the decoder signals - * completion by running the callback. Just before completion, any pending - * GetPicture() call will complete by running the callback with result - * PP_ERROR_ABORTED to signal that no more pictures are available. + * Flushes the decoder. The plugin should call Flush() when it reaches the + * end of its video stream in order to stop cleanly. The decoder will run any + * pending Decode() call to completion. The plugin should make no further + * calls to the decoder other than GetPicture() and RecyclePicture() until + * the decoder signals completion by running |callback|. Just before + * completion, any pending GetPicture() call will complete by running its + * callback with result PP_ERROR_ABORTED to signal that no more pictures are + * available. The plugin should recycle any pictures it is using before + * resuming decoding. * * @param[in] video_decoder A <code>PP_Resource</code> identifying the video * decoder. @@ -178,6 +186,7 @@ interface PPB_VideoDecoder { * completion. * * @return An int32_t containing an error code from <code>pp_errors.h</code>. + * Returns PP_ERROR_FAILED if the decoder isn't initialized. */ int32_t Flush( [in] PP_Resource video_decoder, @@ -185,10 +194,12 @@ interface PPB_VideoDecoder { /** * Resets the decoder as quickly as possible. The plugin can call Reset() to - * skip to another position in the video stream. Pending calls to Decode() and - * GetPicture()) are immediately aborted, causing their callbacks to run with - * PP_ERROR_ABORTED. The plugin should not make any further calls to the - * decoder until the decoder signals completion by running |callback|. + * skip to another position in the video stream. After Reset() returns, any + * pending calls to Decode() and GetPicture()) abort, causing their callbacks + * to run with PP_ERROR_ABORTED. The plugin should not make further calls to + * the decoder until the decoder signals completion by running |callback|. + * The pictures in use by the plugin remain valid until decoding is resumed, + * but need not be recycled. * * @param[in] video_decoder A <code>PP_Resource</code> identifying the video * decoder. @@ -196,6 +207,7 @@ interface PPB_VideoDecoder { * completion. * * @return An int32_t containing an error code from <code>pp_errors.h</code>. + * Returns PP_ERROR_FAILED if the decoder isn't initialized. */ int32_t Reset( [in] PP_Resource video_decoder, diff --git a/ppapi/c/ppb_video_decoder.h b/ppapi/c/ppb_video_decoder.h index f09908c..721e238 100644 --- a/ppapi/c/ppb_video_decoder.h +++ b/ppapi/c/ppb_video_decoder.h @@ -3,7 +3,7 @@ * found in the LICENSE file. */ -/* From ppb_video_decoder.idl modified Tue May 6 05:19:45 2014. */ +/* From ppb_video_decoder.idl modified Wed May 21 09:50:52 2014. */ #ifndef PPAPI_C_PPB_VIDEO_DECODER_H_ #define PPAPI_C_PPB_VIDEO_DECODER_H_ @@ -100,9 +100,8 @@ struct PPB_VideoDecoder_0_1 { /* dev */ struct PP_CompletionCallback callback); /** * Decodes a bitstream buffer. Copies |size| bytes of data from the plugin's - * |buffer|. The plugin should maintain the buffer and not call Decode() again - * until the decoder signals completion by returning PP_OK or by running - * |callback|. + * |buffer|. The plugin should wait until the decoder signals completion by + * returning PP_OK or by running |callback| before calling Decode() again. * * In general, each bitstream buffer should contain a demuxed bitstream frame * for the selected video codec. For example, H264 decoders expect to receive @@ -126,6 +125,11 @@ struct PPB_VideoDecoder_0_1 { /* dev */ * completion. * * @return An int32_t containing an error code from <code>pp_errors.h</code>. + * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Flush() + * or Reset() call is pending. + * Returns PP_ERROR_INPROGRESS if there is another Decode() call pending. + * Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created. + * Returns PP_ERROR_ABORTED when Reset() is called while Decode() is pending. */ int32_t (*Decode)(PP_Resource video_decoder, uint32_t decode_id, @@ -147,7 +151,9 @@ struct PPB_VideoDecoder_0_1 { /* dev */ * completion. * * @return An int32_t containing an error code from <code>pp_errors.h</code>. - * Returns PP_OK if a picture is available. + * Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Reset() + * call is pending. + * Returns PP_ERROR_INPROGRESS if there is another GetPicture() call pending. * Returns PP_ERROR_ABORTED when Reset() is called, or if a call to Flush() * completes while GetPicture() is pending. */ @@ -167,13 +173,15 @@ struct PPB_VideoDecoder_0_1 { /* dev */ void (*RecyclePicture)(PP_Resource video_decoder, const struct PP_VideoPicture* picture); /** - * Flushes the decoder. The plugin should call this when it reaches the end of - * its video stream in order to stop cleanly. The decoder will run all pending - * calls to completion. The plugin should make no further calls to the decoder - * other than GetPicture() and RecyclePicture() until the decoder signals - * completion by running the callback. Just before completion, any pending - * GetPicture() call will complete by running the callback with result - * PP_ERROR_ABORTED to signal that no more pictures are available. + * Flushes the decoder. The plugin should call Flush() when it reaches the + * end of its video stream in order to stop cleanly. The decoder will run any + * pending Decode() call to completion. The plugin should make no further + * calls to the decoder other than GetPicture() and RecyclePicture() until + * the decoder signals completion by running |callback|. Just before + * completion, any pending GetPicture() call will complete by running its + * callback with result PP_ERROR_ABORTED to signal that no more pictures are + * available. The plugin should recycle any pictures it is using before + * resuming decoding. * * @param[in] video_decoder A <code>PP_Resource</code> identifying the video * decoder. @@ -181,15 +189,18 @@ struct PPB_VideoDecoder_0_1 { /* dev */ * completion. * * @return An int32_t containing an error code from <code>pp_errors.h</code>. + * Returns PP_ERROR_FAILED if the decoder isn't initialized. */ int32_t (*Flush)(PP_Resource video_decoder, struct PP_CompletionCallback callback); /** * Resets the decoder as quickly as possible. The plugin can call Reset() to - * skip to another position in the video stream. Pending calls to Decode() and - * GetPicture()) are immediately aborted, causing their callbacks to run with - * PP_ERROR_ABORTED. The plugin should not make any further calls to the - * decoder until the decoder signals completion by running |callback|. + * skip to another position in the video stream. After Reset() returns, any + * pending calls to Decode() and GetPicture()) abort, causing their callbacks + * to run with PP_ERROR_ABORTED. The plugin should not make further calls to + * the decoder until the decoder signals completion by running |callback|. + * The pictures in use by the plugin remain valid until decoding is resumed, + * but need not be recycled. * * @param[in] video_decoder A <code>PP_Resource</code> identifying the video * decoder. @@ -197,6 +208,7 @@ struct PPB_VideoDecoder_0_1 { /* dev */ * completion. * * @return An int32_t containing an error code from <code>pp_errors.h</code>. + * Returns PP_ERROR_FAILED if the decoder isn't initialized. */ int32_t (*Reset)(PP_Resource video_decoder, struct PP_CompletionCallback callback); diff --git a/ppapi/cpp/video_decoder.h b/ppapi/cpp/video_decoder.h index f1f2d91..d1eded3 100644 --- a/ppapi/cpp/video_decoder.h +++ b/ppapi/cpp/video_decoder.h @@ -81,9 +81,8 @@ class VideoDecoder : public Resource { const CompletionCallback& callback); /// Decodes a bitstream buffer. Copies |size| bytes of data from the plugin's - /// |buffer|. The plugin should maintain the buffer and not call Decode() - /// again until the decoder signals completion by returning PP_OK or by - /// running |callback|. + /// |buffer|. The plugin should wait until the decoder signals completion by + /// returning PP_OK or by running |callback| before calling Decode() again. /// /// In general, each bitstream buffer should contain a demuxed bitstream frame /// for the selected video codec. For example, H264 decoders expect to receive @@ -105,6 +104,11 @@ class VideoDecoder : public Resource { /// completion. /// /// @return An int32_t containing an error code from <code>pp_errors.h</code>. + /// Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Flush() + /// or Reset() call is pending. + /// Returns PP_ERROR_INPROGRESS if there is another Decode() call pending. + /// Returns PP_ERROR_NOMEMORY if a bitstream buffer can't be created. + /// Returns PP_ERROR_ABORTED when Reset() is called while Decode() is pending. int32_t Decode(uint32_t decode_id, uint32_t size, const void* buffer, @@ -122,7 +126,9 @@ class VideoDecoder : public Resource { /// called on completion, and on success, to hold the picture descriptor. /// /// @return An int32_t containing an error code from <code>pp_errors.h</code>. - /// Returns PP_OK if a picture is available. + /// Returns PP_ERROR_FAILED if the decoder isn't initialized or if a Reset() + /// call is pending. + /// Returns PP_ERROR_INPROGRESS if there is another GetPicture() call pending. /// Returns PP_ERROR_ABORTED when Reset() is called, or if a call to Flush() /// completes while GetPicture() is pending. int32_t GetPicture( @@ -136,31 +142,37 @@ class VideoDecoder : public Resource { /// decoder. void RecyclePicture(const PP_VideoPicture& picture); - /// Flushes the decoder. The plugin should call this when it reaches the end - /// of its video stream in order to stop cleanly. The decoder will run all - /// pending calls to completion. The plugin should make no further calls to - /// the decoder other than GetPicture() and RecyclePicture() until the decoder - /// signals completion by running the callback. Just before completion, any - /// pending GetPicture() call will complete by running the callback with - /// result PP_ERROR_ABORTED to signal that no more pictures are available. + /// Flushes the decoder. The plugin should call Flush() when it reaches the + /// end of its video stream in order to stop cleanly. The decoder will run any + /// pending Decode() call to completion. The plugin should make no further + /// calls to the decoder other than GetPicture() and RecyclePicture() until + /// the decoder signals completion by running |callback|. Just before + /// completion, any pending GetPicture() call will complete by running its + /// callback with result PP_ERROR_ABORTED to signal that no more pictures are + /// available. The plugin should recycle any pictures it is using before + /// resuming decoding. /// /// @param[in] callback A <code>CompletionCallback</code> to be called on /// completion. /// /// @return An int32_t containing an error code from <code>pp_errors.h</code>. + /// Returns PP_ERROR_FAILED if the decoder isn't initialized. int32_t Flush(const CompletionCallback& callback); /// Resets the decoder as quickly as possible. The plugin can call Reset() to - /// skip to another position in the video stream. Pending calls to Decode() - /// and GetPicture()) are immediately aborted, causing their callbacks to run - /// with PP_ERROR_ABORTED. The plugin should not make any further calls to the - /// decoder until the decoder signals completion by running |callback|. + /// skip to another position in the video stream. After Reset() returns, any + /// pending calls to Decode() and GetPicture()) abort, causing their callbacks + /// to run with PP_ERROR_ABORTED. The plugin should not make further calls to + /// the decoder until the decoder signals completion by running |callback|. + /// The pictures in use by the plugin remain valid until decoding is resumed, + /// but need not be recycled. /// /// @param[in] callback A <code>CompletionCallback</code> to be called on /// completion. /// /// @return An int32_t containing an error code from <code>pp_errors.h</code>. - int32_t Reset(const CompletionCallback& callback); + /// Returns PP_ERROR_FAILED if the decoder isn't initialized. +int32_t Reset(const CompletionCallback& callback); }; } // namespace pp |