Commit 2b50a338 authored by Sebastian Dröge's avatar Sebastian Dröge 🍵

qtdemux: In gap mode, consider the mdat offset when calculating the remaining mdat size

The mdat generally does not start at offset 0, we have to include the
size of the moof and whatever else was in front of the mdat.
parent ea4e9fc2
......@@ -3282,6 +3282,7 @@ qtdemux_parse_trun (GstQTDemux * qtdemux, GstByteReader * trun,
* size, else we will still be able to use this when dealing with gap'ed
* input */
qtdemux->mdatleft = *running_offset - initial_offset;
qtdemux->mdatoffset = initial_offset;
qtdemux->mdatsize = qtdemux->mdatleft;
stream->n_samples += samples_count;
......@@ -6276,7 +6277,8 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
/* Finally update all push-based values to the expected values */
demux->neededbytes = demux->streams[i]->samples[res].size;
demux->offset = GST_BUFFER_OFFSET (inbuf);
demux->mdatleft = demux->mdatsize - demux->offset;
demux->mdatleft =
demux->mdatsize - demux->offset + demux->mdatoffset;
demux->todrop = 0;
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment