[Bug 655790] Hang when playing MPEG TS from disk with buffering
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Thu Aug 11 05:19:58 PDT 2011
https://bugzilla.gnome.org/show_bug.cgi?id=655790
GStreamer | gstreamer (core) | 0.10.34
--- Comment #4 from Tvrtko Ursulin <tvrtko.ursulin at onelan.co.uk> 2011-08-11 12:19:55 UTC ---
My possibly silly and misguided attempt to remove streamsynchronizer out of the
picture did not really work.
I assumed multiqueue could do the job but with default it would not play, and
when I set queueing properties to zero then it plays full speed (decode+render
speed) for a while and then it magically locks into sync. It does pass over the
spot where it hangs with streamsynchronizer, but I kind of suspect that might
not mean anything considering above described behaviour.
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index b36ab1b..7afb640 100644
--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -138,7 +138,7 @@ struct _GstPlaySink
GstPlayFlags flags;
- GstStreamSynchronizer *stream_synchronizer;
+ GstElement *stream_synchronizer;
/* chains */
GstPlayAudioChain *audiochain;
@@ -461,7 +461,10 @@ gst_play_sink_init (GstPlaySink * playsink)
playsink->flags = DEFAULT_FLAGS;
playsink->stream_synchronizer =
- g_object_new (GST_TYPE_STREAM_SYNCHRONIZER, NULL);
+ gst_element_factory_make ("multiqueue", NULL);
+ g_object_set (playsink->stream_synchronizer, "max-size-bytes", 0, NULL);
+ g_object_set (playsink->stream_synchronizer, "max-size-buffers", 0, NULL);
+ g_object_set (playsink->stream_synchronizer, "max-size-time", 0, NULL);
gst_bin_add (GST_BIN_CAST (playsink),
GST_ELEMENT_CAST (playsink->stream_synchronizer));
@@ -2201,7 +2204,7 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
playsink->video_sinkpad_stream_synchronizer =
gst_element_get_request_pad (GST_ELEMENT_CAST
- (playsink->stream_synchronizer), "sink_%d");
+ (playsink->stream_synchronizer), "sink%d");
it = gst_pad_iterate_internal_links
(playsink->video_sinkpad_stream_synchronizer);
g_assert (it);
@@ -2357,7 +2360,7 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
playsink->audio_sinkpad_stream_synchronizer =
gst_element_get_request_pad (GST_ELEMENT_CAST
- (playsink->stream_synchronizer), "sink_%d");
+ (playsink->stream_synchronizer), "sink%d");
it = gst_pad_iterate_internal_links
(playsink->audio_sinkpad_stream_synchronizer);
g_assert (it);
@@ -2474,7 +2477,7 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
if (!playsink->text_sinkpad_stream_synchronizer) {
playsink->text_sinkpad_stream_synchronizer =
gst_element_get_request_pad (GST_ELEMENT_CAST
- (playsink->stream_synchronizer), "sink_%d");
+ (playsink->stream_synchronizer), "sink%d");
it = gst_pad_iterate_internal_links
(playsink->text_sinkpad_stream_synchronizer);
g_assert (it);
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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