1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Go to file
David Mitchell d150a147da Improve support for PGS subtitles.
The previous implementation assumed that a new picture would always
supersede the previous picture. Similarly, presentation segments
were assumed to pertain to the most-recently-read picture.

However, each presentation segment may refer to 0 or more pictures
by their ID. Picture IDs may repeat, and a repeated picture ID
indicates that the old picture for that ID is no longer needed
and may be discarded.

The new implementation allocates a buffer with one slot for each
possible picture ID (the picture ID is a 16-bit field) and
properly decodes presentation segments so that all relevant
pictures are output upon encountering a display segment.

Given that most PGS streams are unlikely to use more than a small
fraction of the available picture IDs, it would probably be better
to use a more memory-efficient data structure. I'm lazy though, so
I leave this to a more motivated individual.

I've tested the code with MKV files in VLC (a recent revision from
their git repo) and with HandBrake (a version that I hacked up to
use ffmpeg's PGS subtitle decoder).

Review-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-01-23 19:47:49 +01:00
doc Merge remote-tracking branch 'qatar/master' 2012-01-21 23:11:27 +01:00
ffpresets
libavcodec Improve support for PGS subtitles. 2012-01-23 19:47:49 +01:00
libavdevice Revert "v4l2: poll the file descriptor" 2012-01-11 14:57:56 +01:00
libavfilter avfilter: add some asserts() to check refcounts. 2012-01-22 19:30:40 +01:00
libavformat cafdec: replace deprecated get_strz() 2012-01-23 17:18:44 +01:00
libavutil base64: 10l endian fix. 2012-01-22 23:06:04 +01:00
libpostproc pp: bump major in git master to match what debian contains. 2012-01-18 21:21:05 +01:00
libswresample libswresample: introduce int swr_set_compensation() instead of void swr_compensate() 2012-01-09 04:16:06 +01:00
libswscale sws: Fix unscaled >8bit planar chroma handling. 2012-01-22 15:30:06 +01:00
mt-work
presets
tests Revert "movenc: simplify handling of pcm vs. adpcm vs. other compressed codecs" 2012-01-22 23:40:24 +01:00
tools Merge remote-tracking branch 'qatar/master' 2012-01-21 23:11:27 +01:00
.gitignore doc: fate: Support building a plain text version 2011-12-20 16:05:01 +01:00
avconv.c Merge remote-tracking branch 'qatar/master' 2012-01-21 23:11:27 +01:00
Changelog Improve support for PGS subtitles. 2012-01-23 19:47:49 +01:00
cmdutils_common_opts.h ff*: add -max_alloc command line option 2011-12-25 18:55:43 +01:00
cmdutils.c cmdutils: include type in filter list. 2012-01-19 23:33:17 +01:00
cmdutils.h Merge remote-tracking branch 'qatar/master' 2012-01-19 01:19:38 +01:00
common.mak
configure Merge remote-tracking branch 'qatar/master' 2012-01-23 01:05:20 +01:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1
COPYING.LGPLv3
CREDITS
Doxyfile Merge remote-tracking branch 'qatar/master' 2011-12-26 04:10:47 +01:00
ffmpeg.c git show 2473a45c85 avconv.c | patch ffmpeg.c 2012-01-21 23:23:23 +01:00
ffplay.c Merge remote-tracking branch 'qatar/master' 2012-01-21 23:11:27 +01:00
ffprobe.c ffprobe: increase precision for the shown float values 2012-01-20 13:27:57 +01:00
ffserver.c Merge remote-tracking branch 'qatar/master' 2012-01-23 01:05:20 +01:00
INSTALL
library.mak Merge remote-tracking branch 'qatar/master' 2011-12-18 03:04:44 +01:00
LICENSE
MAINTAINERS MAINTAINERS: update release maintainers 2012-01-02 16:01:33 +01:00
Makefile Makefile: fix path to ffprobe.xsd 2011-12-27 22:29:40 +01:00
README
RELEASE Merge remote-tracking branch 'qatar/master' 2012-01-21 23:11:27 +01:00
version.sh

FFmpeg README
-------------

1) Documentation
----------------

* Read the documentation in the doc/ directory.

2) Licensing
------------

* See the LICENSE file.