mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 06:58:56 +00:00
decoder: refine semantics of gst_vaapi_decoder_put_buffer().
Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty buffer is passed on. An empty buffer is a buffer with a NULL data pointer or with a size equals to zero. In this case, that buffer is simply skipped and the function returns TRUE. A NULL buffer argument still marks the end-of-stream.
This commit is contained in:
parent
d7fccc351a
commit
86981eea41
1 changed files with 10 additions and 2 deletions
|
@ -389,7 +389,10 @@ gst_vaapi_decoder_get_caps(GstVaapiDecoder *decoder)
|
||||||
* Queues a #GstBuffer to the HW decoder. The decoder holds a
|
* Queues a #GstBuffer to the HW decoder. The decoder holds a
|
||||||
* reference to @buf.
|
* reference to @buf.
|
||||||
*
|
*
|
||||||
* Caller can notify an End-Of-Stream with @buf set to %NULL.
|
* Caller can notify an End-Of-Stream with @buf set to %NULL. However,
|
||||||
|
* if an empty buffer is passed, i.e. a buffer with %NULL data pointer
|
||||||
|
* or size equals to zero, then the function ignores this buffer and
|
||||||
|
* returns %TRUE.
|
||||||
*
|
*
|
||||||
* Return value: %TRUE on success
|
* Return value: %TRUE on success
|
||||||
*/
|
*/
|
||||||
|
@ -398,7 +401,12 @@ gst_vaapi_decoder_put_buffer(GstVaapiDecoder *decoder, GstBuffer *buf)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail(GST_VAAPI_IS_DECODER(decoder), FALSE);
|
g_return_val_if_fail(GST_VAAPI_IS_DECODER(decoder), FALSE);
|
||||||
|
|
||||||
return push_buffer(decoder, buf ? gst_buffer_ref(buf) : NULL);
|
if (buf) {
|
||||||
|
if (!GST_BUFFER_DATA(buf) || GST_BUFFER_SIZE(buf) <= 0)
|
||||||
|
return TRUE;
|
||||||
|
buf = gst_buffer_ref(buf);
|
||||||
|
}
|
||||||
|
return push_buffer(decoder, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue