Skip to content
  • Edward Hervey's avatar
    playbin3: Implement gapless playback · c1e902a0
    Edward Hervey authored and Edward Hervey's avatar Edward Hervey committed
    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'.
    c1e902a0