Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 


FranceBB

FFMpeg and Windows XP in 2017

Recommended Posts

The latest Zeranoe xp-compatible build was ffmpeg-20150525-git-8ce564e, released on May 2015. After that, people started complaining about the following error: "The procedure entry point _wfopen_s could not be located in the dynamic link library msvcrt.dll". On the official Zeranoe FFmpeg Builds site, it says that "All builds require at least Windows 7". So, I took a look at the code and I noticed that FFmpeg code itself has not stopped being XP compatible, but the inclusion by Zeranoe of some external libs that are either themselves by default not compatible or have become incompatible at some stage of their development is what broke Zeranoe builds. Anyway, many external libraries and codecs are still compatible with XP, they just need to be tweaked correctly, just like MSYS2 did, in fact I used their project to compile ffmpeg with GCC and, as result, the build is updated and XP compatible.

FFMpeg 2017 x86 - Windows XP, WIndows Vista, Windows 7, Windows 8, Windows 8.1, WIndows 10 Compatible

https://mega.nz/#!Od9DRD5R!ynjjY9uHzLM6UYLZl5xFMxQ1gnkPZxbmcCvGr9fuAvk

Happy new year.

Edited by FranceBB
  • Like 2
  • Upvote 2

Share this post


Link to post
Share on other sites

Hi there, the download link posted above doesn't work anymore, could you please upload your file/s again, or would this provoke any trouble with Zeronoe (he himself has deleted his last XP-compatible ffmpeg version completely from his repository, so only _very_ old versions still exist hera and there).

Greetings, QN

Share this post


Link to post
Share on other sites
4 hours ago, Qniemiec said:

the download link posted above doesn't work anymore, could you please upload your file/s again

You can access the same build here ; BTW, that link is contained within the following get_iplayer mailing list post:

http://lists.infradead.org/pipermail/get_iplayer/2017-May/010711.html

I am the author of that post, also the person who compiled that FFmpeg build; now I don't want to bring up plagiarism into this discussion, but it seems the internet is such a small place after all :P

Just compare, if you will (posted Dec 28th, 2017):

On 12/28/2017 at 2:33 AM, FranceBB said:

I noticed that FFmpeg code itself has not stopped being XP compatible, but the inclusion by Zeranoe of some external libs that are either themselves by default not compatible or have become incompatible at some stage of their development is what broke Zeranoe builds.

to (posted May 10th, 2017):

Quote

The FFmpeg code itself has not stopped being XP/Vista compatible, but the inclusion by Zeranoe of some external libs that are either themselves by default not compatible or have become incompatible at some stage of their development is what broke recent Zeranoe builds on XP/Vista. E.g., --enable-libmfx breaks builds on XP, while --enable-libx265 without the -DWINXP_SUPPORT=ON flag breaks builds on both XP/Vista (and it's the reason behind errors like: https://squarepenguin.co.uk/forums/thread-1307.html )

FWIW, MSFN forum member @CoRoNe compiles and offers, out of pure comradeship, recent, XP compatible, FFmpeg builds, though his are optimised for older processors :rolleyes: ; he has, not long ago, announced new builds in another thread, here is his post :thumbup Enjoy! :)

Edited by VistaLover
  • Like 1

Share this post


Link to post
Share on other sites

This discussion is way outdated. @CoRoNe keeps ffmpeg updated here: https://rwijnsma.home.xs4all.nl/files/ffmpeg/?C=M;O=D

@VistaLover I generally help people on Doom9 and I remember when they were talking about ffms2000 and I found your mailing post, but, just like Avisynth plugins, I generally re-compile them myself with the assembly optimisations available for my CPU using Visual Studio. If I remember correctly, you disabled some assembly optimisations and I didn't like that, however I tried to compile it with Intel Parallel Studio but it didn't work, so I ended up using Visual Studio (disabling the same things you pointed out because I read your post and you saved me a lot of time, really), but enabling assembly optimisations available to my CPU at the time.

I apologize if it sounded like plagiarism, but trust me, no harm was intended at all. ;)

By the way, Vangelis, since you are the same person of "VistaLover", I wanna ask you something now that I have the chance ^^

During the last few days I've been trying to compile the latest VSFilter for XP and it does compile with v141_xp toolset (and specifying /Zc:threadSafeInit-), but it doesn't work and ends up with an Invalid Access Memory Location (998) on run-time.

I noticed that two kernel calls are missing in Windows XP: InitializeProcThreadAttributeList and DeleteProcThreadAttributeList.

Unfortunately, these two functions have been introduced in Windows Vista.

InitializeProcThreadAttributeList is a bool.
It returns a zero value if it fails or a non-zero value if it succeeds.
It has lpAttributeList (which is the attribute list and it can be NULL to determine the buffer size required to support the specified number of attributes), dwAttributeCount (which is the count of attributes to be added to the list), dwFlags (which is a reserved parameter and it must be zero) and lpSize.

BOOL InitializeProcThreadAttributeList(
  LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList,
  DWORD                        dwAttributeCount,
  DWORD                        dwFlags,
  PSIZE_T                      lpSize
);

DeleteProcThreadAttributeList is a void and thus it does not return a value. It simply has lpAttributeList which is the attribute list created by the InitializeProcThreadAttributeList function.

void DeleteProcThreadAttributeList(
  LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList
);

I took a look at Wine and it seems that they implemented the call, so I tried to take their implementation and use it as a wrapper to basically direct the call to it instead of to the kernel, but unfortunately it didn't work.

This is the project: https://github.com/pinterf/xy-VSFilter

Shouldn't the v141_xp output a valid xp binary and get rid of those things, especially 'cause they are not included inside VSFilter itself but are probably a dependency?

Thank you in advance.

Edited by FranceBB

Share this post


Link to post
Share on other sites
14 hours ago, FranceBB said:

This discussion is way outdated. @CoRoNe keeps ffmpeg updated here: https://rwijnsma.home.xs4all.nl/files/ffmpeg/?C=M;O=D

I do, but I announce them on Zeranoe's forum. I try to release a new build every 4 months or so.

14 hours ago, FranceBB said:

During the last few days I've been trying to compile the latest VSFilter for XP and it does compile with v141_xp toolset (and specifying /Zc:threadSafeInit-), but it doesn't work and ends up with an Invalid Access Memory Location (998) on run-time.

I'm using 3DYD's LAV Filters fork for WinXP. Maybe their code/changes can help you with that.

  • Like 1
  • Upvote 1

Share this post


Link to post
Share on other sites

just wanted to say thanks, and that avatar is suspiciously familiar....

zplay_2019-01-05_015932.png

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...