Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature request] Add .wmv file playback support to Proton. #1464

Open
HonkingGoose opened this issue Sep 15, 2018 · 41 comments

Comments

Projects
None yet
@HonkingGoose
Copy link

commented Sep 15, 2018

Feature Request

I confirm:

  • that I haven't found another request for this feature. Technically there are multiple requests, but they are scattered between multiple issue reports.
  • that I have checked whether there are updates for my system available that
    contain this feature already.

Description

There are multiple games which use .wmv (Windows Media Video) files, for their cinematics/cutscenes. These files will not be played back in-game on a standard installation of the game using Proton.

Because I've seen multiple bug-reports with regards to .wmv file playback, I wanted to make a generic request, so it doesn't get lost in between all the specific game issues.

Justification

There are multiple games which have .wmv file playback issues, these games use .wmv for cutscenes, and so are a integral part of the story and experience of the games which use it.

For #137 the fix for .wmv files would probably make the game ready for official whitelist process.
There might be other games which would qualify for whitelisting too, after this feature has been implemented.

Integration into Proton would fix .wmv file playback for the games referenced below.

Risks

  • The fix for .wmv file playback might break something else in Proton.
  • There might be some other unknown risks associated with including the .wmv file playback, like for example patent/IP issues regarding including .wmv codecs/playback.

References

MF plat games (Media Foundation):

Issue number Codecs used Remarks
#175 unsure Proton log contains MFPlat.DLL MFReadWrite.dll
#243 .mp4 with H.264 video and AAC audio Proton log contains mfplat.dll mfplay.dll mf.dll Minimal impact, videos only for intro credits and loading screens. See: #243 (comment)
#298 unsure #298 (comment) mentions MFplat in the backtrace of a crash.
#327 unsure No complete proton log included. Snippet of log contains mfplay.dll
#394 WMV3/WMA2, VC-1/WMA Pro, and WMV3/WMA Pro. Proton log contains MFPlat.DLL MFReadWrite.dll Logs here: #394 (comment)
#414 unsure Proton log: wine: Call from 0x7b44c03c to unimplemented function mfreadwrite.dll.MFCreateSourceReaderFromURL
#651 MPEG-4, AVC1 + AAC LC Proton log: fixme:mfplat:MFStartup (65648, 0): stub
#656 unsure Proton log contains MFReadWrite.dll MFPlat.DLL
#838 unsure, mentions of using .wm .wma .wmv in workaround #838 (comment) Proton log contains MFPlat.DLL MFReadWrite.dll
#1029 video(s) are ASF files with .mov.1.x64 extension #1029 (comment) Proton log contains MFPlat.DLL
#1098 .bin/AVC Proton log: mfplat.dll
#1102 unsure No proton log included with issue, #1102 (comment) mentions game loads MFplat
#1199 H.264, AAC, MP3. AVPro #1464 (comment)
#1287 wmv3 codec Proton log contains: mfplat.dll, also cut-scenes don't play: #1287 (comment)
#1404 WMV, VC-1 + WMA Proton log: 42479.516:002d:002e:warn:module:load_builtin_dll cannot open .so lib for builtin L"mfplay.dll"
#1627 unsure Proton log contains MFPlat.DLL
#1780 unsure Proton log: mf.dll mfplat.dll
#1801 unsure Proton log contains MF.dll MFPlat.DLL
#1849 unsure trace:loaddll:load_builtin_dll Loaded for mf.dll and mfplat.dll
#1966 unsure Proton log contains fixme:mfplat:MFStartup
#2000 mp4 Proton log contains MF.dll mfplat.dll
#2002 wmav2 wmv2 Proton log contains mfplat.dll mfplay.dll mf.dll
#2041 wmv Proton log contains mf.dll mfplat.dll mfplay.dll
#2181 unsure Proton log contains mfplat.dll User mentions workaround installing MFplat workaround works. #2181 (comment)
#2193 unsure See: #2193 (comment)
#2204 unsure Proton log contains mf.dll mfplat.dll
#2207 .wmv Proton log contains mfplat.dll MF.dll
#2213 unsure Proton log: fixme:mfplat:MFStartup (131184, 0): stub
#2266 unsure Proton log contains MFPlat.DLL MFReadWrite.dll
#2289 unsure Proton log contains MF.dll mfplat.dll
#2316 unsure Proton log: fixme:mfplat:MFStartup (131184, 0): stub
#2331 .mp4 file h264 for video, aac for audio Proton log contains mfplat.dll See: #2331 (comment)
#2333 unsure Game's own debug log mentions: LogWindowsMoviePlayer: Could not load mfplay.dll. Library not found.
#2351 unsure Game runs after installing MF, but video still not working: #2351 (comment)
#2375 unsure Proton log contains MFPlat.DLL
#2386 unsure Proton log contains MFPlat.DLL, see: #2386 (comment)
#2410 unsure Proton log contains MF.dll MFPlat.DLL MFReadWrite.dll
#2413 unsure Proton log contains: warn:module:load_dll Failed to load module L"mferror.dll"; status=c0000135
#2420 MPEG-4, AVC Proton log contains: MF.dll MFplat.dll MFReadWrite.dll
#2431 unsure Proton log contains: mf.dll mfplat.dll
#2465 unsure Proton log contains: fixme:mfplat:MFStartup
#2506 unsure Proton log contains: fixme:mfplat:MFStartup
#2516 unsure Proton log contains: fixme:mfplat:MFStartup and fixme:mfplat:mfattributes
#2525 MPEG-4, AVC1 + AAC Proton log contains: MFplat.dll MF.dll
#2527 unsure Proton log contains: mfplat.dll mf.dll
#2541 mp4, H.264 video and AAC audio ffprobe output Proton log contains: ````mferror.dllandmfplat.dll```.
#2580 unsure Proton log contains: fixme:mfplat:MFStartup (131184, 0): stub
#2581 MPEG-4, AVC1 Proton log has mentions of trying to load mfplat.dll and mf.dll
#2610 unsure Proton log: fixme:mfplat:MFStartup (131184, 0): stub
#2617 MPEG-4, AVC1 + AAC Proton log: err:module:import_dll Library MFPlay.DLL
#2629 unsure Proton log: warn:module:load_builtin_dll cannot open .so lib for builtin L"mfplay.dll
#2631 unsure Proton log: mf.dll mfplat.dll
#2646 unsure Proton log: warn:module:load_builtin_dll cannot open .so lib for builtin L"mfplay.dll
#2660 MP4, AVC + AAC fixme:mfplat:MFStartup (131184, 0): stub
#2664 unsure fixme:mfplat:MFStartup (131184, 0): stub
#2671 unsure warn:module:load_dll Failed to load module L"mfplay.dll"
#2674 MPEG-4, AVC + AAC. WMV, VC-1 + WMA trace:module:process_attach (L"mfplat.dll",(nil)
#2715 unsure fixme:mfplat:MFStartup (131184, 0): stub
#2724 WMV3, WMAV2 fixme:mfplat:MFStartup
#2751 MPEG-4, AVC + AAC mfplat.dll
#2767 unsure fixme:mfplat:mfattributes_SetGUID
#2816 unsure
#2827 unsure fixme:mfplat:MFStartup (131184, 0): stub

