[Gstreamer-bugs] [Bug 102025] Changed - [Patch] Crash on exit/stop if sound was already in use

bugzilla-daemon at widget.gnome.org bugzilla-daemon at widget.gnome.org
Fri Dec 27 10:05:29 PST 2002


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

http://bugzilla.gnome.org/show_bug.cgi?id=102025

Changed by azarah at gentoo.org.

--- shadow/102025	Fri Dec 27 12:59:35 2002
+++ shadow/102025.tmp.22711	Fri Dec 27 13:05:28 2002
@@ -4,13 +4,13 @@
 OS: other
 OS Details: 
 Status: NEW   
 Resolution: 
 Severity: normal
 Priority: Normal
-Component: gstreamer (core)
+Component: gst-plugins
 AssignedTo: gstreamer-maint at bugzilla.gnome.org                            
 ReportedBy: azarah at gentoo.org               
 QAContact: gstreamer-maint at bugzilla.gnome.org
 TargetMilestone: 0.4.0
 URL: 
 Summary: [Patch] Crash on exit/stop if sound was already in use
@@ -130,6 +130,75 @@
 
 
 ------- Additional Comments From azarah at gentoo.org  2002-12-27 12:59 -------
 Created an attachment (id=13245)
 gst-plugins-0.4.2-never-return-on-oss-busy.patch
 
+
+------- Additional Comments From azarah at gentoo.org  2002-12-27 13:05 -------
+Ok, the problem is that in linux you cannot open /dev/dsp (or
+whatever) without O_NONBLOCK if the device are in use, as it
+then never returns.  We thus need to open it O_NONBLOCK, and
+then use fcntl() to set it to blocking mode.  This is at least
+what both esound and mplayer does.
+
+Attached is two patches, one for gst-plugins-0.5.0 and one
+for gst-plugins-0.4.2, althoug the latter are just for reference
+or whatever.
+
+
+---------------------------------------------------
+# gdb /usr/bin/gst-launch
+GNU gdb 5.3
+Copyright 2002 Free Software Foundation, Inc.
+GDB is free software, covered by the GNU General Public License, and
+you are
+welcome to change it and/or distribute copies of it under certain
+conditions.
+Type "show copying" to see the conditions.
+There is absolutely no warranty for GDB.  Type "show warranty" for
+details.
+This GDB was configured as "i686-pc-linux-gnu"...
+(gdb) run filesrc
+location=/space/MP3/Nine_Days/Radiohead-Karma_Police_\(live\).mp3 !
+mad ! osssink
+Starting program: /usr/bin/gst-launch filesrc
+location=/space/MP3/Nine_Days/Radiohead-Karma_Police_\(live\).mp3 !
+mad ! osssink
+[New Thread 16384 (LWP 32035)]
+INFO (32035: 0) Initializing GStreamer Core Library version 0.5.0
+INFO (32035: 0) CPU features: (00000000) MMX SSE
+registry: loaded user_registry in 0.000111 seconds
+          (/root/.gstreamer/registry.xml)
+registry: loaded global_registry in 0.099663 seconds
+          (/var/lib/cache/gstreamer-0.5/registry.xml)
+GStreamer-INFO: 0 live buffer(s)
+GStreamer-INFO: 0 live bufferpool(s)
+GStreamer-INFO: 0 live event(s)
+RUNNING pipeline
+
+** (process:32035): WARNING **: osscommon: unable to open the sound
+device (in use ?)
+
+
+Program received signal SIGINT, Interrupt.
+[Switching to Thread 16384 (LWP 32035)]
+0x420d0d54 in open () from /lib/libc.so.6
+(gdb) bt
+#0  0x420d0d54 in open () from /lib/libc.so.6
+#1  0x400bd968 in __JCR_LIST__ () from
+/usr/lib/gstreamer-0.5/libgstossaudio.so
+#2  0x400b9c10 in gst_osscommon_open_audio (common=0x80a4acc,
+mode=GST_OSSCOMMON_WRITE, error=0xbffff3f8) at gstosscommon.c:293
+#3  0x400b5ebd in gst_osssink_change_state (element=0x80a4a48) at
+gstosssink.c:577 
+#4  0x400391ff in gst_element_set_state (element=0x80a4a48,
+state=GST_STATE_READY) at gstelement.c:1938
+#5  0x40028d8e in gst_bin_change_state (element=0x80746d8) at gstbin.c:582
+#6  0x4004abba in gst_pipeline_change_state (element=0x80746d8) at
+gstpipeline.c:168 
+#7  0x400391ff in gst_element_set_state (element=0x80746d8,
+state=GST_STATE_PLAYING) at gstelement.c:1938
+#8  0x08049d1e in main (argc=7, argv=0xbffff674) at gst-launch.c:239
+#9  0x42019a44 in __libc_start_main () from /lib/libc.so.6
+(gdb)
+





More information about the Gstreamer-bugs mailing list