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 703880 - GStreamer issue playing OPUS audio with playbin2 pipeline Linux
GStreamer issue playing OPUS audio with playbin2 pipeline Linux
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
0.10.x
Other Linux
: Normal major
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-07-09 15:29 UTC by Adrian Doncut
Modified: 2015-02-24 12:14 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Adrian Doncut 2013-07-09 15:29:23 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
Comment 1 Adrian Doncut 2013-07-10 08:16:50 UTC
If I use same Client code but send AAC packets instead all is going fine and correct.
Comment 2 José Alburquerque 2013-07-10 17:27:30 UTC
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.
Comment 3 Tim-Philipp Müller 2013-07-10 17:48:37 UTC
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?
Comment 4 Tim-Philipp Müller 2015-02-24 12:14:53 UTC
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!