mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-10 03:19:40 +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
|
||||
* 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
|
||||
*/
|
||||
|
@ -398,7 +401,12 @@ gst_vaapi_decoder_put_buffer(GstVaapiDecoder *decoder, GstBuffer *buf)
|
|||
{
|
||||
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