MMSH stream fails to pre-roll

Jonathan Miles ap.jonathan.miles at gmail.com
Tue Nov 8 10:00:06 UTC 2016


Thanks for the pointers, Carlos.

It looks like the problem is that there are five streams, only one of which
contains any data, this means that gst_asf_demux_check_first_ts() never
returns true, so none of the streams ever get activated. Even if I change
the function to ignore the streams with no data, it still doesn't get past
all_streams_prerolled().

When playing the mmssrc output from file, I think you get an EOS, which
forces the data through, ignoring the checks
(see gst_asf_demux_check_activate_streams()).

As the empty streams have a bitrate of 0, I'm guessing that the sensible
thing to do would be to ignore these streams, but first I'll dig out the
asf spec and see if I can gain any more enlightenment.

On Mon, Nov 7, 2016 at 2:11 PM, Carlos Rafael Giani <dv at pseudoterminal.org>
wrote:

> This appears to be an asfdemux problem. This pipeline shows that there is
> no output from asfdemux:
>
> gst-launch-1.0 -v mmssrc location="mmsh://radio.yerevannights.com/
> YerevanNights?MSWMExt=.asf" ! identity silent=false name=pre-asf !
> asfdemux ! identity silent=false name=post-asf ! avdec_wmav2 ! audioconvert
> ! audioresample ! autoaudiosink
>
> Interestingly, if I write the mmssrc output to a file, and then try to
> play that, it works.
>
> On 2016-11-07 14:58, Jonathan Miles wrote:
>
> I can't see any redirect message (assuming below is the correct way of
> looking for it):
>
> $ gst-launch-1.0 -m playbin uri="mmsh://radio.yerevannights.com/
> YerevanNights?MSWMExt=.asf"
> Setting pipeline to PAUSED ...
> Pipeline is PREROLLING ...
> Got message #0 from element "streamsynchronizer0" (state-changed):
> GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL,
> new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_
> STATE_VOID_PENDING;
> Got message #1 from element "playsink" (state-changed):
> GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL,
> new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_
> STATE_VOID_PENDING;
> Got message #2 from element "playbin0" (state-changed):
> GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL,
> new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_
> STATE_PAUSED;
> Got message #6 from element "streamsynchronizer0" (state-changed):
> GstMessageStateChanged, old-state=(GstState)GST_STATE_READY,
> new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_
> STATE_VOID_PENDING;
> Got message #7 from element "uridecodebin0" (state-changed):
> GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL,
> new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_
> STATE_PAUSED;
> Got message #14 from element "typefind" (state-changed):
> GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL,
> new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_
> STATE_VOID_PENDING;
> Got message #15 from element "decodebin0" (state-changed):
> GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL,
> new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_
> STATE_PAUSED;
> Got message #19 from element "typefind" (state-changed):
> GstMessageStateChanged, old-state=(GstState)GST_STATE_READY,
> new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_
> STATE_VOID_PENDING;
> Got message #20 from element "source" (state-changed):
> GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL,
> new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_
> STATE_PAUSED;
> Got message #23 from pad "source:src" (stream-status):
> GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_CREATE,
> owner=(GstElement)"\(GstMMS\)\ source", object=(GstTask)"\(GstTask\)\
> source:src";
> Got message #24 from element "source" (state-changed):
> GstMessageStateChanged, old-state=(GstState)GST_STATE_READY,
> new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_
> STATE_VOID_PENDING;
> Got message #25 from pad "source:src" (stream-status):
> GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_ENTER,
> owner=(GstElement)"\(GstMMS\)\ source", object=(GstTask)"\(GstTask\)\
> source:src";
> Got message #42 from element "asfdemux0" (state-changed):
> GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL,
> new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_
> STATE_VOID_PENDING;
> Got message #43 from element "asfdemux0" (state-changed):
> GstMessageStateChanged, old-state=(GstState)GST_STATE_READY,
> new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_
> STATE_VOID_PENDING;
>
>
> I also see the same problem on GStreamer 1.8.2.
>
> On Mon, Nov 7, 2016 at 12:26 PM, Carlos Rafael Giani <
> dv at pseudoterminal.org> wrote:
>
>> Perhaps a redirection is occuring. Check for ELEMENT messages in the bus
>> with a "redirect" structure. Starting with 1.10, there is a dedicated
>> REDIRECT message, but it is not being used by mmssrc yet.
>>
>> On 2016-11-07 13:11, Jonathan Miles wrote:
>>
>> I'm having trouble getting the following internet radio stream to play
>> using GStreamer 1.10:
>>
>> gst-launch-1.0 playbin uri="mmsh://radio.yerevannight
>> s.com/YerevanNights?MSWMExt=.asf"
>>
>> This gets to PREROLLING, but never any further.
>>
>> With GST_DEBUG="asfdemux:6" I can see that packets are being received:
>> http://pastebin.ca/3737122
>>
>> The stream plays happily enough in vlc or mplayer.
>>
>> Are there any asf/mms experts out there that can help?
>>
>> Thanks,
>>
>> Jonathan
>>
>>
>> _______________________________________________
>> gstreamer-devel mailing listgstreamer-devel at lists.freedesktop.orghttps://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>> _______________________________________________ gstreamer-devel mailing
>> list gstreamer-devel at lists.freedesktop.org https://lists.freedesktop.org/
>> mailman/listinfo/gstreamer-devel
>
> _______________________________________________
> gstreamer-devel mailing listgstreamer-devel at lists.freedesktop.orghttps://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20161108/a59b8b83/attachment-0001.html>


More information about the gstreamer-devel mailing list