[Bug 748946] New: Add "aggregate-eos" property to videoaggregator pads

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue May 5 05:51:51 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=748946

            Bug ID: 748946
           Summary: Add "aggregate-eos" property to videoaggregator pads
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: nirbheek.chauhan at gmail.com
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Created attachment 302921
  --> https://bugzilla.gnome.org/attachment.cgi?id=302921&action=edit
videoaggregator: New property 'aggregate-eos'

Description: When a videoaggregator pad with this property set receives EOS,
instead of going EOS, it will keep passing the last frame to the aggregator;
effectively causing the pad to continue to "aggregate (despite) eos".

This is useful in a number of cases, such as:

1) Implementing a "slideshow" with a specific list of pictures being displayed
one after the other for a specific amount of time each. One can send a single
frame which will be repeated instead of generating multiple frames to send to
videoaggregator.

2) Implementing an application that has to seamlessly switch between multiple
video files—repeating the last frame for 1-2 frames helps avoid the aggregator
falling back to generating a "background" frame (which is a
black/white/checkerboard pattern frame) while the next pad is connected.
Repeating 1-2 frames is almost unnoticeable, but a black frame is immediately
noticeable as a glitch.

In theory, this can be avoided by connecting the next pad in advance and
setting the correct pad offset, but in reality, with A/V files one has to
ensure that the audio is stitched perfectly, and that usually means that the
video cannot be, and one needs to repeat/drop frames to keep A/V sync.

Obvious caveat: If one sets all the sink pads of a videoaggregator to
"aggregate-eos", the element will never pass on EOS downstream, and the
pipeline will never stop playing. One has to either take care and not set that
on the last pad that will be requested on the element, or manually send an EOS
event to the element.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list