mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-30 12:10:37 +00:00
gst/qtdemux/qtdemux.c: Don't post BUFFERING messages in streaming mode if the stream headers are behind the movie dat...
Original commit message from CVS: * gst/qtdemux/qtdemux.c: (gst_qtdemux_post_progress), (gst_qtdemux_chain): Don't post BUFFERING messages in streaming mode if the stream headers are behind the movie data; instead, post "progress" element messages as a temporary solution. Apps might get confused and do silly things to the pipeline state if they see buffering messages from different sources and don't realize they come from different sources (#387160).
This commit is contained in:
parent
75f32c38c5
commit
7238064f5c
2 changed files with 16 additions and 7 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
2006-12-18 Tim-Philipp Müller <tim at centricular dot net>
|
||||||
|
|
||||||
|
* gst/qtdemux/qtdemux.c: (gst_qtdemux_post_progress),
|
||||||
|
(gst_qtdemux_chain):
|
||||||
|
Don't post BUFFERING messages in streaming mode if the stream
|
||||||
|
headers are behind the movie data; instead, post "progress" element
|
||||||
|
messages as a temporary solution. Apps might get confused and do
|
||||||
|
silly things to the pipeline state if they see buffering messages
|
||||||
|
from different sources and don't realize they come from different
|
||||||
|
sources (#387160).
|
||||||
|
|
||||||
2006-12-18 Jan Schmidt <thaytan@mad.scientist.com>
|
2006-12-18 Jan Schmidt <thaytan@mad.scientist.com>
|
||||||
|
|
||||||
* configure.ac:
|
* configure.ac:
|
||||||
|
|
|
@ -1678,15 +1678,13 @@ next_entry_size (GstQTDemux * demux)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_qtdemux_post_buffering (GstQTDemux * demux, gint num, gint denom)
|
gst_qtdemux_post_progress (GstQTDemux * demux, gint num, gint denom)
|
||||||
{
|
{
|
||||||
gint perc = (gint) ((gdouble) num * 100.0 / (gdouble) denom);
|
gint perc = (gint) ((gdouble) num * 100.0 / (gdouble) denom);
|
||||||
|
|
||||||
gst_element_post_message (GST_ELEMENT_CAST (demux),
|
gst_element_post_message (GST_ELEMENT_CAST (demux),
|
||||||
gst_message_new_custom (GST_MESSAGE_BUFFERING,
|
gst_message_new_element (GST_OBJECT_CAST (demux),
|
||||||
GST_OBJECT_CAST (demux),
|
gst_structure_new ("progress", "percent", G_TYPE_INT, perc, NULL)));
|
||||||
gst_structure_new ("GstMessageBuffering",
|
|
||||||
"buffer-percent", G_TYPE_INT, perc, NULL)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME, unverified after edit list updates */
|
/* FIXME, unverified after edit list updates */
|
||||||
|
@ -1801,7 +1799,7 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf)
|
||||||
demux->offset += demux->neededbytes;
|
demux->offset += demux->neededbytes;
|
||||||
demux->neededbytes = 16;
|
demux->neededbytes = 16;
|
||||||
demux->state = QTDEMUX_STATE_INITIAL;
|
demux->state = QTDEMUX_STATE_INITIAL;
|
||||||
gst_qtdemux_post_buffering (demux, 1, 1);
|
gst_qtdemux_post_progress (demux, 1, 1);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1895,7 +1893,7 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf)
|
||||||
/* when buffering movie data, at least show user something is happening */
|
/* when buffering movie data, at least show user something is happening */
|
||||||
if (ret == GST_FLOW_OK && demux->state == QTDEMUX_STATE_BUFFER_MDAT &&
|
if (ret == GST_FLOW_OK && demux->state == QTDEMUX_STATE_BUFFER_MDAT &&
|
||||||
gst_adapter_available (demux->adapter) <= demux->neededbytes) {
|
gst_adapter_available (demux->adapter) <= demux->neededbytes) {
|
||||||
gst_qtdemux_post_buffering (demux, gst_adapter_available (demux->adapter),
|
gst_qtdemux_post_progress (demux, gst_adapter_available (demux->adapter),
|
||||||
demux->neededbytes);
|
demux->neededbytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue