Jump to content

MKVToolnix v.29.0 Unofficial Windows XP - Vista version


FranceBB

Recommended Posts

MKVToolnix announced that they were going to officially drop XP with version 9.x in 2015. Luckily, the next version v.10.0 was working on XP anyway.

Today I decided to update it after a while and I found out that it wasn't working anymore. 

I took a look at the source code and luckily it didn't use anything weird and it was possible to compile every component targeting XP.

As to the UI, this one was tricky. The mkvextractgui hasn't really been modified during the latest commits and relies on old calls, so it was easy to compile.

As to to the mkvmergegui (mkvtoolnixgui), in the main branch it has been update to use functions available on Windows 7 only (not even Vista!).

I was kinda curious to see what they did and they basically broke Vista and XP compatibility with the GUI to implement some "fancy" W7 loading bars and a few totally useless stuff.

Anyway, I re-used the code from version 10.0 for the mkvmergegui ('cause it was XP compatible) and made it work with the new components and... guess what? It works.

It's gonna complain about a "mismatch" between the GUI version and the components version as soon as you launch mkvtoolnixgui, but just ignore it and use the program 'cause it's working flawlessly.

I just muxed a few .ts and .mp4 files into .mkv and it worked. I even extracted subtitles from a few .mkv files and it worked.

Let me know if you find bugs and please note that this is an unofficial version, so DO NOT update via the GUI and DO NOT report bugs on the official MKVToolnix site, but only here.

 

v25.0: REMOVED

v26.0: REMOVED

V27.0: REMOVED

V28.0: REMOVED

V29.0: https://mega.nz/#!GJcmUS6R!FvWCCGWxStx5_23MSSJ8l_PC0eJOPaGFaMRtN2XTZFM

Edited by FranceBB
Link to comment
Share on other sites

  • 5 months later...

https://gitlab.com/mbunkus/mkvtoolnix

We have quite a few components with calls not available on XP

In order, we have 

IPHLPAPI missing ConvertInterfaceIndexToLuid, ConvertInterfaceLuidToIndex, ConvertInterfaceLuidToNameW, ConvertInterfaceNameToLuidW

KERNEL32 missing CancelIoEx, GetFileInformationByHandleEx, GetTickCount64 (For which I'm just gonna use the normal GetTickCount), GetUserPreferredUILanguages, InitializeProcThreadAttributeList, DeleteProcThreadAttributeList

SHELL32 missing SHCreateItemFromIDList, SHCreateItemFromParsingName, SHGetKnownFolderIDList, SHGetKnownFolderPath, SHGetStockIconInfo, SetCurrentProcessExplicitAppUserModelID, Shell_NotifyIconGetRect

MPR missing WNetRestoreConnectionA (for whatever reason, but it's not important)

USER32 missing ChangeWindowMessageFilterEx, CloseTouchInputHandle, GetTouchInputInfo, IsTouchWindow, RegisterTouchWindow, UnregisterTouchWindow, UpdateLayeredWindowIndirect

UXTHEME missing GetThemeTransitionDuration

Unfortunately, there aren't work-around available for all of them, mostly because the GUI uses the QT cross-platform interface which is not XP compatible as it dropped support a while ago and it gets worse day by day, breaking compatibility even for simple things like the fonts in QWindowsFontEngineDirectWrite and disabling DirectWrite doesn't solve the issue; leaving the old GUI and just compiling the new components targeting XP worked, though.

I'll make an installer soon.

 

EDIT: There you go: https://mega.nz/#!GJcmUS6R!FvWCCGWxStx5_23MSSJ8l_PC0eJOPaGFaMRtN2XTZFM

 

Edited by FranceBB
Link to comment
Share on other sites

New version doesn't work for me: MKVMerge seems to be looking for "XPVCRT.dll," whatever that is.

Should I rename MSVCRT.dll? Edit: That seemed to fix it.

On 7/25/2018 at 1:00 AM, FranceBB said:

I was kinda curious to see what they did and they basically broke Vista and XP compatibility with the GUI to implement some "fancy" W7 loading bars and a few totally useless stuff.

One of my pet peeves: a product drops support for users of an older product like Win XP, but only because they didn't think it looked "cool" enough.

Edited by Mathwiz
Link to comment
Share on other sites

41 minutes ago, Mathwiz said:

New version doesn't work for me: MKVMerge seems to be looking for "XPVCRT.dll," whatever that is.

Should I rename MSVCRT.dll? Edit: That seemed to fix it.

One of my pet peeves: a product drops support for users of an older product like Win XP, but only because they didn't think it looked "cool" enough.

Yes, my bad. I'm doing many things at the same time and I didn't rename it. I'm glad you figured it out yourself, though. ;)

As to the look, well... I can't blame the MKVToolnix developer, 'cause the fault is to address to the QT development community. MKVToolnix is cross-platform and can be compiled for Linux, so the developer had to use one of the graphic environments available on Linux. The QT community also has a Windows branch and the developer is just following the good practice of using the latest version of the library; too bad the linux community broke XP with the new-ish version of the library. I could potentially link against the old QT and manually change the code that is not compatible in order to compile the last GUI for XP. Doable? Probably yes. Worth my time? Probably not. But if someone wants to, he/she can go back to the pre-2015 version of QT and check what they changed 'till not.

Edited by FranceBB
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...