libavformat/mux: Fix audio_preload
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Mon, 24 Jun 2019 21:16:18 +0000 (23:16 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 26 Jun 2019 17:05:29 +0000 (19:05 +0200)
commit1889e3166cc5780780d7f40ac2271e5308f32b8e
tree8616c5e6ef5a66e858d484e4687f50b33826a495
parentbb11584924d6190a9028cbb319891028f44856a9
libavformat/mux: Fix audio_preload

Commit 31f9032b added the audio_preload feature; its goal is to
interleave audio earlier than the rest. Unfortunately, it has never ever
worked, because the check for whether a packet should be interleaved
before or after another packet was completely wrong: When audio_preload
vanishes, interleave_compare_dts returns 1 if the new packet should be
interleaved earlier than the packet it is compared with and that is what
the rest of the code expects. But the codepath used when audio_preload is
set does the opposite.

Also fixes potential undefined behaviour (namely signed integer
overflow).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/mux.c
libavformat/version.h