Jump to content

Latest-ish MPC-HC ported for XP


tirigliu

Recommended Posts

5 hours ago, we3fan said:

Did it require replacing many lines?

No, I used Resource Hacker (will have to find an older version if you want to run it on XP) to open the manifest in the executable and https://unminify.com/ to make it readable for me, then basically replaced this:

<ms_compatibility:compatibility xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" xmlns="urn:schemas-microsoft-com:compatibility.v1">
  <ms_compatibility:application xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1">
    <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></ms_compatibility:supportedOS>
    <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></ms_compatibility:supportedOS>
    <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></ms_compatibility:supportedOS>
    <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"></ms_compatibility:supportedOS>
    <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"></ms_compatibility:supportedOS>
  </ms_compatibility:application>
</ms_compatibility:compatibility>

With:

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
  <application>
    <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
    <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
    <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
    <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
  </application>
</compatibility>

Then minified the text with https://codebeautify.org/xml-minifier, put it back and saved. Seems there's a line break between XML head and the rest of content. Threw Vista GUID out as AFAIK only Windows 7+ understands that section and if there was only Vista GUID, it would be equal to the section not being present, but presence of the rest changes compatibility context to the newest indicated OS, turns off some legacy behavior.

Not sure if there's a full list of behaviors anywhere, but I broke a level editor of an old game once when I marked it as compatible with everything Win7+, uses GDI and DirectDraw and causes Vista/7's compositor to go off normally. Wonder what could change between 8 and 8.1? And no newer GUIDs despite more frequent big updates since Windows 10.

I'd still use that KB921337 hotfix at least for XP fixing sxs.dll, don't see more resiliency against such things as a bad thing. Someone could also notify the author of that MPC-HC version, should be a small thing to change.

Edited by UCyborg
Link to comment
Share on other sites


Forgot I already posted, there was no feedback from the forum software after clicking the button. Probably still goes through most of the time.

Edited by UCyborg
Link to comment
Share on other sites

6 hours ago, mina7601 said:

Thanks, but the suggestion of running chkdsk is, however, not mine, it's from that link I put earlier, which points to the same error code.

Will you please finally stop with check disk? It's been explained to you by UCyborg, it's dangerous in such cases. And I agree with him.

And that error code is very generic.

Link to comment
Share on other sites

4 hours ago, we3fan said:

From my tests I can only conclude that: 'STOP c000021A Error with 0xc0000005' BSOD on XP SP2 doesn't create crash dump file hmm.

Right, there was a link posted earlier about that code, it's a special one, technically the kernel didn't crash, but it aborted execution since it detected user-mode csrss.exe process crash. Presumably it's logical the kernel wouldn't dump its own memory then as if one was going to go debug something in this case, it should be targeted at the crashing process as the kernel could normally continue if that other process didn't go down.

Link to comment
Share on other sites

Few people would be concerned with support for XP SP2 today when even Seven is already considered old. Other programs like new Process Explorer would still crash the system.

Link to comment
Share on other sites

well it wont be that simple with just a why question

but what we can hear is that already 3 things are there that xp actually dont have

dx10/11 was called out/dxva2
lav dll´s where called out (that actually use vista functions)
srw locks (vista api´s)
(probaly not the last ones, makes already 3 why´s) 

this is the "engine problem" i described

they take in those engines all the time 

one being that LAV engine that should solve the things like "here is your mpg file do it"
that actually dont decode a codec it use a engine to do so 
lets say that LAV is not public it already ends here - because if its not published you dont have insight

a very common problem of this "engine, script like, copy/paste like coding" problem
if LAV is public we had some luck 
the other alternativ would be to copy a real decoder (that actually has to be applied to that MPC-HC player)

that LAV "engine" seems to work to some extend on vista

the hardware acceleration can either come from a certain engine too like DX or SSL/other variant of that registers
that x265 can do a lot more registers then SSL

i dont think MPC-HC is self sufficient if it has to call engines that requie certain operating systems


going a such way often end up in "now not being supported"

what we certainly actually can say is that the MPC-HC player is not very self independent 
special with the mpc-hc author decided to choose to use engines 

having the source code published certainly makes possible to find the related problems
it´s a entire player but, something to read and then collectiong all of its problems

but here your question is also answered - mpc-hc is not very self independent it was luck that the mpc-hc "engines" still
worked on vista what they do not on already on xp

it might dont use that win10 engine - probaly it vista dont have the heic image format - but it do use engines

Link to comment
Share on other sites

FFmpeg (or the failed LAV fork) is mostly self-contained. It includes everything in the package to work on many other non-Windows OS. They have rewritten most codecs entirely. To this day, there are recent FFmpeg builds for WinXP on Doom9. An older build can still be used to decode h.265. The author of LAV Filters and the maintainer of MPC-HC (NevCairiel and Clsid2) have no interest in old computers, so they have chosen to compile the modules in a way to depend on some calls from new Windows for input and output, and have declared CUVID to be deprecated. But the core brains of the video decoder don't depend on Windows. That is why these players have been attractive since the days of ffdshow, because they don't need external codecs.

Link to comment
Share on other sites