Quartz games:

Issue number Codecs used Remarks
#44 WMV, VC-1 + WMA err:quartz:GetClassMediaFile Media class not found
#137 .wmv Proton log contains quartz.dll
#174 .wmv Proton log contains quartz.dll
#176 AVI, CVID + ADPCM Proton log: err:quartz:GetClassMediaFile Media class not found
#180 unsure Proton log for 333600, 420110 and 602520 contain quartz.dll (385800 log contains neither mf nor quartz)
#208 .wmv .wma Proton log contains quartz.dll
#258 WMV, VC-1 + WMA err:quartz:GetClassMediaFile Media class not found
#264 WMA2, WMA Pro, WMV3 Proton log contains quartz.dll See these 2 comments for precise codec information: #264 (comment) #264 (comment)
#271 MPEG-PS, MPEG-1 Audio+Video Proton log: 10433.364:0028:01c7:fixme:quartz:MPEGSplitter_query_accept MPEG-1 system streams not yet supported
#328 WMV, VC-1 + WMA err:quartz:GetClassMediaFile Media class not found
#345 .wmv Proton log contains quartz.dll
#433 WMV, VC-1 + WMA fixme:quartz:Parser_QueryInterface No interface for
#666 WMV2, MP3 See: #1464 (comment)
#703 .wmv, VC-1 + WMA Proton log: fixme:quartz:MPEGSplitter_QueryInterface No interface
#746 unsure Proton log contains: err:quartz:GetClassMediaFile Media class not found
#762 unsure Proton log contains: err:quartz:GetClassMediaFile Media class not found See: #762 (comment)
#818 WMV, VC-1 + WMA stored as .pop files fixme:quartz:AsyncReader_QueryInterface No interface for
#829 WMV, VC-1 + WMA Proton log: err:quartz:GetClassMediaFile Media class not found
#1303 speculation game uses wmv file Proton log contains quartz.dll
#1319 WMV, VC-1 + WMA Proton log: :err:quartz:GetClassMediaFile Media class not found
#1522 unsure Proton log contains: fixme:quartz:Parser_QueryInterface No interface and err:quartz:GetClassMediaFile Media class not found See: #1522 (comment)
#1629 WMV + MS MPEG-4 + MPEG-1 Audio, WMV + VC1 + OGG fixme:quartz:MPEGSplitter_QueryInterface No interface for
#1649 wmv3 wma2 In wine this game needs quartz wmp10 devenum according to: #1649 (comment)
#1852 probably codec issue See: #1852 (comment)
#1893 vidc MP43 Needs quartz to not crash at video play. See: #1893 (comment)
#1922 wmv2 wmav2 Game works after winetricks quartz devenum wmp10 according to #1922 (comment)
#1974 .AVI, MPEG-4 + MP3 Proton log: err:quartz:GetClassMediaFile Media class not found
#1987 WMV, VC-1 + WMA Proton log: fixme:quartz:Parser_QueryInterface No interface for {37d84f60-42cb-11ce-8135-00aa004bb851}!
#2009 unsure No proton log included with issue. User mentions installing quartz works.
#2134 unsure Intro video doesn't playback. User mentions "need protontricks 748490 quartz to start without crashing"
#2155 vidc FMP4 MPEG4 Proton log: quartz.dll and fixme:quartz:VideoRendererInner_QueryInterface
#2168 wmv3 wmav2 Proton log contains quartz.dll
#2203 wmv Proton log after fixing XNA contains quartz.dll See #2203 (comment)
#2284 WMV3, WMV2, WVC1 for video. WMAP, WMA2 for audio. Workaround uses quartz and wmp9.
#2373 MPEG-4, AVC1 + AAC Proton log contains fixme:quartz:MPEGSplitter_QueryInterface
#2446 mpeg-1 #2446 (comment)
#2452 unsure 21353.361:002b:003e:fixme:quartz:Parser_QueryInterface No interface for
#2544 unsure See: #2544 (comment)
#2566 WMV3 + WMA Proton log: err:quartz:GetClassMediaFile Media class not found
#2576 WMV, VC-1 + WMA fixme:quartz:MPEGSplitter_QueryInterface No interface for
#2583 MPEG-4, AVC1 + AAC Proton log: fixme:quartz:MPEGSplitter_QueryInterface No interface for
#2584 WMV2 + WMA Proton log:
#2612 MPEG-4, AVC1 + AAC Proton log: fixme:quartz:MPEGSplitter_QueryInterface
#2639 WMV, VC-1 + WMA Proton log: fixme:quartz:MPEGSplitter_QueryInterface No interface for
#2643 WMV, VC-1 + WMA Proton log: err:quartz:GetClassMediaFile Media class not found
#2657 MPEG-4, AVC + AAC + Quicktime TC fixme:quartz:MPEGSplitter_QueryInterface No interface for
#2721 unsure fixme:quartz:Parser_QueryInterface No interface for
#2830 probably WMA err:ole:CoGetClassObject no class object {187463a0-5bb7-11d3-acbe-0080c75e246e} could be created for context 0x3

