avformat/mov: fix hang while seek on a kind of fragmented mp4
authorCharles Liu <liuchh83@gmail.com>
Sun, 3 Feb 2019 15:09:06 +0000 (23:09 +0800)
committerMarton Balint <cus@passwd.hu>
Mon, 11 Feb 2019 21:01:06 +0000 (22:01 +0100)
commitaa25198f1b925a464bdfa83a98476f08d26c9209
tree8ffbd7988eb92177d25d3abaa3086c2ac194f1d2
parent00fd38f1846a3c889b6ec645107eaea415b99840
avformat/mov: fix hang while seek on a kind of fragmented mp4

Binary searching would hang if the fragment items do NOT have timestamp for the
specified stream.

For example, a fmp4 consists of separated 'moof' boxes for each track, and
separated 'sidx' for each segment, but no 'mfra' box.  Then every fragment item
only have the timestamp for one of its tracks.

Example:
ffmpeg -f lavfi -i testsrc -f lavfi -i sine -movflags dash+frag_keyframe+skip_trailer+separate_moof -t 1 out.mp4
ffmpeg -ss 0.5 -i out.mp4 -f null none

Also fixes the hang in ticket #7572, but not the reason for having
AV_NOPTS_VALUE timestamps there.

Signed-off-by: Charles Liu <liuchh83@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
libavformat/mov.c