Bug 252266 - [GStreamer][MSE] Cannot play first 5 seconds of reddit video
Summary: [GStreamer][MSE] Cannot play first 5 seconds of reddit video
Status: RESOLVED DUPLICATE of bug 251866
Alias: None
Product: WebKit
Classification: Unclassified
Component: Media (show other bugs)
Version: WebKit Nightly Build
Hardware: PC Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-02-14 14:43 PST by Michael Catanzaro
Modified: 2023-02-18 01:41 PST (History)
3 users (show)

See Also:


Attachments
gst debug log, manually copied out of terminal scrollback (568.60 KB, text/x-log)
2023-02-14 14:46 PST, Michael Catanzaro
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Catanzaro 2023-02-14 14:43:36 PST
Recently it became impossible to play the first 5 seconds of many videos on reddit.com, but not all videos. The video player widget is the same for most videos, so I'm not sure what the difference is.

Video that exhibits the bug: https://www.reddit.com/r/IdiotsInCars/comments/112gngn/idiots_ignore_4way_stop_to_beat_the_semi_truck/

I attempted to get a GStreamer debug log following the exact same steps that worked for me yesterday in bug #252199, but today I cannot figure out how. I'm doing:

$ flatpak run --filesystem=home --command=/bin/bash org.gnome.Epiphany.Devel
[📦 org.gnome.Epiphany.Devel ~]$ GST_DEBUG="3,webkit*:6" GST_DEBUG_FILE="$HOME/gst.log" GST_DEBUG_NO_COLOR=1 WEBKIT_FORCE_SANDBOX=0 epiphany

And I swear that worked fine yesterday. Today, no gst.log is created even inside the sandbox.
Comment 1 Michael Catanzaro 2023-02-14 14:46:15 PST
Created attachment 464988 [details]
gst debug log, manually copied out of terminal scrollback
Comment 2 Philippe Normand 2023-02-15 07:59:00 PST
0:00:07.778926253     2 0x7f32f4009060 WARN                hlsdemux gsthlsdemux.c:811:gst_hls_demux_process_manifest:<hlsdemux0> error: Could not fetch media playlist: Failed to download 'https://v.redd.it/97irrwku18ia1/HLS_AUDIO_64_K.m3u8'
0:00:07.778953565     2 0x7f32f4009060 WARN           adaptivedemux gstadaptivedemux.c:690:gst_adaptive_demux_sink_event:<hlsdemux0> error: Invalid manifest.