WMVCore.dll games:

Issue number Codecs used Remarks
#294 WMV, VC-1 + WMA From log: fixme:wmvcore:WMReader_Open
#296 VC-1 / OGG From log: fixme:wmvcore:WMCreateSyncReader ((nil), 1, 0x59299798): stub
#366 VC-1 / WMA From log: fixme:wmvcore:WMReader_Open
#576 WMV3 and WVC1 for RE 0 HD Remaster From log: fixme:wmvcore:WMCreateSyncReader ((nil), 1, 0x8411e08): stub
#1831 WMV, VC-1 + WMA fixme:wmvcore:WMReader_Open (0x35ef1d0)
#1946 WMV, VC-1 + WMA Proton log: fixme:wmvcore:WMCreateSyncReader ((nil), 1, 0x37b0478): stub.

XNA games:

Issue number Codecs used Remarks
#1781 WMV, VC-1 + WMA Proton log:Microsoft.Xna.Framework.Video.dll

Unsure what is causing issues:

Issue number Codecs used Remarks
#90 .wmv No proton log included with issue.
#1031 unsure Proton log neither mentions anything labeled mf or quartz or WMVCore.dll.
#1235 .wmv No proton log included with issue.
#1455 .wmv No proton log included with issue. Error dialog: CPAL3D: Cannot initialize windows media video playback. Please reinstall the game.
#1571 MP4 No proton log included with issue. Problems playing splash screens.
#1602 unsure Proton log neither mentions anything labeled mf or quartz. User mentions wmp10 listed in games AppDB.
#1991 .mpg .wmv No clean "pure proton" log included with issue.
#1996 bink .bik files Proton log neither mentions anything labeled mf or quartz.
#2753 unsure err:ole:COMPOBJ_DllList_Add couldn't load in-process dll L"C:\\windows\\system32\\winegstreamer.dll"