Just took a better look at the files of this MPC-HC 2.1.2.18, looks like a KernelEx style hackery, not a pure Windows XP compatible port.

spacer.png

I tried it on my usual XP x64 install anyway, but it doesn't appear to be usable here. There's no picture, just sound, the part where picture is supposed to be, nothing renders there, if I restore its minimized window, it's see-through with whatever was on that part of the screen at the time of window restoration. Same if I pick madVR renderer, which is surely functional as my usual PotPlayer can use it.

Link to comment
Share on other sites

Finally got the time to try this latest build. I like it very much, in particular thanks to the neat jetaudio video decoder suggested by @IXOYE (besides, jeataudio makes a very nice addition to music players). For output, I'm using the old madVR v0.92.17 (is there a new ported version out there?), and am playing between the old reclock audio renderer 1.9.0.7 beta  (new build?) and SANE AR, which I guess comes from mpc-hc2 (or is it also from jetaudio? mpc-hc 1.7 doesn't pick it up), the old vsfilter for subtitles. I disable all internal filters (and have played with lavfilters, but it tears the rendering apart), and have add haali media splitter and ffdsho vieo and audio decoders (all blocked) below the jetaudio video decoder (just in case).

With those settings MPC-HC2 play large files flawlessly, no glitches so far (including not overheating the GPU, which happens a lot with lav filters). However, no luck playing ripped or otherwise DVDs. Gotta try with BR, yet. So I'm now using MPC-HC2 to play mp4 and similar large files, and MC-HC1.7 for DVD/BR.

I'm still struggling playing youtube and such. More likely my firewall/security settings. I will find a way, I hope. Thanks @nicolaasjan for the clear instructions.

Movie time now. Cheers!

Link to comment
Share on other sites

I tested MPC-HC 2.1.2.18 more deeply. Under my hardware conditions, the jetaudio video decoder does not do anything better than the LAV filters. Generally, I like this player but the best of all for Windows XP is still the PotPlayer which is able to play subtitles and lists all available YouTube streams while playing a video so that the user can select their favourite one easily.

Edited by AstroSkipper
Link to comment
Share on other sites

The thing about jetaudio video decoder is the good balance between resources used and video quality - I hardly noticed any usage, and had to double check.

(a) With lavvideo, DXVA2 is similarly low in resources, maybe a small improvement, but probably a question of age: jetaudio/cowon is a fruit of the 2000s, so probably is preferred for those used to light settings.

(b) With lavvideo, DXVA2-BACK, a bit more use of resources, slightly better video quality, to my taste. More depth, better texture.

(c) With lavvideo, ncuvid(od), a bit more use of resources, slightly better video quality, to my taste. More depth, better texture, better (to my taste, acquired after years of use) of color, perhaps, a bit darker.

(d).With lavvideo, directx11, maybe less resources, equally good video quality, although less depth. Texture and movement slightly better than (c), but color a bit brighter.

All in all, a keeper. PArticularly If I get it to play dvd/br, ripped or not.

Link to comment
Share on other sites

5 hours ago, dmiranda said:

(d).With lavvideo, directx11, maybe less resources, equally good video quality, although less depth. Texture and movement slightly better than (c), but color a bit brighter.

Of course it's "less resources" for you simply because Windows XP doesn't support DirectX11, it never did, run DxDiag to see, hence less depth and the weird brightness, there's simply no acceleration when you choose DX11 on XP.

Link to comment
Share on other sites

Just so you know, for the future, DirectX11 for video is only Win8 and up, but I won't go into details since it's obviously off-topic here!

Link to comment
Share on other sites

How can there be a difference in picture quality between the modes if the video card's engine does the decoding with the same chip? Less resources are consumed if you choose a rendering output that doesn't copy the data. But then you may not use smooth anti-aliased subtitles or take a screenshot. The outputs differ in V-sync behavior too, and whether the picture can be rotated. Acceleration may still work when MPC-HC has a red checkmark on the output page.

There used to be standalone decoder filters released with MPC-HC 1.6. I think the video decoder also supports DXVA. Microsoft always comes up with new stuff to lock customers into an upgrade path.

Link to comment
Share on other sites

3 hours ago, j7n said:

How can there be a difference in picture quality between the modes if the video card's engine does the decoding with the same chip? Less resources are consumed if you choose a rendering output that doesn't copy the data. But then you may not use smooth anti-aliased subtitles or take a screenshot. The outputs differ in V-sync behavior too, and whether the picture can be rotated. Acceleration may still work when MPC-HC has a red checkmark on the output page.

There used to be standalone decoder filters released with MPC-HC 1.6. I think the video decoder also supports DXVA. Microsoft always comes up with new stuff to lock customers into an upgrade path.

It can, if someone makes a mistake, or simply doesn't know what his OS real capabilities are, that user tried to run the player in DirectX11 mode, that is only Win8 and up, the player ignored that setting and switched off the acceleration completely, thus resulting in a poorer picture quality. The only thing that works on XP is DXVA version 1.0.

Addition, obviously a DXVA supported GPU is needed, too!

Edited by Dixel
Addition
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...