mirror of
https://gitee.com/openharmony/interface_sdk_c
synced 2024-11-28 01:11:14 +00:00
commit
11ff9a2d4f
@ -366,6 +366,38 @@ OH_AVErrCode OH_VideoDecoder_PushInputBuffer(OH_AVCodec *codec, uint32_t index);
|
|||||||
*/
|
*/
|
||||||
OH_AVErrCode OH_VideoDecoder_RenderOutputBuffer(OH_AVCodec *codec, uint32_t index);
|
OH_AVErrCode OH_VideoDecoder_RenderOutputBuffer(OH_AVCodec *codec, uint32_t index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Return the processed output buffer with render timestamp to the decoder, and notify the decoder to finish
|
||||||
|
* rendering the decoded data contained in the buffer on the output surface. If the output surface is not configured
|
||||||
|
* before, calling this interface only returns the output buffer corresponding to the specified index to the decoder.
|
||||||
|
* The timestamp may have special meaning depending on the destination surface.
|
||||||
|
* Invoker can use the timestamp to render the buffer at a specific time (at the VSYNC at or after the buffer
|
||||||
|
* timestamp). For this to work, the timestamp needs to be reasonably close to the current SystemNanoTime. A few notes:
|
||||||
|
* 1. The buffer will not be returned to the codec until the timestamp has passed and the buffer is no longer used by
|
||||||
|
* the surface.
|
||||||
|
* 2. Buffers are processed sequentially, so you may block subsequent buffers to be displayed on the surface.
|
||||||
|
* This is important if you want to react to user action, e.g. stop the video or seek.
|
||||||
|
* 3. If multiple buffers are sent to the surface to be rendered at the same VSYNC, the last one will be shown, and the
|
||||||
|
* other ones will be dropped.
|
||||||
|
* 4. If the timestamp is not "reasonably close" to the current system time, the Surface will
|
||||||
|
* ignore the timestamp, and display the buffer at the earliest feasible time. In this mode it will not drop frames.
|
||||||
|
* @syscap SystemCapability.Multimedia.Media.VideoDecoder
|
||||||
|
* @param codec Pointer to an OH_AVCodec instance
|
||||||
|
* @param index The index value corresponding to the output buffer, should be given by {@link
|
||||||
|
* OH_AVCodecOnNewOutputBuffer}
|
||||||
|
* @param renderTimestampNs The timestamp is associated with the output buffer when it is sent to the surface. The unit
|
||||||
|
* is nanosecond
|
||||||
|
* @return Returns AV_ERR_OK if the execution is successful,
|
||||||
|
* otherwise returns a specific error code, refer to {@link OH_AVErrCode}.
|
||||||
|
* {@link AV_ERR_NO_MEMORY}, the codec has already released.
|
||||||
|
* {@link AV_ERR_INVALID_VAL}, the parameter is invalid.
|
||||||
|
* {@link AV_ERR_UNKNOWN}, unknown error.
|
||||||
|
* {@link AV_ERR_SERVICE_DIED}, avcodec service is died.
|
||||||
|
* {@link AV_ERR_INVALID_STATE}, this interface was called in invalid state.
|
||||||
|
* @since 12
|
||||||
|
*/
|
||||||
|
OH_AVErrCode OH_VideoDecoder_RenderOutputBufferAtTime(OH_AVCodec *codec, uint32_t index, int64_t renderTimestampNs);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Return the processed output Buffer to the decoder.
|
* @brief Return the processed output Buffer to the decoder.
|
||||||
* @syscap SystemCapability.Multimedia.Media.VideoDecoder
|
* @syscap SystemCapability.Multimedia.Media.VideoDecoder
|
||||||
|
@ -86,6 +86,10 @@
|
|||||||
{
|
{
|
||||||
"first_introduced": "11",
|
"first_introduced": "11",
|
||||||
"name": "OH_VideoDecoder_SetDecryptionConfig"
|
"name": "OH_VideoDecoder_SetDecryptionConfig"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"first_introduced": "12",
|
||||||
|
"name": "OH_VideoDecoder_RenderOutputBufferAtTime"
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user