False alarms

Issue number Codecs used Remarks
#2172 unsure See: #2172 (comment)

@HonkingGoose HonkingGoose changed the title [Feature request] Add .wmv file playback support for Proton. [Feature request] Add .wmv file playback support to Proton. Sep 15, 2018

@byte1024

This comment has been minimized.

Copy link

commented Sep 15, 2018

The problem is that there are games like Obduction that need Windows Media Foundation/Windows Media Feature support as they use a dll not installed otherwise by a wmv player like WMP. #327

So its not just being able to play a video, they literally need this dll (and whatever else is tied to it) to playback the video. UE4 games all have the option of needing this dll if it is used in a Windows release for video playback. Possibly Unity games as well.

Although, as long as some version of it can be found by the game (and used), it could even just be a mock one that uses a different means.

While, some games seem to be able to get by with WMP installed as far as I can tell from various posts on the internet, it would be better to go the whole mile and support more than just simple wmv format. WMV is a part of a whole pie.

@HonkingGoose

This comment has been minimized.

Copy link
Author

commented Sep 15, 2018

@byte1024 Oh, I didn't know that more might be needed beside just fixing "simple" .wmv file playback.

I understand your point correctly:

  1. Some games also require Windows Media Foundation and/or Windows Media Feature support.
  2. Those games use a dll (and all that is tied to this dll) which is not installed by a wmv player like WMP.
  3. Therefore just fixing .wmv playback will not solve the whole problem games have with playback.
  4. So it's better to implement support for the whole "Windows Media Foundation and/or Windows Media Feature" framework.
@byte1024

This comment has been minimized.

Copy link

commented Sep 15, 2018

@byte1024 Oh, I didn't know that more might be needed beside just fixing "simple" .wmv file playback.

I understand your point correctly:

1. Some games also require Windows Media Foundation and/or Windows Media Feature support.

2. Those games use a dll (and all that is tied to this dll) which is not installed by a wmv player like WMP.

3. Therefore just fixing .wmv playback will not solve the whole problem games have with playback.

4. So it's better to implement support for the whole "Windows Media Foundation and/or Windows Media Feature" framework.