Again this hlsdemux thing...
Comment 3 Philippe Normand 2023-02-15 08:15:49 PST
(In reply to Philippe Normand from comment #2)
> 0:00:07.778926253     2 0x7f32f4009060 WARN                hlsdemux
> gsthlsdemux.c:811:gst_hls_demux_process_manifest:<hlsdemux0> error: Could
> not fetch media playlist: Failed to download
> 'https://v.redd.it/97irrwku18ia1/HLS_AUDIO_64_K.m3u8'
> 0:00:07.778953565     2 0x7f32f4009060 WARN           adaptivedemux
> gstadaptivedemux.c:690:gst_adaptive_demux_sink_event:<hlsdemux0> error:
> Invalid manifest.
> 
> Again this hlsdemux thing...

I'll send a PR to downrank hlsdemux, but I can still reproduce the issue here, suspecting a MSE bug now...
Comment 4 Philippe Normand 2023-02-17 02:27:43 PST
There's this in the log:

0:00:09.110062115     2 0x55fe008bf1d0 DEBUG              webkitmse MediaPlayerPrivateGStreamerMSE.cpp:229:seek:<MSE-media-player-11> Requested seek to {6.0175279999999995}
0:00:09.110124624     2 0x55fe008bf1d0 DEBUG         webkitmediasrc WebKitMediaSourceGStreamer.cpp:725:webKitMediaSrcSendEvent:<webkitmediasrc0> Handling seek event: seek event: 0x7f17ec003310, time 99:99:99.999999999, seq-num 2623, GstEventSeek, rate=(double)1, format=(GstFormat)time, flags=(GstSeekFlags)GST_SEEK_FLAG_FLUSH, cur-type=(GstSeekType)set, cur=(gint64)6017528000, stop-type=(GstSeekType)none, stop=(gint64)0, trickmode-interval=(guint64)0;

Not sure yet, but wondering if this could be a bug on JS side... We need to know what triggers this spurious seek.
Comment 5 Michael Catanzaro 2023-02-17 06:10:53 PST
(In reply to Michael Catanzaro from comment #0)
> And I swear that worked fine yesterday.

P.S. The problem was I forgot that I replaced WEBKIT_FORCE_SANDBOX=0 with WEBKIT_DISABLE_SANDBOX_THIS_IS_DANGEROUS=1. I added a warning if you make that mistake, but only in the old API version, so didn't notice.
Comment 6 Philippe Normand 2023-02-17 10:04:52 PST
There's a 6 seconds gap in the video stream... dunno why...

0:00:13.085547933    38      0x233e6a0 TRACE         webkitmediasrc WebKitMediaSourceGStreamer.cpp:539:webKitMediaSrcLoop:<webkitmediasrc0:src_V0> Pushing buffer downstream: buffer: 0x7f3cc8006240, pts 0:00:00.000000000, dts 0:00:00.000000000, dur 0:00:00.033333333, size 21772, offset 0, offset_end none, flags 0x640
0:00:13.086617331    38      0x233e6a0 TRACE         webkitmediasrc WebKitMediaSourceGStreamer.cpp:539:webKitMediaSrcLoop:<webkitmediasrc0:src_V0> Pushing buffer downstream: buffer: 0x7f3cc800f000, pts 0:00:00.033333333, dts 0:00:00.033333333, dur 0:00:00.033333333, size 2379, offset 21772, offset_end none, flags 0x2200
0:00:13.086748721    38      0x233e6a0 TRACE         webkitmediasrc WebKitMediaSourceGStreamer.cpp:539:webKitMediaSrcLoop:<webkitmediasrc0:src_V0> Pushing buffer downstream: buffer: 0x7f3cc8006120, pts 0:00:00.066666666, dts 0:00:00.066666666, dur 0:00:00.033333333, size 2436, offset 24151, offset_end none, flags 0x2200
0:00:13.086869289    38      0x233e6a0 TRACE         webkitmediasrc WebKitMediaSourceGStreamer.cpp:539:webKitMediaSrcLoop:<webkitmediasrc0:src_V0> Pushing buffer downstream: buffer: 0x7f3c8c009c60, pts 0:00:00.100000000, dts 0:00:00.100000000, dur 0:00:00.033333333, size 2867, offset 26587, offset_end none, flags 0x2200
0:00:13.086954903    38      0x233e6a0 TRACE         webkitmediasrc WebKitMediaSourceGStreamer.cpp:539:webKitMediaSrcLoop:<webkitmediasrc0:src_V0> Pushing buffer downstream: buffer: 0x7f3cec004c60, pts 0:00:00.133333333, dts 0:00:00.133333333, dur 0:00:00.033333333, size 2890, offset 29454, offset_end none, flags 0x2200
0:00:13.087026737    38      0x233e6a0 TRACE         webkitmediasrc WebKitMediaSourceGStreamer.cpp:539:webKitMediaSrcLoop:<webkitmediasrc0:src_V0> Pushing buffer downstream: buffer: 0x7f3cc800f120, pts 0:00:00.166666666, dts 0:00:00.166666666, dur 0:00:00.033333333, size 2628, offset 32344, offset_end none, flags 0x2200
0:00:13.087114543    38      0x233e6a0 TRACE         webkitmediasrc WebKitMediaSourceGStreamer.cpp:539:webKitMediaSrcLoop:<webkitmediasrc0:src_V0> Pushing buffer downstream: buffer: 0x7f3cc800f480, pts 0:00:00.200000000, dts 0:00:00.200000000, dur 0:00:00.033333333, size 2933, offset 34972, offset_end none, flags 0x2200
0:00:13.087203013    38      0x233e6a0 TRACE         webkitmediasrc WebKitMediaSourceGStreamer.cpp:539:webKitMediaSrcLoop:<webkitmediasrc0:src_V0> Pushing buffer downstream: buffer: 0x7f3cc800f240, pts 0:00:00.233333333, dts 0:00:00.233333333, dur 0:00:00.033333333, size 2846, offset 37905, offset_end none, flags 0x2200
0:00:13.087335168    38      0x233e6a0 TRACE         webkitmediasrc WebKitMediaSourceGStreamer.cpp:539:webKitMediaSrcLoop:<webkitmediasrc0:src_V0> Pushing buffer downstream: buffer: 0x7f3cc800f360, pts 0:00:00.266666666, dts 0:00:00.266666666, dur 0:00:00.033333333, size 2556, offset 40751, offset_end none, flags 0x2200
0:00:14.367678067    38      0x233e6a0 TRACE         webkitmediasrc WebKitMediaSourceGStreamer.cpp:539:webKitMediaSrcLoop:<webkitmediasrc0:src_V0> Pushing buffer downstream: buffer: 0x7f3cc8049000, pts 0:00:06.000000000, dts 0:00:06.000000000, dur 0:00:00.033333333, size 25893, offset 621008, offset_end none, flags 0x600
0:00:14.368395124    38      0x233e6a0 TRACE         webkitmediasrc WebKitMediaSourceGStreamer.cpp:539:webKitMediaSrcLoop:<webkitmediasrc0:src_V0> Pushing buffer downstream: buffer: 0x7f3cc8031000, pts 0:00:06.033333333, dts 0:00:06.033333333, dur 0:00:00.033333333, size 2247, offset 646901, offset_end none, flags 0x2200
Comment 7 Michael Catanzaro 2023-02-17 12:19:22 PST
Odd, because the same video works fine in Firefox. :/
Comment 8 Philippe Normand 2023-02-18 01:41:28 PST
With current main of WebKit and GStreamer I cannot reproduce this issue. You'd need https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3867 backported in your runtime and the corresponding WebKit patch.

*** This bug has been marked as a duplicate of bug 251866 ***