Info Request - Regarding the game 'Outward'
Avehicle7887 Nov 1, 2020
So here's the story:

With Wine Staging 5.20 and Nvidia card the videos for this game work out of the box. However the story is not the same for Mesa users, the terminal throws out an error regarding 'unknown format for mfplat (quicktime)' and crashes the game (can be bypassed by using an MS mfplat.dll), I don't care about the intros but there may be other fmv's in game and other games may also end up being affected by it.

I don't know if it's an old library from my system or if there's any open source implementation supporting this. I'd like to know if someone has managed or can try this for me.

Formula is pretty straight forward: Launch the game using Wine Staging 5.20 with an Intel or AMD GPU, only override you'll need is DXVK. If the videos work then it's definitely an issue on my end.


Things I've tried:

Launching game with Wine Staging 5.20 + Mesa 20.2.1 - Didn't work.
Updated libvdpau (was at old v1.1.1) to latest 1.4 and recompiled Mesa 20.2.1 with it - Didn't work.


The one thing I've left to try Mesa related is updating the VA-API library (libva): https://github.com/intel/libva

As mentioned above, I'm using Mesa v20.2.1 with an RX 5500 XT. Other mfplat related games work fine, this is the odd one. Many thanks in advance for any assistance.

Last edited by Avehicle7887 on 1 November 2020 at 10:05 pm UTC
whizse Nov 1, 2020
Quoting: Avehicle7887the terminal throws out an error regarding 'unknown format for mfplat (quicktime)'
Is that error message verbatim? I've grep'ed for variations of that string in Wine sources and staging patches and came up empty. Or is it an error from the game?
Avehicle7887 Nov 2, 2020
Quoting: whizse
Quoting: Avehicle7887the terminal throws out an error regarding 'unknown format for mfplat (quicktime)'
Is that error message verbatim? I've grep'ed for variations of that string in Wine sources and staging patches and came up empty. Or is it an error from the game?

The message isn't that exact one, grepping 'quicktime' though should result something. I don't have access to that machine atm. Will give you the exact line once I'm able to.

EDIT:

This the exact message - 01e8:fixme:mfplat:mf_media_type_from_caps Unrecognized video format video/quicktime


Last edited by Avehicle7887 on 2 November 2020 at 2:00 pm UTC
whizse Nov 2, 2020
Might be an issue with GStreamer on some systems? The mfplat stuff seems to explicitly look only for video/mpeg, video/x-h264 and video/x-wmv mimetypes. Possibly GStreamer misidentifies some videos depending on the plugins installed?
Avehicle7887 Nov 2, 2020
Quoting: whizseMight be an issue with GStreamer on some systems? The mfplat stuff seems to explicitly look only for video/mpeg, video/x-h264 and video/x-wmv mimetypes. Possibly GStreamer misidentifies some videos depending on the plugins installed?

It might be, although I suspect there's something more to it since the Nvidia driver decodes it perfectly.

I just tested the game on a live Ubuntu 20.10 environment which has much more recent packages and the issue persists. I guess as a last resort I could try asking the devs to re-encode their fmv's into something more Linux friendly for their game, the chances of that happening may be quite slim but worth a shot.

If you wanna go ahead and try the game regardless, maybe you can spot something I'm overlooking.

EDIT:

Dug a bit deeper with the Wine settings. I also installed a few well known Codec packs as well as Quicktime itself, it still won't budge. With that done, I emailed the devs explaining the situation hoping for the best.

Last edited by Avehicle7887 on 2 November 2020 at 5:38 pm UTC
whizse Nov 3, 2020
I finally had some time today to compile Wine-Staging, and I can reproduce the problem.

I think the quicktime reference is probably a red herring. If you set WINEDEBUG=+mfplat it's clear that game tries to play a H264 video with AAC sound.

I also played around a bit with vaapi and Gstreamer and I seem to be able to play H264 videos with hardware decoding just fine. So I guess either the Mesa VAAPI driver chokes on this particular video, or there's a more general problem with Mesa/VAAPI and the mfplat stuff.

Would be interesting if there was a way to extract the video from the game, and just try playing it back with normal Gstreamer.
whizse Nov 3, 2020
Quoting: whizseWould be interesting if there was a way to extract the video from the game, and just try playing it back with normal Gstreamer.
There is. I did. Plays fine in Gstreamer with Vaapi.

At least I think it's the correct one, about seven seconds, displays the Deep Silver and Nine dots logos?
Avehicle7887 Nov 3, 2020
Quoting: whizse
Quoting: whizseWould be interesting if there was a way to extract the video from the game, and just try playing it back with normal Gstreamer.
There is. I did. Plays fine in Gstreamer with Vaapi.

At least I think it's the correct one, about seven seconds, displays the Deep Silver and Nine dots logos?

Yes those are the videos I see on Nvidia system, are there any others?

Also how did you manage to extract them?
whizse Nov 4, 2020
This is the tool, never tried it with Wine, ran it in a Windows VM.
https://github.com/Perfare/AssetStudio

I'm not sure if there are other videos. The intro was in sharedassets0.assets, and in sharedassets1.assets, so either it is included twice, or possibly AssetStudio finds some sort of index of the files and show everything included split between all *.assets files?

I'm Jon Snow when it comes to the Unity file hierarchy.
whizse Nov 4, 2020
FWIW. I tried a few other games, and I'm not having much luck with video playback:

Outcast
Similar line about quicktime, hangs with black screen at launch.
01d4:fixme:mfplat:mf_media_type_from_caps Unrecognized video format video/quicktime
** (wine:2056113): CRITICAL **: 18:16:53.142: gst_buffer_add_video_time_code_meta_full: assertion 'GST_IS_BUFFER (buffer)' failed
** (wine:2056113): CRITICAL **: 18:16:53.354: gst_buffer_add_video_time_code_meta_full: assertion 'GST_IS_BUFFER (buffer)' failed


Shadow Warrior 2
Refuses to play videos, but works otherwise.
018c:err:mfplat:gst_buffer_from_mf_sample Failed to copy IMFSample to GstBuffer, hr = 0xc00d36c9
Avehicle7887 Nov 4, 2020
Quoting: whizseFWIW. I tried a few other games, and I'm not having much luck with video playback:

Outcast
Similar line about quicktime, hangs with black screen at launch.
01d4:fixme:mfplat:mf_media_type_from_caps Unrecognized video format video/quicktime
** (wine:2056113): CRITICAL **: 18:16:53.142: gst_buffer_add_video_time_code_meta_full: assertion 'GST_IS_BUFFER (buffer)' failed
** (wine:2056113): CRITICAL **: 18:16:53.354: gst_buffer_add_video_time_code_meta_full: assertion 'GST_IS_BUFFER (buffer)' failed


Shadow Warrior 2
Refuses to play videos, but works otherwise.
018c:err:mfplat:gst_buffer_from_mf_sample Failed to copy IMFSample to GstBuffer, hr = 0xc00d36c9

I've been testing Shadow Warrior 2 with every Wine Staging release, it's broken even on Nvidia. Can't comment on Outcast though, don't have the game.

Seems like at least VA-API needs to fix the mov/quicktime issue since it works fine with Nvidia.

I've taken a quick look at that Unity asset extractor, seems like it can only extract, was thinking about re-encoding the videos within. Anyhow on the Outward topic, I haven't received an email from the devs so far.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.