Houston, we have a problem. Not enough audio data for real-time streaming.
BogdanS
bodyaf at gmail.com
Mon Sep 5 12:44:54 UTC 2016
Hello.
I used for sdk of some audiovideo card for only audio live streaming.
I have function that called when I'v got a frame from card.
Next I check if this frame is audio frame.
If yes, I build a gstBuffer, fill this buffer with data and push it to
appsrc. Everything working, but sometimes I have a little pause because
pipeline taked and sended every data, and new frame still did not arrived.
How I can fix that? I need a real-time stream, even if I still did not
received audio frame, mayby some silent audio.
Here is my primary parts of code.
* string s_desc="appsrc name= MySource ! audioparse channels=1 rate=8000 !
alawenc ! rtppcmapay ! udpsink host="+g_sIp+" port="+g_iPort;
/* Build the pipeline */
pipeline = gst_parse_launch (&s_desc[0], NULL);
/*Get pointer to MySource*/
appsrc = (GstAppSrc*)gst_bin_get_by_name(GST_BIN(pipeline), "MySource");*
This callback when I have some frame
*if (FrameType == spct_PktAudioFrames) //take only Audio
{
int iLength = dwLength - sizeof(SPCTFRAMEHEADER); //size of packet
without Card header
ret = spct_decode(&decode_context, (unsigned char
*)pDataBuf+sizeof(SPCTFRAMEHEADER), iLength, &outbuf, &outsize);// decode
packet to raw pcm
if(ret != -1 && outsize != 0) // decode one frame success save it
{
buffer=gst_buffer_new_allocate(NULL,outsize,NULL); //allocate new
gstbuffer
gst_buffer_fill(buffer,0,outbuf,outsize); //fill
fret=gst_app_src_push_buffer (appsrc,buffer); //push to appsrc
}
}*
--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Houston-we-have-a-problem-Not-enough-audio-data-for-real-time-streaming-tp4679426.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
More information about the gstreamer-devel
mailing list