Hi,<div><br></div><div>For some reason, I need handle the stream from a non-gst demux. I use the GStreamer as follows:</div><div><br></div><div> | ---> queue2 [videoQ] ---> h264dec ---> overlay2sink</div>
<div>non-gst demux ---> | <br clear="all"> | ---> queue2 [audioQ] ---> aacdec ---> alsasink</div><div><br></div><div><br></div><div>I put the audio into the sinkpad and video into the sinkpad of queue2. Just like the code as follows:</div>
<div><br></div><div>non-gst-demux.onVideo(guint timestamp, guint8 *data, guint size)</div><div>{</div><div> // The x-h264 NAL data</div><div><br></div><div> gst_playback->inputVideo(timestamp, data, size);</div>
<div>}</div><div><br></div><div><div>non-gst-demux.onAudio(guint timestamp, guint8 *data, guint size)</div><div>{</div><div> gst_playback->inputAudio(timestamp, data, size);</div><div>}</div><div><br></div><div><br>
</div><div><div>GstPad *audioP = gst_element_get_static_pad(audioQ, "sink");</div><div>GstPad *videoP = gst_element_get_static_pad(videoQ, "sink");</div><div><br></div></div><div>......inputVideo(guint timestamp, guint8 *data, guint size)</div>
<div>{</div><div> GstBuffer *buffer = gst_buffer_new_and_alloc(size);</div><div><br></div><div><div> memcpy(GST_BUFFER_DATA(buffer), data, size);</div><div> GST_BUFFER_SIZE(buffer) = size;</div><div> GST_BUFFER_TIMESTAMP(buffer) = timeStamp;</div>
<div><br></div><div> gst_pad_chain(m_videoP, buffer);</div></div><div>}</div><div><br></div><div>...... </div></div><div><br></div><div>It seems that it only can play the first frame. I got the info that the queue buffer was full frequently. Does somebody can help me out of the trouble? And any advices are warmly welcome!</div>
<div><br></div><div><br></div><div><br></div><div><br></div><div><br>-- <br> H.Y<br>
</div>