[Bug 760779] qtdemux: fix framerate calculation for fragmented format in push mode

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Jan 26 06:22:05 PST 2016


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

--- Comment #6 from Seungha Yang <sh.yang at lge.com> ---
{} are add to if-case

There is big difference between non-MSS fragmented format with MSS.
That is, as far as I know, MSS did not get moov but only get moof with
media_caps. So, it is possible that streams are exposed with the first moof.
However, just for non-MSS fragmented format case, following structure can be
possible.
[moov + mdat + moof + mdat....]
For that case, if qtdemux always expose streams after parsing the first moof,
some delay is inevitable, due to mdat between moov and the first moof. I think
that is the reason why qtdemux do not wait the first moof (in current
implementation).
So, this patch check availability of sample data in moov (using got_samples
variable). If moov have sample data, this patch will expose streams without
waiting moof (identical to current qtdemux implementation).
+            for (n = 0; n < demux->n_streams; n++) {
+              QtDemuxStream *stream = demux->streams[n];
+              got_samples |= stream->stbl_index >= 0 ? TRUE : FALSE;
+            }
+            if (!demux->fragmented || got_samples) {


However, [moov + moof + mdat...] case, the first moof is triggering condition
for expose stream by this patch.

In summary, I think it is desirable to always expose streams after parsing the
first moof, because [moov + mdat + moof + mdat....] case.

-- 
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