[gst-cvs] gst-plugins-good: v4l2src: if max == min width/ height put an int in the probed caps, not an int range
Tim Mueller
tpm at kemper.freedesktop.org
Sun Aug 9 06:21:18 PDT 2009
Module: gst-plugins-good
Branch: master
Commit: 8c8e6af45badae969278c35da114ded6ce0ef0f7
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=8c8e6af45badae969278c35da114ded6ce0ef0f7
Author: Tim-Philipp Müller <tim.muller at collabora.co.uk>
Date: Sun Aug 9 14:19:42 2009 +0100
v4l2src: if max == min width/height put an int in the probed caps, not an int range
Fixes #560033.
---
sys/v4l2/gstv4l2object.c | 23 +++++++++++++++--------
1 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
index 021e49d..ce6f7c9 100644
--- a/sys/v4l2/gstv4l2object.c
+++ b/sys/v4l2/gstv4l2object.c
@@ -1681,17 +1681,24 @@ default_frame_sizes:
tmp = gst_structure_copy (template);
if (fix_num) {
- gst_structure_set (tmp,
- "width", GST_TYPE_INT_RANGE, min_w, max_w,
- "height", GST_TYPE_INT_RANGE, min_h, max_h,
- "framerate", GST_TYPE_FRACTION, fix_num, fix_denom, NULL);
+ gst_structure_set (tmp, "framerate", GST_TYPE_FRACTION, fix_num,
+ fix_denom, NULL);
} else {
/* if norm can't be used, copy the template framerate */
- gst_structure_set (tmp,
- "width", GST_TYPE_INT_RANGE, min_w, max_w,
- "height", GST_TYPE_INT_RANGE, min_h, max_h,
- "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 100, 1, NULL);
+ gst_structure_set (tmp, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1,
+ 100, 1, NULL);
}
+
+ if (min_w == max_w)
+ gst_structure_set (tmp, "width", G_TYPE_INT, max_w, NULL);
+ else
+ gst_structure_set (tmp, "width", GST_TYPE_INT_RANGE, min_w, max_w, NULL);
+
+ if (min_h == max_h)
+ gst_structure_set (tmp, "height", G_TYPE_INT, max_h, NULL);
+ else
+ gst_structure_set (tmp, "height", GST_TYPE_INT_RANGE, min_h, max_h, NULL);
+
gst_caps_append_structure (ret, tmp);
return ret;
More information about the Gstreamer-commits
mailing list