mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-24 02:31:03 +00:00
v4l2object: check if translated format is valid
Also add a FIXME in gst_v4l2_object_setup_format to note that the whole function has to be improved in order to support ENCODED formats. It requires to have an encoder device which we do not have right now. https://bugzilla.gnome.org/show_bug.cgi?id=720568
This commit is contained in:
parent
520dda092a
commit
79f2c06883
1 changed files with 14 additions and 3 deletions
|
@ -2919,9 +2919,6 @@ gst_v4l2_object_setup_format (GstV4l2Object * v4l2object,
|
||||||
if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_FMT, &fmt) < 0)
|
if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_FMT, &fmt) < 0)
|
||||||
goto get_fmt_failed;
|
goto get_fmt_failed;
|
||||||
|
|
||||||
if (fmt.fmt.pix.width == 0 || fmt.fmt.pix.height == 0)
|
|
||||||
goto invalid_dimensions;
|
|
||||||
|
|
||||||
fmtdesc = gst_v4l2_object_get_format_from_fourcc (v4l2object,
|
fmtdesc = gst_v4l2_object_get_format_from_fourcc (v4l2object,
|
||||||
fmt.fmt.pix.pixelformat);
|
fmt.fmt.pix.pixelformat);
|
||||||
if (fmtdesc == NULL)
|
if (fmtdesc == NULL)
|
||||||
|
@ -2929,6 +2926,20 @@ gst_v4l2_object_setup_format (GstV4l2Object * v4l2object,
|
||||||
|
|
||||||
/* No need to care about mplane, the four first params are the same */
|
/* No need to care about mplane, the four first params are the same */
|
||||||
format = gst_v4l2_object_v4l2fourcc_to_video_format (fmt.fmt.pix.pixelformat);
|
format = gst_v4l2_object_v4l2fourcc_to_video_format (fmt.fmt.pix.pixelformat);
|
||||||
|
|
||||||
|
/* FIXME do more work in the whole function if
|
||||||
|
* format is GST_VIDEO_FORMAT_ENCODED
|
||||||
|
* Also gst_v4l2_object_v4l2fourcc_to_video_format should be improved
|
||||||
|
* because for now it never returns GST_VIDEO_FORMAT_ENCODED
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* fails if we do no translate the fmt.pix.pixelformat to GstVideoFormat */
|
||||||
|
if (format == GST_VIDEO_FORMAT_UNKNOWN)
|
||||||
|
goto unsupported_format;
|
||||||
|
|
||||||
|
if (fmt.fmt.pix.width == 0 || fmt.fmt.pix.height == 0)
|
||||||
|
goto invalid_dimensions;
|
||||||
|
|
||||||
width = fmt.fmt.pix.width;
|
width = fmt.fmt.pix.width;
|
||||||
height = fmt.fmt.pix.height;
|
height = fmt.fmt.pix.height;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue