ffmpeg: do packet ts rescaling in write_packet()
authorAnton Khirnov <anton@khirnov.net>
Fri, 27 May 2016 10:04:29 +0000 (12:04 +0200)
committerwm4 <nfxjfg@googlemail.com>
Fri, 3 Mar 2017 07:45:43 +0000 (08:45 +0100)
commit4ee5aed122ba7d289c1686eca6eba161d5d62304
tree3daf3a3d530b96a8958a02d2b5ed38c58de18f18
parent33580a8625c77591919b6155a48da04dccc8d398
ffmpeg: do packet ts rescaling in write_packet()

This will be useful in the following commit, after which the muxer
timebase is not always available when encoding.

This merges Libav commit 3e265ca. It was previously skipped.

There are some changes with how/when the mux_timebase field is set,
because the Libav approach often causes a too imprecise time base
to be set. This is hard, because the muxer's write_header function
can readjust the timebase, at which point we might already have
encoded packets buffered. (It might be better to buffer them after
the encoder, instead of after all the timestamp handling logic
before muxing.)

The two FATE tests change because the output time base is raised
for subtitles. (Needed to avoid certain rounding issues in other
cases.)

Includes a minor merge fix by Mark Thompson, and

    avconv: Move rescale to stream timebase before monotonisation

also by Mark Thompson <sw@jkqxz.net>.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
ffmpeg.c
ffmpeg.h
tests/ref/fate/binsub-movtextenc
tests/ref/fate/sub2video