GNOME Bugzilla – Bug 703880
GStreamer issue playing OPUS audio with playbin2 pipeline Linux
Last modified: 2015-02-24 12:14:53 UTC
Hello, We have a client SW that receive from a server OPUS packets that client should play. The client is designed in Linux and use GStreamer playbin2 pipeline for this: pipeline = gst_parse_launch ("playbin2 uri=appsrc:// ", NULL); where the appsrc we fill with opus packets into a callback function that is called anytime player need data to play g_signal_connect (pipeline, "source-setup", G_CALLBACK (need_data_cb), NULL); static void need_data_cb(GstElement *appsrc, guint unused_size, gpointer user_data) { GstBuffer *buffer = gst_buffer_new_and_alloc(NETPKT_DATASIZE); GstFlowReturn ret; //the OPUS packets that come from server are stored into a fifo buffer from where we extract it and add in buffer av_fifo_generic_read(netpkt_stream, buffer, NETPKT_TTLSIZE, av_fifo_cb); //give to player the OPUS pack to play g_signal_emit_by_name(appsrc, "push-buffer", buffer, &ret); gst_buffer_unref (buffer); id2play++; if(ret != GST_FLOW_OK) { g_main_loop_quit(loop); } } The problem is that after exact 64 second the Sound stop(after playing certain number of OPUS packets). Each opus packets have a duration of 177ms and is coded as OPUS bitrate 48000. If we update the OPUS packet size the crash occur proportional with this. In Log I get this when it stop playing: (client:17452):GStreamer-WARNING **: failed to create thread: Error creating thread: Resource temporarily unavailable (client:17452): GStreamer-WARNING **: adding flushing pad 'src0' to running element 'multiqueue3612', you need to use gst_pad_set_active(pad,TRUE) before adding it. I observed also the memmory used it increase by every packet played. Can you help me with some hints what can I do or which is the cause of this behaviour? The client code is designed like here http://docs.gstreamer.com/display/GstSDK/Playback+tutorial+3%3A+Short-cutting+the+pipeline[^] If more info are needed I'll be glad to offer. Tanks in advance Robi
If I use same Client code but send AAC packets instead all is going fine and correct.
Hi. You've filed this bug report in the wrong product (gstreamermm instead of GStreamer). I'm not sure this is a bug or a question (which might be better asked on the gstreamer-devel mailing list) but I''m reassigning this bug where it would be better filed in the first place.
GStreamer 0.10 is no longer maintained I'm afraid. Could you re-test with 1.x ? Also, could you make a small test program available perhaps?
Closing this bug report as no further information has been provided. Please feel free to reopen this bug report if you can provide the information that was asked for in a previous comment. Thanks!