v4l2objects: Only allow mpeg-ts on source objects
authorEdward Hervey <edward.hervey@collabora.co.uk>
Thu, 28 Apr 2011 13:57:04 +0000 (15:57 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Tue, 17 May 2011 07:25:23 +0000 (09:25 +0200)
Ugly fix for #648312

sys/v4l2/gstv4l2object.c

index 5296197..e2713fc 100644 (file)
@@ -2049,7 +2049,9 @@ gst_v4l2_object_set_format (GstV4l2Object * v4l2object, guint32 pixelformat,
   GST_V4L2_CHECK_OPEN (v4l2object);
   GST_V4L2_CHECK_NOT_ACTIVE (v4l2object);
 
-  if (pixelformat == GST_MAKE_FOURCC ('M', 'P', 'E', 'G'))
+  /* Only unconditionally accept mpegts for sources */
+  if ((v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) &&
+      (pixelformat == GST_MAKE_FOURCC ('M', 'P', 'E', 'G')))
     return TRUE;
 
   memset (&format, 0x00, sizeof (struct v4l2_format));