Skip to content
  • Thomas Guillem's avatar
    decoder: es_out rework CC ES usage · 4b91ca7e
    Thomas Guillem authored and Steve Lhomme's avatar Steve Lhomme committed
    Remove all CC related code in es_out.c. CC ESes are now treated as
    general Sub ESes with one major difference: it reference a master ES and create
    a decoder via the new function `vlc_input_decoder_CreateSubDec()`.
    
    Therefore, only the creation of the Sub Es differs from the main ES.
    
    The code deleting all sub decoders from vlc_input_decoder_Delete() has
    been removed since the es_out is already taking care of removing all
    SubESes related to one main ES. To enforce it, the main decoder will now
    assert that all sub decoders are removed on deletion.
    
    All vlc_input_decoder_ functions are now called, regardless of the ES
    type (main or sub), so this fix the following issues:
     - CC decoders are now drained
     - CC decoders use their own clocks
     - CC decoders get the correct delay/rate/pause_state
    
    vlc_input_decoder_StartWait(), vlc_input_decoder_StopWait() and
    vlc_input_decoder_Wait() need a special check since sub decoders pacing
    depends on their master decoder.
    4b91ca7e