gst-plugins-bad: dvdspu: Fix pad templates

Edward Hervey bilboed at gmail.com
Sun May 29 14:05:05 PDT 2011


On Sun, 2011-05-29 at 19:02 +0100, Tim-Philipp Müller wrote:
> On Sun, 2011-05-29 at 09:18 -0700, Edward Hervey wrote:
> 
> Hi,
> 
> > Module: gst-plugins-bad
> > Branch: master
> > Commit: 732828e31cbace59e6ce4f262b8339e43ed0c631
> > URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=732828e31cbace59e6ce4f262b8339e43ed0c631
> > 
> > Author: Edward Hervey <bilboed at bilboed.com>
> > Date:   Sun May 29 18:16:49 2011 +0200
> > 
> > dvdspu: Fix pad templates
> > 
> > Our caps intersection code is a bit too touchy about what an element
> > returns compared to its pad templates.
> 
> What was the exact problem here? The change doesn't look like it should
> be necessary at first glance: additional optional fields in the actual
> caps shouldn't be a problem, and neither should the single-value list.
> 
> I think there may have been a regression with caps subset/intersection
> handling in git core. I've seen a few other weird issues and
> not-negotiated errors lately (but haven't investigated yet).

  I thought it was an issue noone had seen before and was specific to
that element.

  It does fail indeed with other caps:

  c1 = gst.Caps("blah,something={1}")
  c2 = gst.Caps("blah,something=2")

  c1.is_subset(c2) => FALSE
  c2.is_subset(c1) => FALSE
  c1.intersect(c2) => empty caps
  

   This commit can be reverted once core is fixed.

    Edward

> 
> Cheers
>  -Tim
> 
> > ---
> > 
> >  gst/dvdspu/gstdvdspu.c |   10 ++++++----
> >  1 files changed, 6 insertions(+), 4 deletions(-)
> > 
> > diff --git a/gst/dvdspu/gstdvdspu.c b/gst/dvdspu/gstdvdspu.c
> > index 89b63d8..a68cdd5 100644
> > --- a/gst/dvdspu/gstdvdspu.c
> > +++ b/gst/dvdspu/gstdvdspu.c
> > @@ -55,16 +55,18 @@ static GstStaticPadTemplate video_sink_factory =
> >  GST_STATIC_PAD_TEMPLATE ("video",
> >      GST_PAD_SINK,
> >      GST_PAD_ALWAYS,
> > -    GST_STATIC_CAPS ("video/x-raw-yuv, " "format = (fourcc) { I420 }, "
> > -        "width = (int) [ 16, 4096 ], " "height = (int) [ 16, 4096 ]")
> > +    GST_STATIC_CAPS ("video/x-raw-yuv, " "format = (fourcc)I420, "
> > +        "width = (int) [ 16, 4096 ], " "height = (int) [ 16, 4096 ],"
> > +        "framerate = " GST_VIDEO_FPS_RANGE)
> >      /* FIXME: Can support YV12 one day too */
> >      );
> >  
> >  static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
> >      GST_PAD_SRC,
> >      GST_PAD_ALWAYS,
> > -    GST_STATIC_CAPS ("video/x-raw-yuv, " "format = (fourcc) { I420 }, "
> > -        "width = (int) [ 16, 4096 ], " "height = (int) [ 16, 4096 ]")
> > +    GST_STATIC_CAPS ("video/x-raw-yuv, " "format = (fourcc)I420, "
> > +        "width = (int) [ 16, 4096 ], " "height = (int) [ 16, 4096 ],"
> > +        "framerate = " GST_VIDEO_FPS_RANGE)
> >      /* FIXME: Can support YV12 one day too */
> >      );
> >  
> > 
> > _______________________________________________
> > gstreamer-commits mailing list
> > gstreamer-commits at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-commits
> 
> 




More information about the gstreamer-devel mailing list