From: <tp...@ke...> - 2007-11-13 17:19:27
|
CVS Root: /cvs/gstreamer Module: gst-plugins-good Changes by: tpm Date: Tue Nov 13 2007 17:19:28 UTC Log message: * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format): If VIDIOC_ENUM_FRAMESIZES is defined (= recent kernel), but the corresponding ioctl() call fails even though the driver claims to support this format, just fall back to the pre-2.6.19 kernel routine that creates caps with suitable height and width ranges (see #448278). Modified files: . : ChangeLog sys/v4l2 : v4l2src_calls.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ChangeLog.diff?r1=1.3163&r2=1.3164 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/sys/v4l2/v4l2src_calls.c.diff?r1=1.71&r2=1.72 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-plugins-good/ChangeLog,v retrieving revision 1.3163 retrieving revision 1.3164 diff -u -d -r1.3163 -r1.3164 --- ChangeLog 13 Nov 2007 17:01:06 -0000 1.3163 +++ ChangeLog 13 Nov 2007 17:19:12 -0000 1.3164 @@ -1,5 +1,14 @@ 2007-11-13 Tim-Philipp Müller <tim at centricular dot net> + * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format): + If VIDIOC_ENUM_FRAMESIZES is defined (= recent kernel), but the + corresponding ioctl() call fails even though the driver claims to + support this format, just fall back to the pre-2.6.19 kernel + routine that creates caps with suitable height and width ranges + (see #448278). + +2007-11-13 Tim-Philipp Müller <tim at centricular dot net> Patch by: Mark Nauwelaerts <manauw skynet be> * gst/matroska/matroska-demux.c: Index: v4l2src_calls.c RCS file: /cvs/gstreamer/gst-plugins-good/sys/v4l2/v4l2src_calls.c,v retrieving revision 1.71 retrieving revision 1.72 diff -u -d -r1.71 -r1.72 --- v4l2src_calls.c 26 Oct 2007 15:03:06 -0000 1.71 +++ v4l2src_calls.c 13 Nov 2007 17:19:13 -0000 1.72 @@ -810,6 +810,9 @@ results = g_list_delete_link (results, results); } + if (gst_caps_is_empty (ret)) + goto enum_framesizes_no_results; return ret; /* ERRORS */ @@ -821,6 +824,15 @@ " (%s)", GST_FOURCC_ARGS (pixelformat), g_strerror (errno)); goto default_frame_sizes; +enum_framesizes_no_results: + { + /* it's possible that VIDIOC_ENUM_FRAMESIZES is defined but the driver in + * question doesn't actually support it yet */ + GST_DEBUG_OBJECT (v4l2src, "No results for pixelformat %" GST_FOURCC_FORMAT + " enumerating frame sizes, trying fallback", + GST_FOURCC_ARGS (pixelformat)); + goto default_frame_sizes; + } unknown_type: { GST_WARNING_OBJECT (v4l2src, |