[gst-devel] Possible bug in v4l2src element - gst-plugins-good-0.10.10
Brijesh Singh
brijesh.ksingh at gmail.com
Fri Jan 30 00:30:50 CET 2009
Hello,
I was porting v4l2src element on TI Davinci platform and found a
possible bug in v4l2src element. v4l2src creates a list of supported
norms by using VIDIOC_ENUMSTD ioctl and then it calls
gst_v4l2_get_norm() to get the current norms and finally compares "if
(norm == GST_V4L2_TUNER_NORM (item->data)->index)" to return the
select norm object/
This comparison will not always return correct standard probed via the
driver. because its possible that driver returns the subset of a
known standard instead of the real-standard. e.g NTSC instead of
NTSC_M.
see v4l2 spec on why:
http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html#STANDARD
The spec has a example showing how the comparison is done.
A very small patch to fix this:
diff -uNr orig/gst-plugins-good-0.10.10/sys/v4l2/gstv4l2tuner.c
gst-plugins-good-0.10.10/sys/v4l2/gstv4l2tuner.c
--- orig/gst-plugins-good-0.10.10/sys/v4l2/gstv4l2tuner.c 2007-07-18
06:42:33.000000000 -0500
+++ gst-plugins-good-0.10.10/sys/v4l2/gstv4l2tuner.c 2009-01-29
16:11:21.000000000 -0600
@@ -244,7 +244,7 @@
gst_v4l2_get_norm (v4l2object, &norm);
for (item = v4l2object->norms; item != NULL; item = item->next) {
- if (norm == GST_V4L2_TUNER_NORM (item->data)->index)
+ if (norm & GST_V4L2_TUNER_NORM (item->data)->index)
return (GstTunerNorm *) item->data;
}
Please correct me if i'm wrong.
Thanks,
Brijesh Singh
More information about the gstreamer-devel
mailing list