[vlc-devel] commit: Introduce new codec module to decode dirac video via libschroedinger ( Jonathan Rosser )

git version control git at videolan.org
Sun Jun 29 17:21:20 CEST 2008

vlc | branch: master | Jonathan Rosser <jrosser at rd.bbc.co.uk> | Fri Jun 27 17:17:16 2008 +0100| [e5747cadd72ca895f2d4d28137dc73a02d9632be]

Introduce new codec module to decode dirac video via libschroedinger

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: David Flynn <davidf at woaf.net>
Signed-off-by: Rémi Denis-Courmont <rdenis at simphalempin.com>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e5747cadd72ca895f2d4d28137dc73a02d9632be

 configure.ac                 |   16 ++
 modules/codec/Modules.am     |    1 +
 modules/codec/schroedinger.c |  533 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 550 insertions(+), 0 deletions(-)

Diff:   http://git.videolan.org/gitweb.cgi/vlc.git/?a=commitdiff;h=e5747cadd72ca895f2d4d28137dc73a02d9632be

More information about the vlc-devel mailing list