asfdemux: Only change writable caps and make sure to set updated caps on the srcpad
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 9 Jan 2012 14:46:10 +0000 (15:46 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 9 Jan 2012 14:46:10 +0000 (15:46 +0100)
gst/asfdemux/gstasfdemux.c

index f70522a..ac444e1 100644 (file)
@@ -1449,6 +1449,7 @@ gst_asf_demux_push_complete_payloads (GstASFDemux * demux, gboolean force)
           stream->par_x, stream->par_y, payload->par_x, payload->par_y);
       stream->par_x = payload->par_x;
       stream->par_y = payload->par_y;
+      stream->caps = gst_caps_make_writable (stream->caps);
       gst_caps_set_simple (stream->caps, "pixel-aspect-ratio",
           GST_TYPE_FRACTION, stream->par_x, stream->par_y, NULL);
       gst_pad_set_caps (stream->pad, stream->caps);
@@ -1458,8 +1459,10 @@ gst_asf_demux_push_complete_payloads (GstASFDemux * demux, gboolean force)
       GST_DEBUG ("Updating interlaced status (%d => %d)", stream->interlaced,
           payload->interlaced);
       stream->interlaced = payload->interlaced;
+      stream->caps = gst_caps_make_writable (stream->caps);
       gst_caps_set_simple (stream->caps, "interlaced", G_TYPE_BOOLEAN,
           stream->interlaced, NULL);
+      gst_pad_set_caps (stream->pad, stream->caps);
     }
 
     /* (sort of) interpolate timestamps using upstream "frame of reference",