MMSH stream fails to pre-roll

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

MMSH stream fails to pre-roll

Jonathan Miles-2
I'm having trouble getting the following internet radio stream to play using GStreamer 1.10:

gst-launch-1.0 playbin uri="mmsh://radio.yerevannights.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 list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: MMSH stream fails to pre-roll

Carlos Rafael Giani

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="<a class="moz-txt-link-freetext" href="mmsh://">mmsh://radio.yerevannights.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 list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: MMSH stream fails to pre-roll

Jonathan Miles-2
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 <[hidden email]> 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:


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 list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: MMSH stream fails to pre-roll

Carlos Rafael Giani

This appears to be an asfdemux problem. This pipeline shows that there is no output from asfdemux:

gst-launch-1.0 -v mmssrc location=<a class="moz-txt-link-rfc2396E" href="mmsh://radio.yerevannights.com/YerevanNights?MSWMExt=.asf">"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="<a class="moz-txt-link-freetext" href="mmsh://">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 <[hidden email]> 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:


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 list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: MMSH stream fails to pre-roll

Jonathan Miles-2
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 <[hidden email]> 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):

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 <[hidden email]> 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:


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 list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel