Files
ffmpeg-rockchip/libavformat
Zhao Zhili 56cf1c084d avformat/movenc: Fix flush fragment
The follow cmd output corrupted file before the patch:

ffmpeg -f lavfi -i color=blue,trim=duration=0.04 \
	-f lavfi -i anullsrc,atrim=duration=2 \
	-movflags +empty_moov+hybrid_fragmented \
	-frag_duration 1000000 \
	-frag_interleave 1 \
	output.mp4

1. first_track is the first track with track->entry != 0. As in the
command above, video track (track index 0) has a single frame. When
flush the second fragment, first_track is 1, the audio track.

2. write_moof = i == first_track, so write_moof is false for i = 0.

3. When mov->frag_interleave != 0, mov->mdat_buf != NULL, because
it contains audio data. So avio_write is called before write_moof,
that is, the data write before moof, and mov_finish_fragment
executed with wrong mdat_start.

4. With normal fmp4 output, the error isn't obvious. With
hybrid_fragmented, ffplay output.mp4 shows a lot of error messages.

Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
2025-06-01 16:36:54 +08:00
..
2025-04-13 22:49:21 +02:00
2025-04-13 22:49:21 +02:00
2025-04-27 15:52:30 +01:00
2025-04-22 20:45:57 +02:00
2025-01-17 23:33:27 +01:00
2025-04-22 20:45:57 +02:00
2025-02-16 15:41:41 +01:00
2025-06-01 16:36:54 +08:00
2025-03-28 15:23:28 +01:00
2025-02-07 10:13:50 -05:00
2025-04-27 15:52:30 +01:00