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:07:54 +0000 (22:07 +0100)
commit53f3f5233f38aef0b544ebfbb2c450134aae0639
tree24a28520edd71de7700f83b97d26aa5be633a953
parent110eff79caf41a1c0ba9f35f5d46d91f8097be5f
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>
(cherry picked from commit aa25198f1b925a464bdfa83a98476f08d26c9209)
libavformat/mov.c