<div>&nbsp;</div><div>&nbsp;Hi all,<br><br>Here I have some questions for gstreamer audiosink:<br><br>I'm using the osssink on my arm board, and no sound came out<br>command:gst-launch -v audiotestsrc ! audioconvert ! audioresample ! osssink<br><br>I checked the source code and the debug info, then find the ringbuffer writer is some slower than the reader. <br>see the debug info:<br>......<br>0:00:08.656034000  1491 0x3e030 DEBUG        baseaudiosink gstbaseaudiosink.c:848:gst_base_audio_sink_render:&lt;osssink0&gt; align with prev sample, 25 &lt; 24000<br>0:00:08.656789000  1491 0x3e030 DEBUG        baseaudiosink gstbaseaudiosink.c:880:gst_base_audio_sink_render:&lt;osssink0&gt; rendering at 78822 1024/1024<br>0:00:08.657666000  1491 0x3e030 DEBUG           ringbuffer gstringbuffer.c:1362:gst_ring_buffer_commit_full: pointer at 19, write to 4-26572, diff -15, segtotal 3, segsize 32768<br>0:00:08.658613000  1491 0x3e030 DEBUG           ringbuffer gstringbuffer.c:1394:gst_ring_buffer_commit_full:&lt;audiosinkringbuffer0&gt; write @0x4069e008 seg 1, sps 16384, off 26572, avail 2048<br>0:00:08.659525000  1491 0x3e030 DEBUG           ringbuffer gstringbuffer.c:1398:gst_ring_buffer_commit_full: copy 2048 bytes<br>0:00:08.660592000  1491 0x3e030 DEBUG        baseaudiosink gstbaseaudiosink.c:895:gst_base_audio_sink_render:&lt;osssink0&gt; wrote 1024 of 1024<br>0:00:08.661479000  1491 0x3e030 DEBUG        baseaudiosink gstbaseaudiosink.c:911:gst_base_audio_sink_render:&lt;osssink0&gt; next sample expected at 79846<br>0:00:08.738888000  1491 0x3e030 DEBUG        baseaudiosink gstbaseaudiosink.c:669:gst_base_audio_sink_render:&lt;osssink0&gt; time 0:00:01.664000000, offset 79872, start 0:00:00.000000000, samples 1024<br>0:00:08.740013000  1491 0x3e030 DEBUG        baseaudiosink gstbaseaudiosink.c:738:gst_base_audio_sink_render:&lt;osssink0&gt; running: start 0:00:01.664000000 - stop 0:00:01.685333333<br>0:00:08.741028000  1491 0x3e030 DEBUG        baseaudiosink gstbaseaudiosink.c:743:gst_base_audio_sink_render:&lt;osssink0&gt; base_time 0:00:00.000000000<br>0:00:08.741940000  1491 0x3e030 DEBUG        baseaudiosink gstbaseaudiosink.c:752:gst_base_audio_sink_render:&lt;osssink0&gt; compensating for latency 0:00:00.000000000<br>...... <br>since the diff &lt; 0,so the data copying is skipped;<br><br>I change this behavior to copying the data anyway:<br>   /* segment too far ahead, writer too slow, we need to drop, hopefully UNLIKELY */<br>      if (G_UNLIKELY (diff &lt; 0)) {<br>        /* we need to drop one segment at a time, pretend we wrote a<br>         * segment. */<br>       // skip = TRUE;<br>       skip = FALSE; //test<br>        break;<br>      }<br><br>Now the sound comes out,but it's not continous.<br><br>So I wonder the reason, is my hardware or the ringbuffer thread read the data faster than my ringbuffer writer ? is this gst_ring_buffer_prepare_read() keep running without waiting the buffer writer to input some datas ?<br><br>As I also saw the design-audiosinks.txt, it says:<br>  A write operation to the ringbuffer will put new samples in the ringbuffer.<br>  If there is not enough space in the ringbuffer, the write operation will <br>  block.  The playback of the buffer never stops, even if the buffer is <br>  empty. When the buffer is empty, silence is played by the device.<br><br><br>Now how can I solve this problem ? To make the playback wait for the data writer ? Or to make the data write fast enough ? BTW, the Gstreamer is taking up almost 99% CPU of my arm board.<br><br>Hope you can help me to answer these questions.<br><br><br>Many Thanks,<br>Joyious</div><div>&nbsp;</div><div>&nbsp;</div><br><!-- footer --><br> 
<hr>
<font style="font-size:12px;line-height:15px;">ɱ70ÍòÖÖľÂí²¡¶¾£¬</font><a style="font-size:12px;line-height:15px; color:blue; text-decoration:underline;" href="http://pro.163.com/event.ng/Type=click&FlightID=96648&AdID=98138&TargetID=635&Values=31,43,51,60,72,82,91,100,110,312,330,332,499,587,702,733,734&Redirect=http://adcn.doubleclick.net/clk;134682177;20226578;k%3Fhttp://www.rising.com.cn/2008/trial/index.htm">ÈðÐÇ2008°æÃâ·Ñ</a>