mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
sys/v4l2/v4l2src_calls.c: Make sure the probed frame sizes are reversed in the resulting caps also when using V4L2_FR...
Original commit message from CVS: Patch by: William M. Brack <wbrack at mmm com hk> * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format_and_size), (gst_v4l2src_probe_caps_for_format): Make sure the probed frame sizes are reversed in the resulting caps also when using V4L2_FRMSIZE_STEPWISE (so they end up highest resolution first); also remove unused variable. (Partly fixes #520092)
This commit is contained in:
parent
110a0ea563
commit
a6019fc0bf
2 changed files with 21 additions and 4 deletions
12
ChangeLog
12
ChangeLog
|
@ -1,3 +1,15 @@
|
|||
2008-03-17 Tim-Philipp Müller <tim at centricular dot net>
|
||||
|
||||
Patch by: William M. Brack <wbrack at mmm com hk>
|
||||
|
||||
* sys/v4l2/v4l2src_calls.c:
|
||||
(gst_v4l2src_probe_caps_for_format_and_size),
|
||||
(gst_v4l2src_probe_caps_for_format):
|
||||
Make sure the probed frame sizes are reversed in the resulting
|
||||
caps also when using V4L2_FRMSIZE_STEPWISE (so they end up
|
||||
highest resolution first); also remove unused variable.
|
||||
(Partly fixes #520092)
|
||||
|
||||
2008-03-17 Wim Taymans <wim.taymans@collabora.co.uk>
|
||||
|
||||
Patch by: Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>
|
||||
|
|
|
@ -573,15 +573,12 @@ gst_v4l2src_probe_caps_for_format_and_size (GstV4l2Src * v4l2src,
|
|||
guint32 pixelformat,
|
||||
guint32 width, guint32 height, const GstStructure * template)
|
||||
{
|
||||
GstCaps *ret;
|
||||
gint fd = v4l2src->v4l2object->video_fd;
|
||||
struct v4l2_frmivalenum ival;
|
||||
guint32 num, denom;
|
||||
GstStructure *s;
|
||||
GValue rates = { 0, };
|
||||
|
||||
ret = gst_caps_new_empty ();
|
||||
|
||||
memset (&ival, 0, sizeof (struct v4l2_frmivalenum));
|
||||
ival.index = 0;
|
||||
ival.pixel_format = pixelformat;
|
||||
|
@ -787,6 +784,9 @@ gst_v4l2src_probe_caps_for_format (GstV4l2Src * v4l2src, guint32 pixelformat,
|
|||
|
||||
tmp = gst_v4l2src_probe_caps_for_format_and_size (v4l2src, pixelformat,
|
||||
w, h, template);
|
||||
|
||||
/* we get low res to high res, but want high res to low res in caps, so
|
||||
* prepend structs to results list, we'll reverse the order later then */
|
||||
if (tmp)
|
||||
results = g_list_prepend (results, tmp);
|
||||
|
||||
|
@ -801,8 +801,11 @@ gst_v4l2src_probe_caps_for_format (GstV4l2Src * v4l2src, guint32 pixelformat,
|
|||
|
||||
tmp = gst_v4l2src_probe_caps_for_format_and_size (v4l2src, pixelformat,
|
||||
w, h, template);
|
||||
|
||||
/* we get low res to high res, but want high res to low res in caps, so
|
||||
* prepend structs to results list, we'll reverse the order later then */
|
||||
if (tmp)
|
||||
gst_caps_append_structure (ret, tmp);
|
||||
results = g_list_prepend (results, tmp);
|
||||
}
|
||||
} else if (size.type == V4L2_FRMSIZE_TYPE_CONTINUOUS) {
|
||||
guint32 maxw, maxh;
|
||||
|
@ -818,6 +821,8 @@ gst_v4l2src_probe_caps_for_format (GstV4l2Src * v4l2src, guint32 pixelformat,
|
|||
gst_structure_set (tmp, "width", GST_TYPE_INT_RANGE, (gint) w,
|
||||
(gint) maxw, "height", GST_TYPE_INT_RANGE, (gint) h, (gint) maxh,
|
||||
NULL);
|
||||
|
||||
/* no point using the results list here, since there's only one struct */
|
||||
gst_caps_append_structure (ret, tmp);
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue