From 7238064f5c62b8e4ad78c37c5b36a53d81395f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 18 Dec 2006 17:11:49 +0000 Subject: 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). --- gst/qtdemux/qtdemux.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'gst') diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index 845e6bb2..2b62f481 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -1678,15 +1678,13 @@ next_entry_size (GstQTDemux * demux) } 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); gst_element_post_message (GST_ELEMENT_CAST (demux), - gst_message_new_custom (GST_MESSAGE_BUFFERING, - GST_OBJECT_CAST (demux), - gst_structure_new ("GstMessageBuffering", - "buffer-percent", G_TYPE_INT, perc, NULL))); + gst_message_new_element (GST_OBJECT_CAST (demux), + gst_structure_new ("progress", "percent", G_TYPE_INT, perc, NULL))); } /* FIXME, unverified after edit list updates */ @@ -1801,7 +1799,7 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) demux->offset += demux->neededbytes; demux->neededbytes = 16; demux->state = QTDEMUX_STATE_INITIAL; - gst_qtdemux_post_buffering (demux, 1, 1); + gst_qtdemux_post_progress (demux, 1, 1); break; } @@ -1895,7 +1893,7 @@ gst_qtdemux_chain (GstPad * sinkpad, GstBuffer * inbuf) /* when buffering movie data, at least show user something is happening */ if (ret == GST_FLOW_OK && demux->state == QTDEMUX_STATE_BUFFER_MDAT && 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); } -- cgit v1.2.1