Changeset e5747cadd72ca895f2d4d28137dc73a02d9632be
- Timestamp:
- 29/06/08 17:12:40
(5 months ago)
- Author:
- Rémi Denis-Courmont <rdenis@simphalempin.com>
- git-committer:
- Rémi Denis-Courmont <rdenis@simphalempin.com> 1214752360 +0300
- git-parent:
[025d0a239f580936ee53685119daebbc9a09ed13]
- git-author:
- Jonathan Rosser <jrosser@rd.bbc.co.uk> 1214583436 +0100
- Message:
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@woaf.net>
Signed-off-by: Rémi Denis-Courmont <rdenis@simphalempin.com>
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r3c5f3a2 |
re5747ca |
|
| 3585 | 3585 | AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.]) |
|---|
| 3586 | 3586 | ]) |
|---|
| | 3587 | fi |
|---|
| | 3588 | |
|---|
| | 3589 | dnl |
|---|
| | 3590 | dnl schroedinger decoder plugin (for dirac format video) |
|---|
| | 3591 | dnl |
|---|
| | 3592 | AC_ARG_ENABLE(schroedinger, |
|---|
| | 3593 | [ --disable-schroedinger high performance dirac codec (default enabled)]) |
|---|
| | 3594 | if test "${enable_schroedinger}" != "no"; then |
|---|
| | 3595 | PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0], [ |
|---|
| | 3596 | VLC_ADD_PLUGIN([schroedinger]) |
|---|
| | 3597 | VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS]) |
|---|
| | 3598 | VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [ |
|---|
| | 3599 | AS_IF([test "x${enable_schroedinger}" != "x"], [ |
|---|
| | 3600 | AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}]) |
|---|
| | 3601 | ]) |
|---|
| | 3602 | ]) |
|---|
| 3587 | 3603 | fi |
|---|
| 3588 | 3604 | |
|---|
| rf7d5f3e |
re5747ca |
|
| 37 | 37 | SOURCES_cc = cc.c cc.h |
|---|
| 38 | 38 | SOURCES_kate = kate.c |
|---|
| | 39 | SOURCES_schroedinger = schroedinger.c |
|---|