1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00
Go to file
Philip Langdale 9d89c8b3ac matroskadec, matroskadec, srtenc: Read/Write duration for subtitles.
After much discussion and back-and-forth, we reached the conclusion
that matroska uses convergence_duration for subtitle duration because
a 32bit value isn't large enough to store the duration if sub-micro-second
timebases are used. Matroska may not be the only one that supports these
timebases, but it's certainly the only one that ffmpeg attempts to support
in this way.

The long term solution that we seemed to reach was that if we encounter
a matroska file with a sub-micro-second timebase, we should internally
scale it up to at least micro-second, and then duration can be used
normally. This suggests that on the encode side, we should not allow
generation of files with sub-micro-second timebases, but that's a separate
issue.

That being a non-trivial change, and the subtitle interoperability breakage
being very real, I'm re-submitting this small change for consideration.

In this diff, we make sure that duration is populated by the matroska
demuxer, and that convergence_duration is respected in matroskaenc and
srtenc, but that duration is used otherwise. This ends up being a strict
improvement - pipelines that use convergence duration are unchanged, and
ones that are currently broken due to the duration mismatch will start
working - except for the ones with the extreme timebases, but those were
already broken.

Signed-off-by: Philip Langdale <philipl@overt.org>
2012-08-31 20:22:49 -07:00
compat lavu: add snprintf(), vsnprint() and strtod() replacements for MS runtime. 2012-08-28 17:52:03 +02:00
doc lavfi/hue: add process_command callback 2012-08-31 18:09:30 +02:00
libavcodec lavc: support building with the forks ABI for avcodec_find_best_pix_fmt2() 2012-08-31 21:35:40 +02:00
libavdevice v4l2: fix compile on systems that lack V4L2_PIX_FMT_CPIA1 2012-08-31 04:35:06 +02:00
libavfilter avfiltergraph: use avcodec_find_best_pix_fmt_of_2() 2012-08-31 21:35:39 +02:00
libavformat matroskadec, matroskadec, srtenc: Read/Write duration for subtitles. 2012-08-31 20:22:49 -07:00
libavresample Merge remote-tracking branch 'qatar/master' 2012-08-31 13:34:32 +02:00
libavutil Merge remote-tracking branch 'qatar/master' 2012-08-31 13:34:32 +02:00
libpostproc rename the remaining instances of HAVE_MMX2 to HAVE_MMXEXT 2012-08-20 17:47:25 +02:00
libswresample swr/resample: update SSSE3 flag to new name 2012-09-01 01:29:36 +02:00
libswscale Add some missing _EXTERNAL suffixes to yasm source files. 2012-08-31 15:39:03 +02:00
mt-work Merge commit '36ef5369ee9b336febc2c270f8718cec4476cb85' 2012-08-07 22:45:46 +02:00
presets presets: specify the codecs. 2012-05-04 18:40:36 +02:00
tests fate-utvideoenc: remove unneeded -f avi 2012-09-01 01:54:40 +02:00
tools Merge remote-tracking branch 'qatar/master' 2012-08-31 13:34:32 +02:00
.gitignore gitignore: add scaling_video example. 2012-08-28 20:35:04 +02:00
arch.mak Optimization of AMR NB and WB decoders for MIPS 2012-06-11 21:12:39 +02:00
Changelog lavfi: port decimate libmpcodecs filter 2012-08-31 16:04:37 +02:00
cmdutils_common_opts.h cmdutils: add -layouts option. 2012-08-28 15:09:49 +02:00
cmdutils.c Merge commit 'ec36aa69448f20a78d8c4588265022e0b2272ab5' 2012-08-31 13:01:30 +02:00
cmdutils.h Merge commit 'ec36aa69448f20a78d8c4588265022e0b2272ab5' 2012-08-31 13:01:30 +02:00
common.mak Merge remote-tracking branch 'qatar/master' 2012-08-30 17:28:21 +02:00
configure configure: add switch to enable debian/libav compatible ABI 2012-08-31 21:35:39 +02:00
COPYING.GPLv2
COPYING.GPLv3
COPYING.LGPLv2.1 cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
COPYING.LGPLv3
CREDITS Revert "partially rename FFmpeg to Libav" 2011-03-17 17:26:45 +01:00
Doxyfile Merge remote-tracking branch 'qatar/master' 2012-08-04 23:51:43 +02:00
ffmpeg_filter.c ffmpeg_filter: use avcodec_find_best_pix_fmt_of_2() 2012-08-31 21:35:39 +02:00
ffmpeg_opt.c Merge commit 'ec36aa69448f20a78d8c4588265022e0b2272ab5' 2012-08-31 13:01:30 +02:00
ffmpeg.c Merge commit 'ec36aa69448f20a78d8c4588265022e0b2272ab5' 2012-08-31 13:01:30 +02:00
ffmpeg.h Merge commit 'ec36aa69448f20a78d8c4588265022e0b2272ab5' 2012-08-31 13:01:30 +02:00
ffplay.c ffplay: get rid of void casts in the option table 2012-08-31 14:26:20 +02:00
ffprobe.c Merge commit 'ec36aa69448f20a78d8c4588265022e0b2272ab5' 2012-08-31 13:01:30 +02:00
ffserver.c Merge remote-tracking branch 'qatar/master' 2012-08-20 17:31:55 +02:00
INSTALL Merge remote branch 'qatar/master' 2011-04-08 02:50:13 +02:00
library.mak Merge remote-tracking branch 'qatar/master' 2012-08-30 17:28:21 +02:00
LICENSE LICENSE: correct incorrect claims on *GPL incompatibility 2012-08-16 04:47:18 +02:00
MAINTAINERS Add CPiA video decoder 2012-08-31 00:24:11 +02:00
Makefile Merge remote-tracking branch 'qatar/master' 2012-08-29 18:13:00 +02:00
README README: be a tiny bit more verbose 2012-04-06 10:23:26 +02:00
RELEASE RELEASE: update, seem this has been forgotten 2012-07-01 21:21:07 +02:00
version.sh version.sh: handle shallow clones and snapshots. 2011-07-22 10:43:59 +02:00

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

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

* Read the documentation in the doc/ directory in git.
  You can also view it online at http://ffmpeg.org/documentation.html

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

* See the LICENSE file.

3) Build and Install
--------------------

* See the INSTALL file.