Moovida fails playing mms:// wmv video streams, crashes or hangs

Bug #494713 reported by Michał Sawicz
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Moovida
Fix Released
Critical
Olivier Tilloy

Bug Description

Moovida fails to play mms:// wmv video streams on Windows and is very unstable with them on Linux.

I have prepared a test plugin that demonstrates the problem and also an .egg of the Radiotime plugin with TV Channels support.

The test plugin simply tries to play these four streams, all of them avaliable in the Radiotime plugin:
('Keye FM', 'mms://stream.amaonline.com/keyefm'),
('NRJ', 'mms://vipnrj.yacast.net/nrj_webtv03'),
('Impuls', 'mms://netshow.play.cz/impulswebcam'),
('EskaTV', 'mms://streamtv.eska.pl:6000/eskatv')

Keye FM and Impuls play fine on Linux with the test plugin but fail to play using the Radiotime plugin, so I suspect there's something slightly wrong there, too, but I wasn't yet able to identify the issue. The NRJ stream plays with gst-launch and Totem (although sound only), Moovida hangs on it just as it does on the EskaTV one. On windows, however, all the streams cause Moovida to either hang completely or crash, a dump of one of which is attached, too.

On the console I can see two related messages:
- Interrupted system call
- Could not read packet header

Which suggest the issue is in gstreamer, but Moovida definitely should not fail so miserably when that happens.

As I do have some issues with gstreamer on my installation here, please try the attached plugins and comment on what are the results.

Tags: playback

Related branches

Revision history for this message
Michał Sawicz (saviq) wrote :
Revision history for this message
Michał Sawicz (saviq) wrote :
Revision history for this message
Michał Sawicz (saviq) wrote :
Revision history for this message
Olivier Tilloy (osomon) wrote :

I've done some extensive testing with the provided plugins, comparing results with gst-launch with playbin and playbin2 and totem (on linux), here are the results:

• ('Keye FM', 'mms://stream.amaonline.com/keyefm')
    ∘ gst-launch playbin: Could not read packet header
    ∘ gst-launch playbin2: Could not read packet header
    ∘ totem: Could not read packet header
    ∘ moovida karmic: segfault (interrupted system call + Could not read packet header)
    ∘ moovida windows: segfault (Could not read packet header: No error)

• ('NRJ', 'mms://vipnrj.yacast.net/nrj_webtv03')
    ∘ gst-launch playbin: ERROR: Pipeline doesn't want to pause
    ∘ gst-launch playbin2: ERROR: Pipeline doesn't want to pause
    ∘ totem: plays (sound only)
    ∘ moovida karmic: frozen while buffering (interrupted system call)
    ∘ moovida windows: frozen while buffering

• ('Impuls', 'mms://netshow.play.cz/impulswebcam')
    ∘ gst-launch playbin: plays (sound + video)
    ∘ gst-launch playbin2: ERROR: Pipeline doesn't want to pause
    ∘ totem: plays (sound + video)
    ∘ moovida karmic: segfault (Could not read packet header)
    ∘ moovida windows: frozen, no error

• ('EskaTV', 'mms://streamtv.eska.pl:6000/eskatv')
    ∘ gst-launch playbin: ERROR: Pipeline doesn't want to pause (Could not read packet header: Interrupted system call)
    ∘ gst-launch playbin2: ERROR: Pipeline doesn't want to pause (Could not read packet header: Interrupted system call)
    ∘ totem: Could not read packet header: Connection reset by peer
    ∘ moovida karmic: frozen (Could not read packet header: interrupted system call)
    ∘ moovida windows: frozen, no error

• RadioTime plugin with TV support:
    ∘ moovida karmic: segfault (Could not read packet header: Success)
    ∘ moovida windows: segfault (Could not read packet header: No error)

Changed in moovida:
importance: Undecided → Critical
status: New → Confirmed
tags: added: playback
Revision history for this message
Olivier Tilloy (osomon) wrote :

In any case, when failing to play a stream, Moovida should handle the failure gracefully and inform the user like totem does instead of segfaulting.

Revision history for this message
Michał Sawicz (saviq) wrote :

I have made some more tests, with flummssrc on Windows, too.

Here are the results: http://spreadsheets.google.com/pub?key=tB4_WK5batuRqJkf9UUnN6g&single=true&gid=0&output=html

And attached is the WMV Test plugin with the test streams for anyone to try and confirm.

Revision history for this message
Michał Sawicz (saviq) wrote :
Revision history for this message
Michał Sawicz (saviq) wrote :

A list of streams that are tested with the plugin:

mms://80.232.162.149/PLUS_stereo
mms://netshow.play.cz/kiss98webcam
mms://192.203.177.78/wmtencoder/radio.wmv
mms://tinyurl.com/arianafm
mms://vipnrj.yacast.net/nrj_webtv03
mms://netshow.play.cz/impulswebcam
mms://streaming.newmedia.lu/telehighres
mms://media.brturbo.com.br/turbotv.wmv
mms://bostonpete.us/station12
mms://salvationtv.in/maltv
mms://madison.wm-live.abacast.com/mwcradio-wozz-32

Revision history for this message
Michał Sawicz (saviq) wrote :

There are some reports on this on launchpad already - bug #97686, bug #212064 and on b.g.o - https://bugzilla.gnome.org/show_bug.cgi?id=425948, but it never got much attention.

The weirdest thing is that even when some streams play fine (most of the above) when started from the WMV plugin, they fail in the Radiotime plugin with the 'Success' errors (sic!)...

Revision history for this message
Michał Sawicz (saviq) wrote :

Here's another .egg of the radiotime plugin that seems to handle as much playlists as possible.

Revision history for this message
Michał Sawicz (saviq) wrote :

So this seems to be a libmms issue.

If I understand correctly what's going on, the library blocks while connecting and that sometimes causes timeouts in Moovida's media scanner code and that breaks badly.

Michał Sawicz (saviq)
Changed in moovida:
assignee: nobody → Olivier Tilloy (osomon)
status: Confirmed → In Progress
Revision history for this message
Olivier Tilloy (osomon) wrote :

Marking as fixed. Although Moovida still won't play the problematic streams, it is now on par with totem regarding error handling.

Changed in moovida:
milestone: none → 1.0.10
status: In Progress → Fix Committed
Revision history for this message
Olivier Tilloy (osomon) wrote :

Bumped poblesec to 0.21.3.

Changed in moovida:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.