• Edward Hervey's avatar
    playbin3: Implement gapless playback · c1e902a0
    Edward Hervey authored
    Similar in vein to the playbin2 architecture except that uridecodebin3
    are prerolled much earlier and all streams of the same type are
    fed through a 'concat' element.
    This keeps the philosphy of having all elements connected as soon
    as possible.
    The 'about-to-finish' signal is emitted whenever one of the uridecodebin
    is about to finish, allowing the users to set the next uri/suburi.
    The notion of a group being active has changed. It now means that the
    uridecodebin3 has been activated, but doesn't mean it is the one
    currently being outputted by the sinks (i.e. curr_group and next_group).
    This is done via detecting GST_MESSAGE_STREAM_START emission by playsink
    and figuring out which group is really playing.
    When the current group changes, a new thread is started to deactivate
    the previous one and optionnaly fire 'about-to-finish'.
gstplaybin3.c 166 KB