Click here to Skip to main content
15,881,860 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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:
C++
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.
C++
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 bit rate 48000.

In Log I get this when it stop playing:
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 memory 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 behavior?

The client code is designed like here
http://docs.gstreamer.com/display/GstSDK/Playback+tutorial+3%3A+Short-cutting+the+pipeline[^]

Thanks in advance
Robi
Posted
Updated 9-Jul-13 5:00am
v3

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900