Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C++ Linux audio
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 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 9-Jul-13 5:33am
adiadi437
Edited 9-Jul-13 6:00am
(no name)84.8K
v3

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

  Print Answers RSS
0 OriginalGriff 6,569
1 Sergey Alexandrovich Kryukov 6,168
2 DamithSL 5,228
3 Manas Bhardwaj 4,717
4 Maciej Los 4,150


Advertise | Privacy | Mobile
Web04 | 2.8.1411022.1 | Last Updated 9 Jul 2013
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100