Skip to content
  • Jonathan Rosser's avatar
    Introduce new codec module to decode dirac video via libschroedinger · e5747cad
    Jonathan Rosser authored
    
    
    Schroedinger is a fast decoder of the Dirac video codec.  This plugin
    is currently the most complete dirac decoder (compared with ffmpeg or
    codec/dirac.c) and should ideally be used in preference
    
    - Input data blocks are handed over to schro which eventually free's them
      (avoids memcpy).  Freed by SchroBufferFree()
    - Share picture storage between schro and vlc -- avoids memcpy of picture
      data after decoding.  Freed by SchroFrameFree()
    - Autodetection of libschroedinger in configure.ac
      May be disabled with --disable-schroedinger
    - Bumped decoding priority to 200, to beat libavcodec.c and dirac.c,
      this module does a better job than either of them.
    
    - Remove potential memory leak when allocating pictures
    - Always use p_block rather than priv in SchroBufferFree
    - Performs pts interpolation for streams that do not have one pts per picture
    - Set progressive, top_field_first and nb_fields on picture_t's properly
    - Fix copyright date in header
    - Reorder picture_pts_t structure for efficiency
    - Print 64 bit types correctly with "%"PRId64
    - No need to p_buffer->i_buffer=0 before buffer_Release()
    - Work around schroedinger's lack of handling multiple parseunits per block
    - Work around corrupt data produced by demux/ts.c after discontinuity
    - Correctly reset decoder at Dirac END_OF_SEQUENCE
    - Split decoding loop into two parts:
       - First, injecting [valid] parse units into the decoder
       - Second, itterating the decoder
    
    Signed-off-by: default avatarDavid Flynn <davidf@woaf.net>
    Signed-off-by: default avatarRémi Denis-Courmont <rdenis@simphalempin.com>
    e5747cad