Skip to content

v4l2videoenc: fix set format failure when needs reset encoder

Qi Hou requested to merge hq/gstreamer:v4l2videoenc-set-format into main
In cases that encoder needs to reset format, there is race while draining.
v4l2videoenc finish() sends CMD_STOP command to driver, and desire to return
GST_FLOW_OK. But at this time, encoder CAPTURE may have dequeued the last
buffer and got eos. finish() return value changes to be GST_FLOW_EOS which
causes set format fail. So there is no need to check return value for finish()
when set format.

Also need to flush encoder after draining to make sure flush is finished.

Below is the related log I captured:

image

Edited by Qi Hou

Merge request reports