Files
FFmpeg/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
..
2024-03-31 00:08:43 +01:00
2024-08-28 16:27:54 +02:00
2025-04-13 22:49:21 +02:00
2024-09-24 15:37:15 +02:00
2025-04-13 22:49:21 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-26 06:36:43 +01:00
2024-03-31 00:08:43 +01:00
2025-04-27 15:52:30 +01:00
2024-05-09 16:17:39 +02: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
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-11 16:52:42 +01:00
2024-12-02 03:14:47 +01:00
2024-06-19 10:12:50 -03:00
2024-03-31 00:08:43 +01:00
2024-03-26 06:36:43 +01:00
2024-06-04 11:46:27 +02:00
2024-07-21 16:41:23 +02:00
2024-04-17 18:31:06 +05:30
2024-05-01 02:57:12 +02:00
2024-04-06 12:59:56 +02:00
2024-04-06 12:59:56 +02:00
2024-04-06 12:59:56 +02:00
2025-02-16 15:41:41 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2025-06-01 16:36:54 +08:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-07-21 16:41:43 +02:00
2025-03-28 15:23:28 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-11-03 10:53:15 +11:00
2024-03-15 12:51:15 +01:00
2024-03-15 12:51:15 +01:00
2024-03-31 00:08:43 +01:00
2024-08-14 18:20:58 +02:00
2024-07-21 17:02:11 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-07-21 17:02:11 +02:00
2025-02-07 10:13:50 -05:00
2025-04-27 15:52:30 +01:00
2024-03-26 06:36:43 +01:00
2024-03-26 06:36:43 +01:00
2024-07-21 17:02:12 +02:00
2024-03-31 00:08:43 +01:00