ext/dv/gstdvdec.c: Handle the case where the incoming Video dv stream doesn't have...
authorEdward Hervey <bilboed@bilboed.com>
Sat, 26 Nov 2005 12:54:47 +0000 (12:54 +0000)
committerEdward Hervey <bilboed@bilboed.com>
Sat, 26 Nov 2005 12:54:47 +0000 (12:54 +0000)
Original commit message from CVS:
* ext/dv/gstdvdec.c: (gst_dvdec_sink_setcaps):
Handle the case where the incoming Video dv stream doesn't have
a pixel aspect ratio set.

ChangeLog
ext/dv/gstdvdec.c

index 2aa4543..1278b06 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-11-26  Edward Hervey  <edward@fluendo.com>
+
+       * ext/dv/gstdvdec.c: (gst_dvdec_sink_setcaps):
+       Handle the case where the incoming Video dv stream doesn't have
+       a pixel aspect ratio set.
+
 2005-11-25  Thomas Vander Stichele  <thomas at apestaart dot org>
 
        * docs/plugins/Makefile.am:
index c0007d1..917fa71 100644 (file)
@@ -203,7 +203,8 @@ gst_dvdec_sink_setcaps (GstPad * pad, GstCaps * caps)
   GstDVDec *dvdec;
   GstStructure *s;
   GstCaps *othercaps;
-  const GValue *par, *rate;
+  gboolean gotpar = FALSE;
+  const GValue *par = NULL, *rate = NULL;
 
   dvdec = GST_DVDEC (gst_pad_get_parent (pad));
 
@@ -212,8 +213,8 @@ gst_dvdec_sink_setcaps (GstPad * pad, GstCaps * caps)
 
   if (!gst_structure_get_int (s, "height", &dvdec->height))
     goto error;
-  if (!(par = gst_structure_get_value (s, "pixel-aspect-ratio")))
-    goto error;
+  if ((par = gst_structure_get_value (s, "pixel-aspect-ratio")))
+    gotpar = TRUE;
   if (!(rate = gst_structure_get_value (s, "framerate")))
     goto error;
 
@@ -230,8 +231,9 @@ gst_dvdec_sink_setcaps (GstPad * pad, GstCaps * caps)
       "height", G_TYPE_INT, dvdec->height,
       "framerate", GST_TYPE_FRACTION, dvdec->framerate_numerator,
       dvdec->framerate_denominator, NULL);
-  gst_structure_set_value (gst_caps_get_structure (othercaps, 0),
-      "pixel-aspect-ratio", par);
+  if (gotpar)
+    gst_structure_set_value (gst_caps_get_structure (othercaps, 0),
+        "pixel-aspect-ratio", par);
 
   gst_pad_set_caps (dvdec->srcpad, othercaps);