32-bit Program that Plays Videos in ASF Containers

Questions about Wine on Linux
Locked
osmium
Newbie
Newbie
Posts: 1
Joined: Thu Jun 01, 2023 8:38 am

32-bit Program that Plays Videos in ASF Containers

Post by osmium »

My fundamental problem is that I have a 32-bit program that tries to play ASF videos. This could be handled by gstreamer except my distro (Arch) does not officially ship a 32-bit version of the plugin required for ASF (as far as I understand this is in the "ugly" category of plugins). There is an AUR package but this takes AGES given the amount of dependencies that have to be built from source, not to mention the installation fails for me. I think the most straightforward solution here is to use native Windows libraries for playback here, but I have been struggling to get this done. I have tried all combinations of disabling winegstreamer (in winecfg) and installing quartz (with winetricks), none of it makes the video play. If quartz is not installed, the program hangs, otherwise it just displays a black screen in place of the video (the video codec is WMV3 and I installed wmp11 which I think should cover it, also see the debug messages, I don't think this is a codec issue). From the debug output it seems that even if winegstreamer is disabled, wine tries to load winegstreamer.dll, even though it has "no business" here. Some debug messages (program requires Japanese locale to run):

winegstreamer enabled

Code: Select all

winegstreamer error: decodebin0: GStreamer はプラグインを見つけることができません
winegstreamer error: decodebin0: ../gstreamer/subprojects/gst-plugins-base/gst/playback/gstdecodebin2.c(4704): gst_decode_bin_expose (): /GstBin:bin0/GstDecodeBin:decodebin0:
no suitable plugins found:
Missing decoder: Advanced Streaming Format (ASF) (video/x-ms-asf)
winegstreamer disabled

Code: Select all

027c:err:ole:apartment_add_dll couldn't load in-process dll L"C:\\windows\\system32\\winegstreamer.dll"
027c:err:ole:com_get_class_object no class object {38be3000-dbf4-11d0-860e-00a024cfef6d} could be created for context 0x1
027c:err:ole:apartment_add_dll couldn't load in-process dll L"C:\\windows\\system32\\winegstreamer.dll"
027c:err:ole:com_get_class_object no class object {f9d8d64e-a144-47dc-8ee0-f53498372c29} could be created for context 0x1
027c:err:quartz:get_filter_info Failed to get CLSID, hr 0x80070490.
The output is very similar whether Quartz is installed or not.
I understand that at some point in the past (as late as 2018) disabling gstreamer was a recognized fix for certain issues. It seems now the unquestioned assumption is that gstreamer will be used for any and all multimedia stuff, given that winecfg behaves differently now compared to that blog: it does not even suggest winegstreamer as an option to change the behavior of and if you do it gives you a warning that this is not recommended, and the debug messages indicate it is not meant to be disabled at all. Is there any way of getting the (presumed) old behavior of using native libraries for multimedia back?
Locked