<div dir="ltr"><div><div><div>Hi all,<br><br></div></div>I was trying to play radio stream with gstreamer and I am a bit confused with something.<br><div>
<br></div><div>The uri of the radio stream is <a href="http://201.212.5.144/audio959-rockandpop?MSWMExt.asf" target="_blank">201.212.5.144/audio959-rockandpop?MSWMExt.asf</a> and it is using MMS protocol.<br></div><div><br>
</div><div>My first attempt was playing with this pipeline:  ( IT WORKS GREAT )<br>
<br>      GST_DEBUG=2 gst-launch uridecodebin uri=mmsh://<a href="http://201.212.5.144/audio959-rockandpop?MSWMExt.asf" target="_blank">201.212.5.144/audio959-rockandpop?MSWMExt.asf</a> ! decodebin2 ! autoaudiosink <br></div>
<br><br></div>And for record I use: <br><div>      GST_DEBUG=2 gst-launch uridecodebin uri=mmsh://<a href="http://201.212.5.144/audio959-rockandpop?MSWMExt.asf" target="_blank">201.212.5.144/audio959-rockandpop?MSWMExt.asf</a> ! decodebin2 ! filesink location=/tmp/test.audio<br>
<br></div><div>This works too, but when it is recording the log shows that buffer is being <span id="result_box" class="" lang="en"><span class="">emptying</span></span> and then they filled up again, it doesn't matter at the end because the audio file it is successfully created.<br>
<br>The problem is that when I want to re-send the audio to my other application That doesn't work.<br><br></div><div>So I decide to use the mmssrc element. And I tested again recording to a file with this pipeline:<br>
</div><div>     GST_DEBUG=2 gst-launch mmssrc location=mmsh://<a href="http://201.212.5.144/audio959-rockandpop?MSWMExt.asf" target="_blank">201.212.5.144/audio959-rockandpop?MSWMExt.asf</a> ! decodebin2 ! filesink location=/tmp/test.audio<br>
<br></div><div>And It works! Then I re-send to my other application and it works without any problems.<br><br></div><div>I have realise that the mmssrc doesn't show in the logs that it is filling and emptying the buffer as the uridecodebin shows.<br>
<br>* <b>And I would like to know if someone knows why the make different things with the buffers or witch is better than the other?</b><br></div><div><br><br>Here are the two pipelines with its logs that I told you:<br><br>
with URIDECODEBIN:<br><br>GST_DEBUG=2 gst-launch uridecodebin uri=mmsh://<a href="http://201.212.5.144/audio959-rockandpop?MSWMExt.asf" target="_blank">201.212.5.144/audio959-rockandpop?MSWMExt.asf</a> ! decodebin2 ! filesink location=/tmp/test.audio<br>

Setting pipeline to PAUSED ...<br>Pipeline is PREROLLING ...<br>0:00:00.094089755  3740       0xfb7630 WARN                asfdemux gstasfdemux.c:2068:gst_asf_<div>demux_get_stream: Segment found for undefined stream: (1)<br>
0:00:00.094172722  3740       0xfb7630 WARN                asfdemux gstasfdemux.c:3090:gst_asf_demux_process_bitrate_props_object:<asfdemux0> Stream id 1 wasn't found<br>
0:00:02.383135605  3740 0x7f711c006850 WARN                  ffmpeg gstffmpegcodecmap.c:140:gst_ff_channel_layout_to_gst: Unknown channels in channel layout - assuming NONE layout<br>Prerolled, waiting for buffering to finish...<br>

Pipeline is PREROLLED ...<br>Setting pipeline to PLAYING ...<br>0:00:04.706824114  3740       0xfdf840 WARN                     bin gstbin.c:2395:gst_bin_do_latency_func:<pipeline0> did not really configure latency of 0:00:00.000000000<br>

New clock: GstSystemClock<br></div><div><br><<<<---------------HERE SHOWS THAT IT IS FILLING THE BUFFER!!!!<br></div><div><br>Buffering, setting pipeline to PAUSED ...<br>Prerolled, waiting for buffering to finish...<br>
Done buffering, setting pipeline to PLAYING ...<br>0:00:08.134797738  3740       0xfdf840 WARN                     bin gstbin.c:2395:gst_bin_do_latency_func:<pipeline0> did not really configure latency of 0:00:00.000000000<br>

Buffering, setting pipeline to PAUSED ...<br>Prerolled, waiting for buffering to finish...<br>Done buffering, setting pipeline to PLAYING ...<br>0:00:11.559758663  3740       0xfdf840 WARN                     bin gstbin.c:2395:gst_bin_do_latency_func:<pipeline0> did not really configure latency of 0:00:00.000000000<br>

Buffering, setting pipeline to PAUSED ...<br>Prerolled, waiting for buffering to finish...<br><br><br></div><div>with MMSSRC:<br></div><div><br clear="all">ariel@omega:~ $ GST_DEBUG=2 gst-launch mmssrc location=mmsh://<a href="http://201.212.5.144/audio959-rockandpop?MSWMExt.asf" target="_blank">201.212.5.144/audio959-rockandpop?MSWMExt.asf</a> ! decodebin2 ! filesink location=/tmp/test.audio<br>

Setting pipeline to PAUSED ...<br>Pipeline is PREROLLING ...<br>0:00:00.092874217  3660      0x1424770 WARN                asfdemux gstasfdemux.c:2068:gst_asf_demux_get_stream: Segment found for undefined stream: (1)<br>
0:00:00.093138966  3660      0x1424770 WARN                asfdemux gstasfdemux.c:3090:gst_asf_demux_process_bitrate_props_object:<asfdemux0> Stream id 1 wasn't found<br>
0:00:02.374889918  3660      0x1608590 WARN                  ffmpeg gstffmpegcodecmap.c:140:gst_ff_channel_layout_to_gst: Unknown channels in channel layout - assuming NONE layout<br>Pipeline is PREROLLED ...<br>Setting pipeline to PLAYING ...<br>

0:00:02.375598055  3660      0x160b270 WARN                     bin gstbin.c:2395:gst_bin_do_latency_func:<pipeline0> did not really configure latency of 0:00:00.000000000<br>New clock: GstSystemClock</div><br clear="all">
<br></div><div>sorry for my english,<br><br></div><div><br>-- <br>Ariel Argañaraz<br><br><br>
</div></div>