• Tim-Philipp Müller's avatar
    adder: send CAPS event downstream fixing not-negotiated errors · 24478261
    Tim-Philipp Müller authored
    Make sure to send a CAPS event downstream when we get our
    first input caps. This fixes not-negotiated errors and
    adder use with downstream elements other than fakesink.
    
    Even gst-launch-1.0 audiotestsrc ! adder ! pulsesink works now.
    
    Also, flag the other sink pads as FIXED_CAPS when we receive
    the first CAPS event on one of the sink pads (in addition to
    setting those caps on the the sink pads), so that a caps query
    will just return the fixed caps from now on.
    
    There's still a race between other upstreams checking if
    caps are accepted and sending a first buffer with possibly
    different caps than the first caps we receive on some other
    pad, but such is life.
    
    Also need to take into account optional fields better/properly.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=679545
    24478261
gstadder.c 41 KB