-
Notifications
You must be signed in to change notification settings - Fork 113
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
VVenC library leads to crashes in older CPUs #164
Comments
Looks like I'll have to peg vvenc to an older commit. Tomorrow's build will remain affected but the next one should work. |
If you have an affected CPU, can you triangulate to the most recent build that works on this list - https://github.com/GyanD/codexffmpeg/tags ? |
ffmpeg git 2024-06-27 builds Still works, (Note: Only to point out, and as explained in the other thread, the Full version are the ones that don't work, the Essential ones don't have that issue as VVenC is an additional library) Thanks! |
I don't think pinning this to an older commit will do anything. |
So this affects x86 CPUs without AVX2? AVX2 was introduced in 2013 (Haswell), so we're talking about 12+ year old CPUs. I'll disable vvenc for now, but I don't think it's good policy to constrain features to target very old HW/SW substrates. These users can use the essentials build or older releases, all of which are available here at Github. |
vvenc removed from latest git build. Please test. |
The problem is that it doesn't only crash when using vvenc, but it makes the entire build unusable due to global static initializers in vvenc. So even a plain |
ffmpeg git 2024-12-16 builds Full works again.
This.
First, It's not AVX2, is SSE4.1. Second, I want to add that I can buy the old CPU thing, I know, those CPUs are old, although in some cases also they can use in a computer with at most 32 GB RAM (Mine is 12 GB for example), and are still serviceable for a few things. But the point is It crash directly, with no output, and that was the initial report, and later an ask to add the proper documentation of the requirements, because the point is there wasn't any information about this in any of the projects. Funny enough, I didn't came from the same project that the original report (Initial report is yt-dlp, me was looking up info of the same issue but with streamlink in my case, what both not are even a heavy video processing projects). I wish It could keep the compatibility with these old CPUs, maybe simply not working or only crashing when is going to be used, making this library available there for newer CPUs, because without that library at least there is no crash at the beginning, showing that is what was crashing the entire thing (and also we can bring the "less e-waste" topic there). But even If it's not possible, you need to know because that library is forcing the requirements up and you are not building ffmpeg with that parameters, the library is doing it without you knowing, and If anyway It doesn't work in those CPUs, you should use those parameters too (I don't know if they are already using it for the entire ffmpeg when is injected by the library, or is only used by the library, which is worse). And also in that case, this should be documented, and at this point isn't, even in the VVenC library. Thanks! |
My point is I don't think it's good policy to constrain features because of inoperability on very old systems, which likely constitute a single-digit percentage share of users, especially considering the essentials build continues to work. I'll probably re-add vvenc soon after documenting the requirements. |
Hello.
I think It could be good to share this topic because your builds are also affected with this: BtbN/FFmpeg-Builds#411
In the VVenC bugtracker fraunhoferhhi/vvenc#493
Thanks!
The text was updated successfully, but these errors were encountered: