v4l2videodec: Fails negotiation when the device does not support framerate '0/1'
Gstreamer v4l2videodec plugin fails to negotiate the capabilities in handle_frame callback if the device does not support framerate '0/1'.
It seems to be using 'GstVideoInfo' to create 'acquired_caps' by setting up the videoinfo by doing 'g_fmt ioctls' on the device.
But the 'GstVideoInfo' is initialized with framerate '0/1' in gst_video_info_init'. Note that this framerate is not provided by the device. This framerate value ends up becoming the part of 'acquired_caps', since it is set that way in GstVideoInfo. These 'acquired_caps' are used to do negotiation and it fails if the 'available_caps' does not support framerate '0/1'.
Tested on gstreamer1.0-plugins-good (1.16.0)
References: