v4l2: pool: Send drop frame signal after dqbuf success
This is a regression introduced by https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5479 Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4424 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8969>
This commit is contained in:
parent
5658683881
commit
749987be2b
@ -1294,6 +1294,11 @@ gst_v4l2_buffer_pool_dqbuf (GstV4l2BufferPool * pool, GstBuffer ** buffer,
|
|||||||
|
|
||||||
res = gst_v4l2_allocator_dqbuf (pool->vallocator, &group);
|
res = gst_v4l2_allocator_dqbuf (pool->vallocator, &group);
|
||||||
|
|
||||||
|
if (res == GST_V4L2_FLOW_LAST_BUFFER)
|
||||||
|
goto eos;
|
||||||
|
if (res != GST_FLOW_OK)
|
||||||
|
goto dqbuf_failed;
|
||||||
|
|
||||||
if (group->buffer.flags & V4L2_BUF_FLAG_ERROR) {
|
if (group->buffer.flags & V4L2_BUF_FLAG_ERROR) {
|
||||||
if (V4L2_TYPE_IS_OUTPUT (obj->type))
|
if (V4L2_TYPE_IS_OUTPUT (obj->type))
|
||||||
g_signal_emit (pool, gst_v4l2_buffer_pool_signals[OUTPUT_ERROR_DEQUEUED],
|
g_signal_emit (pool, gst_v4l2_buffer_pool_signals[OUTPUT_ERROR_DEQUEUED],
|
||||||
@ -1303,11 +1308,6 @@ gst_v4l2_buffer_pool_dqbuf (GstV4l2BufferPool * pool, GstBuffer ** buffer,
|
|||||||
0, (guint) group->buffer.timestamp.tv_sec);
|
0, (guint) group->buffer.timestamp.tv_sec);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res == GST_V4L2_FLOW_LAST_BUFFER)
|
|
||||||
goto eos;
|
|
||||||
if (res != GST_FLOW_OK)
|
|
||||||
goto dqbuf_failed;
|
|
||||||
|
|
||||||
old_buffer_state =
|
old_buffer_state =
|
||||||
g_atomic_int_and (&pool->buffer_state[group->buffer.index],
|
g_atomic_int_and (&pool->buffer_state[group->buffer.index],
|
||||||
~BUFFER_STATE_QUEUED);
|
~BUFFER_STATE_QUEUED);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user