Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v3: d3d10/effect: Add support for 'dot' instruction.
d3d10/effect: Add support for 'floor' instruction.
d3d10/effect: Add support for 'ceil' instruction.
d3d10/tests: Compact returned arrays checks.
d3d10/effect: Add support for 'buge'/'bult' instructions.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3987
On Mon Oct 2 19:06:41 2023 +0000, YuriK7 wrote:
> We tried to add the codec by adding
> --enable-decoder=mpegvideo,--enable-decoder=mpeg1video,--enable-decoder=mpeg2video
> and it still show the color bars... does it also need flags for the
> demuxer and parser in order to work ?
> In your gstkrkr code you say that "in GStreamer, decoding a mpeg video
> requires three elements: mpegpsdemux ! mpegvideoparse !
> avdec_mpeg2video" are those enabled by default if the ffmpeg flags are
> good ? We should enable them inside the GST_BAD_MESON_ARGS ?
> avdec_mpeg2video seems to be in the libav plugin.
> We made those changes to https://github.com/GloriousEggroll/proton-ge-custom/blob/master/Makefile.in
mpegpsdemux is part of libgstmpegpsdemux.so. It's unrelated to ffmpeg, and it's present in Glorious-Eggroll already, nothing to do here. (However, it's absent from upstream Proton.)
mpegvideoparse is in libgstvideoparsersbad.so. Likewise, this is part of GE but not Proton, and is not part of ffmpeg.
avdec_mpeg2video is in libgstlibav.so, which is part of Proton - but the exact set of decoders it offers depends on which ffmpeg you have installed, and how it's configured.
Did you rebuild ffmpeg and copy that into an existing Wine or Proton installation, without changing anything else? If yes, GStreamer probably didn't notice the update. `touch` libgstlibav.so, or delete your GStreamer plugin cache (probably at ~/.cache/gstreamer-1.0/registry.x86_64.bin or ~/steam/steamapps/compatdata/1234560/gstreamer-1.0/registry.x86_64.bin). You can also grep that registry file for avdec_mpeg2video: if that string is absent, then there's something wrong with your GStreamer or your ffmpeg, but if it does exist, the problem is on Wine's side (probably in this MR). (The cache is binary, but grep telling you whether the binary file matches is good enough.)
Alternatively, I may simply be wrong; I've never compiled Proton, GE, or ffmpeg. Good call on trying mpeg2video; if it exists, it's probably better than plain mpegvideo.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3938#note_47409