[Gstreamer-bugs] [Bug 119718] New - Sending RTP stream from JMF crashes GStreamer
bugzilla-daemon at widget.gnome.org
bugzilla-daemon at widget.gnome.org
Tue Aug 12 08:11:10 PDT 2003
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=119718
Changed by ahacopian at atinc.com.
--- shadow/119718 Tue Aug 12 11:11:10 2003
+++ shadow/119718.tmp.11676 Tue Aug 12 11:11:10 2003
@@ -0,0 +1,169 @@
+Bug#: 119718
+Product: GStreamer
+Version: HEAD CVS
+OS: Linux
+OS Details: Redhat 9.0 Linux 2.4.20-19.9
+Status: NEW
+Resolution:
+Severity: critical
+Priority: Normal
+Component: gst-plugins
+AssignedTo: gstreamer-maint at bugzilla.gnome.org
+ReportedBy: ahacopian at atinc.com
+QAContact: gstreamer-maint at bugzilla.gnome.org
+TargetMilestone: HEAD
+URL:
+Summary: Sending RTP stream from JMF crashes GStreamer
+
+$ gst-launch udpsrc port=2002 ! rtpgsmparse ! gsmdec ! osssink
+RUNNING pipeline
+Entity: line 1: error: Start tag expected, '<' not found
+??
+^
+Caught SIGSEGV accessing address 0xc
+#0 0xffffe002 in ?? ()
+#1 0x080497ae in fault_spin () at gst-launch.c:180
+#2 <signal handler called>
+#3 0x401af11f in gst_udpsrc_get (pad=0x0) at gstudpsrc.c:231
+#4 0x403c3de8 in get_group_schedule_function (argc=0, argv=0x809c188)
+#5 0x403c39ba in schedule_group (group=0x809c188) at gstoptimalscheduler.c:836
+#6 0x403c3a70 in gst_opt_scheduler_schedule_run_queue (osched=0x809c030)
+#7 0x403c3c3e in schedule_chain (chain=0x809c1e8) at gstoptimalscheduler.c:916
+#8 0x403c5e7d in gst_opt_scheduler_iterate (sched=0x809c030)
+#9 0x40050c8e in gst_scheduler_iterate (sched=0x809c030) at gstscheduler.c:729
+#10 0x4002e721 in gst_bin_iterate_func (bin=0x809b630) at gstbin.c:984
+#11 0x4002e8f6 in gst_bin_iterate (bin=0x809b630) at gstbin.c:1029
+#12 0x08049414 in idle_func (data=0x809b630) at gst-launch.c:44
+#13 0x40341743 in g_timeout_add () from /usr/lib/libglib-2.0.so.0
+#14 0x4033eb35 in g_get_current_time () from /usr/lib/libglib-2.0.so.0
+#15 0x4033fb78 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
+#16 0x4033fe8d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
+#17 0x4034058f in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
+#18 0x40029107 in gst_main () at gst.c:744
+#19 0x08049d59 in main (argc=9, argv=0xbfffe0c4) at gst-launch.c:381
+#20 0x420156a4 in __libc_start_main () from /lib/tls/libc.so.6
+Spinning. Please run 'gdb gst-launch 3599' to continue debugging, Ctrl-C
+to quit, or Ctrl-\ to dump core.
+
+
+Java code used:
+import java.io.*;
+import java.util.Vector;
+
+
+import javax.media.*;
+import javax.media.format.*;
+import javax.media.protocol.*;
+import javax.media.control.*;
+
+
+public class RTPServer implements ControllerListener {
+ private boolean realized = false;
+ private boolean configured = false;
+
+
+ public static void main(String [] args) {
+ new RTPServer();
+ }
+
+
+
+ public RTPServer() {
+ Processor p;
+
+
+ String srcFile = "/home/ahacop/junk.wav";
+ // String destUrl = "rtp://224.144.251.104:49150/audio/1";
+ String destUrl = "rtp://192.168.0.9:2002/audio/1";
+ DataSink rtpSink;
+ MediaLocator src = new MediaLocator("file:" + srcFile);
+ MediaLocator dest = new MediaLocator(destUrl);
+ // MediaLocator dest = new MediaLocator("rtpraw://");
+
+
+ try {
+ p = Manager.createProcessor(src);
+ p.addControllerListener(this);
+
+
+ p.configure();
+ while (! configured) {
+ try {
+ Thread.currentThread().sleep(100L);;
+ } catch (InterruptedException e) {
+ // ignore
+ }
+ }
+
+
+ TrackControl track[] = p.getTrackControls();
+
+
+ boolean encodingOk = false;
+ p.setContentDescriptor(new
+ContentDescriptor(FileTypeDescriptor.RAW_RTP));
+for (int i = 0; i < track.length; i++) {
+ if (!encodingOk && track[i] instanceof FormatControl) {
+
+
+ if (((FormatControl)track[i]).
+ setFormat( new AudioFormat(AudioFormat.GSM_RTP,
+ 8000,
+ 8,
+ 1)) == null) {
+
+
+ track[i].setEnabled(false);
+ }
+ else {
+ encodingOk = true;
+ }
+ } else {
+ // we could not set this track to gsm, so disable it
+ track[i].setEnabled(false);
+ }
+ }
+
+
+
+
+ p.realize();
+ while (! realized) {
+ try {
+ Thread.currentThread().sleep(100L);;
+ } catch (InterruptedException e) {
+ // ignore
+ }
+ }
+
+
+ DataSource output = p.getDataOutput();
+ rtpSink = Manager.createDataSink(output, dest);
+ System.out.println("Sink content type: " +
+rtpSink.getContentType());
+ System.out.println("Sink media type: " +
+rtpSink.getOutputLocator().toString());
+ rtpSink.open();
+ rtpSink.start();
+ p.start();
+
+
+ } catch(Exception e) {
+ e.printStackTrace();
+ System.exit(1);
+ }
+ }
+
+
+ public synchronized void controllerUpdate(ControllerEvent evt) {
+ if (evt instanceof RealizeCompleteEvent) {
+ realized = true;
+ } else if (evt instanceof ConfigureCompleteEvent) {
+ configured = true;
+ } else if (evt instanceof EndOfMediaEvent) {
+ System.exit(0);
+ } else {
+ // System.out.println(evt.toString());
+ }
+ }
+}
More information about the Gstreamer-bugs
mailing list