It looks like there might even be more. The only log I found in all the links you posted (here: #137) needs quartz.dll to find system codecs and uses fmod for in-game sound.

The log for that one shows some stuff used in quartz.dll can't be found:

41489.934:0008:0032:err:quartz:GetClassMediaFile Media class not found
41489.935:0008:0032:err:quartz:GetClassMediaFile Media class not found
41489.936:0008:0032:err:quartz:GetClassMediaFile Media class not found

That's all I noticed in that log, but its easier to find this stuff when you know the filename of the video being played since a search goes right to it if its found in the log.

And an explanation that Wine's quartz.dll is fake and missing stuff.
https://www.winehq.org/pipermail/wine-users/2002-November/009217.html

And the corresponding log entry shows this is still true:
41489.932:0008:0032:trace:module:load_dll L"C:\\windows\\system32\\quartz.dll" is a fake Wine dll

Some seem to say quartz is a part of the WMP install, but quartz is also DirectShow (DirectX media) which was replaced with WMF that I mentioned. https://en.wikipedia.org/wiki/DirectShow

and Microsoft also mentions WMF in the what's new section of DirectShow: https://docs.microsoft.com/en-us/windows/desktop/directshow/whats-new-in-directshow

Its a media pie, all these pieces are a part of it, but Wine has been failing on them and now Proton is too.

@aeikum

This comment has been minimized.

Copy link
Collaborator

commented Sep 17, 2018

Wine has a directshow implementation, which depends on gstreamer. Since we can't depend on the system having gstreamer installed, we will need to build and ship it with Proton. Worse, we also would need to ship the codecs, which may have patent/licensing issues. It hasn't been looked into yet.

Wine does not have a MF implementation yet. There's some work being done on it, but it's not nearly ready. If anyone is looking to contribute to Wine, that may be a decent place to get started.

@niikoo

This comment has been minimized.

Copy link

commented Nov 3, 2018

+1

I have tried a lot of different configurations.
Haven't had any success with codec packs / wmp.
VLC in Proton plays those videos though, so it should be possible.

Tried Proton 3.16-4 beta and 3.7-8
Graphics: AMD RX580

@HonkingGoose

This comment has been minimized.

Copy link
Author

commented Nov 3, 2018

@niikoo Thanks for trying things out. 😄

I must confess, my understanding of this issue is very limited. @aeikum knows way more about this than me... So @aeikum, could you perhaps give your thoughts on this?

@basxto

This comment has been minimized.

Copy link

commented Nov 3, 2018

VLC has it’s own codecs, afaik.

@PythonicChemist

This comment has been minimized.

Copy link

commented Jan 24, 2019

+1

it affects all Blazblue games. I tried manually installing quartz into their prefixes which doesn't work with a proton prefix but with a normal wine one.

@f0rmatme

This comment has been minimized.

Copy link

commented Jan 26, 2019

this also effects the new RE2

@d10sfan d10sfan referenced this issue Jan 26, 2019

Open

Injustice™ 2 (627270) #1627

2 of 2 tasks complete

@ValveSoftware ValveSoftware deleted a comment from f0rmatme Jan 26, 2019

@kisak-valve

This comment has been minimized.

Copy link
Member

commented Jan 26, 2019

Hello @james-munson, the libraries you've shared are not free and it's problematic to redistribute them.

@corvusd

This comment has been minimized.

Copy link

commented May 11, 2019

Star Wars The Force Unleashed 2 - no cinematics at all:

0082:err:quartz:GetClassMediaFile Media class not found
0082:fixme:quartz:VMR9SurfaceAllocatorNotify_AdviseSurfaceAllocator (0x20ce648/0x20ce438)->(...) stub
0082:err:quartz:GetClassMediaFile Media class not found
0082:fixme:quartz:VMR9SurfaceAllocatorNotify_AdviseSurfaceAllocator (0x20ce648/0x20ce438)->(...) stub
0082:err:quartz:GetClassMediaFile Media class not found
0082:fixme:quartz:VMR9SurfaceAllocatorNotify_AdviseSurfaceAllocator (0x20ce648/0x20ce438)->(...) stub
0082:err:quartz:GetClassMediaFile Media class not found
0082:fixme:quartz:VMR9SurfaceAllocatorNotify_AdviseSurfaceAllocator (0x20ce648/0x20ce438)->(...) stub
009b:fixme:imm:ImmReleaseContext ((nil), (nil)): stub

imagen

@AwesamLinux AwesamLinux referenced this issue May 11, 2019

Open

Perception (426310) #2674

2 of 2 tasks complete
@HonkingGoose

This comment has been minimized.

Copy link
Author

commented May 11, 2019

@corvusd Thanks for your comment, I've added the game and codecs to the list.

@owlboy

This comment has been minimized.

Copy link

commented May 14, 2019

#1199
Codecs Used (Unity Video Players): H.264, AAC, MP3
Codecs Used (AVPro Based Video Players): Pretty much everything as AVPro is designed to have broad support.

@pchome

This comment has been minimized.

Copy link

commented May 28, 2019

#666 - No intro/tutorial videos, quartz

$ ffprobe FMV_Intro_OneShot.avi

Input #0, avi, from 'FMV_Intro_OneShot.avi':
  Metadata:
    encoder         : MEncoder SVN-r33883(20110719-gcc4.5.2)
  Duration: 00:00:51.60, start: 0.000000, bitrate: 4298 kb/s
    Stream #0:0: Video: wmv2 (WMV2 / 0x32564D57), yuv420p, 1280x720, 4159 kb/s, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 30 tbn, 30 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp, 128 kb/s

@AwesamLinux AwesamLinux referenced this issue May 28, 2019

Open

Layers of Fear 2 (1029890) #2751

2 of 2 tasks complete

@HonkingGoose HonkingGoose referenced this issue May 31, 2019

Open

Oddworld: Munch's Oddysee (15740) #2753

2 of 2 tasks complete
@nidjan

This comment has been minimized.

Copy link

commented Jun 2, 2019

MUST HAVE! Problem with Battlefleet Gothic Armada misson "Hulk" is saved now.

@kisak-valve kisak-valve referenced this issue Jun 19, 2019

Open

MUSYNX (952040) #2816

2 of 2 tasks complete
@h1z1

This comment has been minimized.

Copy link

commented Jun 19, 2019

You can add GTA5 to the list though the impact isn't clear as it works for some.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.