[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