servo/media

Progressive downloading interferes with media playback on Windows and Android

Opened this issue · 3 comments

jdm commented

Loading https://joshmatthews.net/videoogg.html and https://joshmatthews.net/videomp4.html on Windows shows output like:

0:00:53.367597000  1764 0000021D0FEA7D00 FIXME                default gstutils.c:3981:gst_pad_create_stream_id_internal:<appsrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:53.439264000  1764 0000021D0FEA7180 FIXME                    bin gstbin.c:4337:gst_bin_query: implement duration caching in GstBin again
0:00:53.439277000  1764 0000021D19305100 FIXME                default gstutils.c:3981:gst_pad_create_stream_id_internal:<typefind:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:53.541286000  1764 0000021D193054C0 WARN                 qtdemux qtdemux.c:764:gst_qtdemux_pull_atom:<qtdemux0> error: This file is invalid and cannot be played.
0:00:53.551335000  1764 0000021D193054C0 WARN                 qtdemux qtdemux.c:764:gst_qtdemux_pull_atom:<qtdemux0> error: atom has bogus size 2141068913
0:00:53.568135000  1764 0000021D193054C0 WARN                 qtdemux qtdemux.c:6607:gst_qtdemux_loop:<qtdemux0> error: Internal data stream error.
0:00:53.568232000  1764 0000021D0FEA7180 ERROR             gst-player gstplayer.c:1188:error_cb:<player0> ERROR: from element /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0: This file is invalid and cannot be played.

0:00:53.600591000  1764 0000021D193054C0 WARN                 qtdemux qtdemux.c:6607:gst_qtdemux_loop:<qtdemux0> error: streaming stopped, reason error (-5)
0:00:53.639861000  1764 0000021D0FEA7180 ERROR             gst-player gstplayer.c:1190:error_cb:<player0> Additional debug info:
../gst/isomp4/qtdemux.c(764): gst_qtdemux_pull_atom (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0:
atom has bogus size 2141068913

0:00:53.670978000  1764 0000021D193054C0 WARN                 qtdemux qtdemux.c:718:gst_qtdemux_post_no_playable_stream_error:<qtdemux0> error: This file contains no playable streams.
0:00:53.717912000  1764 0000021D0FEA7180 ERROR             gst-player gstplayer.c:1065:emit_error:<player0> Error: Error from element /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0: Could not demultiplex stream.
This file is invalid and cannot be played.
../gst/isomp4/qtdemux.c(764): gst_qtdemux_pull_atom (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0:
atom has bogus size 2141068913 (gst-player-error-quark, 0)
0:00:53.747530000  1764 0000021D193054C0 WARN                 qtdemux qtdemux.c:718:gst_qtdemux_post_no_playable_stream_error:<qtdemux0> error: no known streams found
0:00:53.839723000  1764 [2019-07-04T12:37:03Z ERROR script::dom::htmlmediaelement] Player error: "Error from element /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0: Could not demultiplex stream.\nThis file is invalid and cannot be played.\n../gst/isomp4/qtdemux.c(764): gst_qtdemux_pull_atom (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0:\natom has bogus size 2141068913"

These videos play correctly when the progressive download is disabled. This behaviour is not observed on macOS.

Is this still valid?

AFAIU this might be fixed with #286

jdm commented

When I comment out this check and load this url in the Windows UWP app, I still see:

0:00:53.839723000  1764 [2019-07-04T12:37:03Z ERROR script::dom::htmlmediaelement] Player error: "Error from element /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0: Could not demultiplex stream.\nThis file is invalid and cannot be played.\n../gst/isomp4/qtdemux.c(764): gst_qtdemux_pull_atom (): /GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0:\natom has bogus size 2141068913"

This file plays fine without that change.

ferjm commented

I observed the same behavior on Android servo/servo#24413