[gstreamer-bugs] [Bug 340697] New: gstsystemclock hangs when outputting to stdout via fdsink
GStreamer (bugzilla.gnome.org)
bugzilla-daemon at bugzilla.gnome.org
Thu May 4 19:52:11 PDT 2006
Do not reply to this via email (we are currently unable to handle email
responses and they get discarded). You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=340697
GStreamer | gstreamer (core) | Ver: 0.10.5
Summary: gstsystemclock hangs when outputting to stdout via
fdsink
Product: GStreamer
Version: 0.10.5
Platform: Other
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gstreamer (core)
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: dilinger at debian.org
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME version: Unspecified
GNOME milestone: Unspecified
Hi,
Running the following pipeline causes a hang after the decode finishes:
gst-launch-0.10 filesrc location=down.mp3 ! mad ! audioconvert ! vorbisenc !
oggmux ! fdsink > x
That writes to stdout, but when it finishes decoding, instead of exiting, it
will simply hang (I think for the length of the song, but possibly infinitely).
I reported this in #gstreamer; here's the relevant bits:
17:30 < dilinger> gst-launch-0.10 filesrc location=01-down.flac ! flacdec !
audioconvert ! vorbisenc ! oggmux ! fdsink >/dev/null
17:30 < dilinger> that basically decodes the entire file (when using filesink
location=x vs. fdsink > x, both files end up the same size)
17:31 < dilinger> however, it hangs at the end; afaict, there's no EOS getting
sent
17:31 < dilinger> it's not hanging anywhere inside fdsink; i added a bunch of
fprintfs to the code
17:31 < dilinger> w/ debug level set to 5, this is the last line
17:32 < dilinger> EBUG (0x80792a0 - 0:00:14.427177000) GST_CLOCK(
6668)
gstsystemclock.c(383):gst_system_clock_id_wait_unlocked:
entry 0x8183dc0 target 318549:29:21.811932332 entry
318549:29:21.811930332 now 318549:26:42.760279000 real
318549:26:42.760279000 diff 159051651332
17:32 < dilinger> at some point, gstpad sees the EOS:
17:32 < dilinger> DEBUG (0x80792a0 - 0:00:14.427032000) GST_EVENT(
6668) gstpad.c(3784):gst_pad_send_event: have event type eos
on pad fdsink:sink
17:33 < dilinger> after that, the Gst*Clock seems to just hang
17:37 < dilinger> if i had to guess, i would say that
gst_system_clock_id_wait_unlocked is hanging
17:41 < dilinger> hm, yep
17:41 < dilinger> DEBUG (0x80792a0 - 0:00:13.803882000) GST_CLOCK(
6849)
gstsystemclock.c(389):gst_system_clock_id_wait_unlocked:
entering loop
17:41 < dilinger> ok, so it gets stuck in there, infinitely looping
17:43 < dilinger> hm, so diff is in nanoseconds..
17:45 < dilinger> so for some reason, this is attempting to wait 159 seconds?
17:45 < dilinger> now 318549:40:25.047062000 => target 318549:43:04.717443332
17:51 < moch_> dilinger: does setting sync=false on the fdsink help?
17:53 < dilinger> moch_: hm, yes; setting sync=false causes it to exit
17:53 < dilinger> moch_: exit properly, i mean
17:55 < moch_> dilinger: I guess that means something is generating a broken
timestamp, but I wouldn't really know where to look for that.
18:01 < mathrick> dilinger: I tried with mp3 file and mad, and it works with no
hitch
18:02 < dilinger> mathrick: strange
18:02 < mathrick> GStreamer Core Library version 0.10.4
18:02 < dilinger> ii libgstreamer0. 0.10.5-0bpo1 Core GStreamer libraries
18:12 < moch_> it does the same here
18:15 < dilinger> moch_: good, so it's not just me
18:15 < dilinger> moch_: it looks like it's hanging for the length of the song
18:16 < mathrick> moch_: what version do you have?
18:17 < moch_> mathrick: currentish cvs
18:17 < moch_> I don't think this is actually a bug, I think it's what
sync=true is meant to do.
18:17 < mathrick> then it might have been introduced after 10.4
18:17 < moch_> although maybe it should have been waiting for the system clock
to catch up all the way through.. I don't know.
18:18 < mathrick> yeah
--
Configure bugmail: http://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