Files
ffmpeg/libavformat
Guangyu Sun 75510d7015 avformat/oggparsevorbis: Update end_trimming for the last packet
Without end_trimming, the last packet will contain unexpected samples used
for padding.

This commit partially fixes #6367 when the audio length is long enough.

dd if=/dev/zero of=./silence.raw count=20 bs=500
oggenc --raw silence.raw --output=silence.ogg
oggdec --raw --output silence.oggdec.raw silence.ogg
ffmpeg -codec:a libvorbis -i silence.ogg -f s16le -codec:a pcm_s16le silence.libvorbis.ffmpeg.raw
ffmpeg -i silence.ogg -f s16le -codec:a pcm_s16le silence.native.ffmpeg.raw
ls -l *.raw

The original test case in #6367 is still not fixed due to a remaining issue.

The remaining issue is that ogg_stream->private is not kept during
ogg_save()/ogg_restore(). Field final_duration in the private data is
important to calculate end_trimming.

Some common operations such as avformat_open_input() and
avformat_find_stream_info() before reading packet will trigger ogg_save()
and ogg_restore().

Luckily, final_duration will not get updated until the last ogg page. The
save/restore mentioned above will not change final_duration most of the
time. But if the audio length is short, those reads may be performed on
the last ogg page, causing trouble keeping the correct value of
final_duration. We probably need a more complicated patch to address this
issue.

Signed-off-by: Guangyu Sun <gsun@roblox.com>
2021-07-12 09:54:47 +02:00
..
2021-04-27 11:48:06 -03:00
2021-06-10 16:51:44 +02:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-03-31 22:01:36 +02:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-02-02 23:53:29 +01:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2020-10-06 00:01:35 +08:00
2020-10-06 00:01:27 +08:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-05-06 09:44:42 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-07-08 16:03:17 +02:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2020-10-07 22:16:09 +02:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2020-12-21 01:27:33 -05:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-05-13 09:13:03 +10:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-06-18 18:58:25 +02:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-07-05 12:49:55 -04:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-07-08 16:03:18 +02:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00
2021-04-27 11:48:06 -03:00