Hi. I'm using www/surf browser (on FreeBSD 12.1 STABLE) which leverages www/webkit2-gtk3 and multimedia/gstreamer1 as a backend and I'm not able to change playback rate when watching youtube videos. $ uname -a FreeBSD KPECT 12.1-STABLE FreeBSD 12.1-STABLE GENERIC amd64 $ pkg query -a "%n-%v" | grep gstreamer gstreamer1-1.16.2 gstreamer1-libav-1.16.2 gstreamer1-plugins-1.16.2 gstreamer1-plugins-bad-1.16.2 gstreamer1-plugins-curl-1.16.2 gstreamer1-plugins-gl-1.16.2 gstreamer1-plugins-good-1.16.2 gstreamer1-plugins-neon-1.16.2 gstreamer1-plugins-soup-1.16.2 gstreamer1-plugins-vpx-1.16.2 > pkginfo webkit2-gtk3 /home/x ] webkit2-gtk3-2.26.4 Name : webkit2-gtk3 Version : 2.26.4 Installed on : Mon Mar 2 20:19:16 2020 +03 Origin : www/webkit2-gtk3 Architecture : FreeBSD:12:amd64 Prefix : /usr/local Categories : www Licenses : Maintainer : gnome@FreeBSD.org WWW : https://webkitgtk.org/ Comment : Opensource browser engine using the GTK+ 3 toolkit Options : DEBUG : off GEOIP : off WAYLAND : off Shared Libs required: libicudata.so.65 libxslt.so.1 libsoup-2.4.so.1 libpango-1.0.so.0 libjpeg.so.8 libgstapp-1.0.so.0 libsqlite3.so.0 libcairo.so.2 libgtk-3.so.0 libxml2.so.2 libtasn1.so.6 libgcrypt.so.20 libwebp.so.7 libsecret-1.so.0 libatk-1.0.so.0 libgstfft-1.0.so.0 libfreetype.so.6 libgstreamer-1.0.so.0 libgmodule-2.0.so.0 libharfbuzz-icu.so.0 libXcomposite.so.1 libgdk_pixbuf-2.0.so.0 libcairo-gobject.so.2 libgio-2.0.so.0 libgstgl-1.0.so.0 libX11.so.6 libwebpdemux.so.2 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libXrender.so.1 libXt.so.6 libicuuc.so.65 libharfbuzz.so.0 libEGL.so.1 libgstpbutils-1.0.so.0 libXdamage.so.1 libgstvideo-1.0.so.0 libgsttag-1.0.so.0 libpng16.so.16 libintl.so.8 libgstaudio-1.0.so.0 libgstbase-1.0.so.0 libopenjp2.so.7 libicui18n.so.65 libfontconfig.so.1 libgdk-3.so.0 libpangocairo-1.0.so.0 Shared Libs provided: libwebkit2gtk-4.0.so.37 libjavascriptcoregtk-4.0.so.18 Annotations : FreeBSD_version: 1201511 Flat size : 61.2MiB Description : WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid HTML/CSS applications to full-fledged web browsers. It offers WebKit's full functionality and is useful in a wide range of systems from desktop computers to embedded systems like phones, tablets, and televisions. WebKitGTK+ is made by a lively community of developers and designers, who hope to bring the web platform to everyone. It's the official web engine of the GNOME platform and is used in browsers such as Epiphany and Midori. WWW: https://webkitgtk.org/ Thank you in advance. Sergey.
This is overridden as unimplemented in the MSE player, I currently see no reason for such override.
Created attachment 393475 [details] Patch
I'm open to give an r+ but I would prefer Alicia has a look at this as well.
Comment on attachment 393475 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=393475&action=review I hope some day I can finally get playbin3 and the new WebKitMediaSrc working and landed and I can get rid of most of this madness with seeks... but that is an ongoing rabbit hole (currently working on fixing WebKitWebSrc races to be able to debug playbin3 player races to be able to use playbin3 for MSE). With that in mind, if this passes tests, LGTM. > Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:248 > + // FIXME: Make a copy here because in some cases below it is modified. This > + // sounds like a bad idea and should be investigated further. > + MediaTime seekTime = position; Could you elaborate?
View in context: https://bugs.webkit.org/attachment.cgi?id=393475&action=review I hope some day I can finally get playbin3 and the new WebKitMediaSrc working and landed and I can get rid of most of this madness with seeks... but that is an ongoing rabbit hole (currently working on fixing WebKitWebSrc races to be able to debug playbin3 player races to be able to use playbin3 for MSE). With that in mind, if this passes tests, LGTM. > Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:248 > + // FIXME: Make a copy here because in some cases below it is modified. This > + // sounds like a bad idea and should be investigated further. > + MediaTime seekTime = position; Could you elaborate?
Comment on attachment 393475 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=393475&action=review >> Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:248 >> + MediaTime seekTime = position; > > Could you elaborate? the seek time is updated there: https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp#L315
Comment on attachment 393475 [details] Patch The only thing I'd say is that it would be better if you split in two, one for the debug and the other one to actually fix the problem but I won't object if you want to land it like this.
Committed r258542: <https://trac.webkit.org/changeset/258542>
<rdar://problem/60532167>
*** Bug 209386 has been marked as a duplicate of this bug. ***
*** Bug 190844 has been marked as a duplicate of this bug. ***