After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 119718 - [rtpgsmparse] RTP stream from JMF crash
[rtpgsmparse] RTP stream from JMF crash
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins
git master
Other Linux
: Normal critical
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2003-08-12 15:11 UTC by ahacopian
Modified: 2005-10-08 06:48 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Java/JMF code used on server side (2.75 KB, text/plain)
2003-08-12 15:12 UTC, ahacopian
Details

Description ahacopian 2003-08-12 15:11:08 UTC
$ 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 ??
  • #1 fault_spin
    at gst-launch.c line 180
  • #2 <signal handler called>
  • #3 gst_udpsrc_get
    at gstudpsrc.c line 231
  • #4 get_group_schedule_function
  • #5 schedule_group
    at gstoptimalscheduler.c line 836
  • #6 gst_opt_scheduler_schedule_run_queue
  • #7 schedule_chain
    at gstoptimalscheduler.c line 916
  • #8 gst_opt_scheduler_iterate
  • #9 gst_scheduler_iterate
    at gstscheduler.c line 729
  • #10 gst_bin_iterate_func
    at gstbin.c line 984
  • #11 gst_bin_iterate
    at gstbin.c line 1029
  • #12 idle_func
    at gst-launch.c line 44
  • #13 g_timeout_add
    from /usr/lib/libglib-2.0.so.0
  • #14 g_get_current_time
    from /usr/lib/libglib-2.0.so.0
  • #15 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #16 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #17 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #18 gst_main
    at gst.c line 744
  • #19 main
    at gst-launch.c line 381
  • #20 __libc_start_main
    from /lib/tls/libc.so.6


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());
        }
    }
}
Comment 1 ahacopian 2003-08-12 15:12:52 UTC
Created attachment 19146 [details]
Java/JMF code used on server side
Comment 2 Ramon Garcia Fernandez 2003-09-18 09:15:31 UTC
Note that the current RTP support is minimal.

I am redoing RTP support completely.
Comment 3 Thomas Vander Stichele 2004-02-24 15:33:12 UTC
ahcopian,

I'm pretty sure that the error you're getting is from a different
thread doing typefinding.  Upgrading librsvg or removing the gdkpixbuf
plugin and loader should help.  can you test and confirm ?
Comment 4 Ronald Bultje 2005-02-08 14:37:06 UTC
I think this is 157543. Can you please see if this is still reproduceable?
Comment 5 Christian Fredrik Kalager Schaller 2005-02-09 09:38:58 UTC

*** This bug has been marked as a duplicate of 165170 ***
Comment 6 Luca Ognibene 2005-10-08 06:48:27 UTC
no answer for some time.. closing. Please reopen if you can replicate with 0.8
or 0.9! thanks