mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
parent
38124ef5e5
commit
f62c6ce5c8
1 changed files with 14 additions and 5 deletions
|
@ -4873,10 +4873,14 @@ gst_avi_demux_stream_data (GstAviDemux * avi)
|
|||
* through the whole file */
|
||||
if (avi->abort_buffering) {
|
||||
avi->abort_buffering = FALSE;
|
||||
if (size) {
|
||||
gst_adapter_flush (avi->adapter, 8);
|
||||
}
|
||||
return GST_FLOW_OK;
|
||||
}
|
||||
} else {
|
||||
return GST_FLOW_OK;
|
||||
}
|
||||
}
|
||||
GST_DEBUG ("chunk ID %" GST_FOURCC_FORMAT ", size %u",
|
||||
GST_FOURCC_ARGS (tag), size);
|
||||
|
||||
|
@ -4904,9 +4908,13 @@ gst_avi_demux_stream_data (GstAviDemux * avi)
|
|||
if (saw_desired_kf) {
|
||||
gst_adapter_flush (avi->adapter, 8);
|
||||
/* get buffer */
|
||||
if (size) {
|
||||
buf = gst_adapter_take_buffer (avi->adapter, GST_ROUND_UP_2 (size));
|
||||
/* patch the size */
|
||||
GST_BUFFER_SIZE (buf) = size;
|
||||
} else {
|
||||
buf = NULL;
|
||||
}
|
||||
} else {
|
||||
GST_DEBUG_OBJECT (avi,
|
||||
"Desired keyframe not yet reached, flushing chunk");
|
||||
|
@ -4980,6 +4988,7 @@ gst_avi_demux_stream_data (GstAviDemux * avi)
|
|||
stream->discont = FALSE;
|
||||
}
|
||||
res = gst_pad_push (stream->pad, buf);
|
||||
buf = NULL;
|
||||
|
||||
/* combine flows */
|
||||
res = gst_avi_demux_combine_flows (avi, stream, res);
|
||||
|
|
Loading…
Reference in a new issue