[Bug 752603] qtdemux: Unable to play streaming MP4 (H264+AAC) file from VLC

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sat Jul 25 02:51:10 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=752603

--- Comment #4 from Steinar H. Gunderson <steinar+gnomebugs at gunderson.no> ---
Looking at the network play (with the example file I gave): There's an mdat
atom at offset 2646. next_entry_size() goes through and finds that the first
sample is from one of the audio streams, at offset 532 (size 668):

0:00:00.371909880 23451 0x7f6b5c03d6d0 LOG                  qtdemux
qtdemux.c:4493:next_entry_size:<qtdemux0> Finding entry at offset 2646
0:00:00.371913285 23451 0x7f6b5c03d6d0 LOG                  qtdemux
qtdemux.c:6358:qtdemux_parse_samples:<qtdemux0> parsing samples for stream
fourcc mp4a, pad audio_0
0:00:00.371917434 23451 0x7f6b5c03d6d0 DEBUG                qtdemux
qtdemux.c:6369:qtdemux_parse_samples:<qtdemux0> parsing up to sample 0
0:00:00.371920466 23451 0x7f6b5c03d6d0 LOG                  qtdemux
qtdemux.c:4519:next_entry_size:<qtdemux0> Checking Stream 0 (sample_index:0 /
offset:532 / size:668)
0:00:00.371924603 23451 0x7f6b5c03d6d0 LOG                  qtdemux
qtdemux.c:6358:qtdemux_parse_samples:<qtdemux0> parsing samples for stream
fourcc mp4a, pad audio_1
0:00:00.371928504 23451 0x7f6b5c03d6d0 DEBUG                qtdemux
qtdemux.c:6369:qtdemux_parse_samples:<qtdemux0> parsing up to sample 0
0:00:00.371931521 23451 0x7f6b5c03d6d0 LOG                  qtdemux
qtdemux.c:4519:next_entry_size:<qtdemux0> Checking Stream 1 (sample_index:0 /
offset:6613 / size:655)
0:00:00.371935517 23451 0x7f6b5c03d6d0 LOG                  qtdemux
qtdemux.c:6358:qtdemux_parse_samples:<qtdemux0> parsing samples for stream
fourcc mp4a, pad audio_2
0:00:00.371939507 23451 0x7f6b5c03d6d0 DEBUG                qtdemux
qtdemux.c:6369:qtdemux_parse_samples:<qtdemux0> parsing up to sample 0
0:00:00.371942272 23451 0x7f6b5c03d6d0 LOG                  qtdemux
qtdemux.c:4519:next_entry_size:<qtdemux0> Checking Stream 2 (sample_index:0 /
offset:13256 / size:614)
0:00:00.371947621 23451 0x7f6b5c03d6d0 LOG                  qtdemux
qtdemux.c:6358:qtdemux_parse_samples:<qtdemux0> parsing samples for stream
fourcc avc1, pad video_0
0:00:00.371951432 23451 0x7f6b5c03d6d0 DEBUG                qtdemux
qtdemux.c:6369:qtdemux_parse_samples:<qtdemux0> parsing up to sample 0
0:00:00.371954249 23451 0x7f6b5c03d6d0 LOG                  qtdemux
qtdemux.c:4519:next_entry_size:<qtdemux0> Checking Stream 3 (sample_index:0 /
offset:19176 / size:37203)
0:00:00.371957801 23451 0x7f6b5c03d6d0 LOG                  qtdemux
qtdemux.c:4528:next_entry_size:<qtdemux0> stream 0 offset 532 demux->offset
:2646

But since that's behind the current demux offset, it just gives up:

0:00:00.371961429 23451 0x7f6b5c03d6d0 DEBUG                qtdemux
qtdemux.c:4542:next_entry_size:<qtdemux0> There wasn't any entry at offset 2646

The first time next_entry_size() returns -1, it's a soft error, but then
rapidly it just gives up parsing the stream.

If I hack so that it simply skips samples before the demux offset, it goes
through to parse the entire mdat atom (in Firefox, I even get a brief moment of
audio), and then segfaults as it gets some corruption on trying to find the
next one.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list