-
Notifications
You must be signed in to change notification settings - Fork 37
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
Improve video performances #11
Comments
sfeMovie now works better with multithreaded implementation. It can play 2048x872 movies without getting late at any time on Mac OS X. Going to test on Windows. |
Results on Windows with this definition still highly depends on the backgrounds tasks. The movie playback won't be even if something is running in the background (which is often the case with Windows doing miscellaneous things). |
With the multithreaded implementation of FFmpeg, this issue is more or less no more an issue, except on very high resolution movies on 'weak' computers. |
using the hardware acceleration that is offered via libva/dxva (already part of libav) might increase perfomance furthermore |
Unfortunately, the hardware acceleration (in terms of speed, not CPU consumption) won't speed up things on most computers unless the decoded frames do not have to go back through the RAM. That means video would need to be decoded by the GPU for example, and directly used by OpenGL. Such change is not a small task. Moreover at the moment the bottleneck (at least on my computer) is rather texture upload from RAM to VRAM rather than decoding, so simply enabling hardware decoding would not help. Did you post because of playback issues or because of CPU consumption? |
No, i am just getting familiar with library right now (i used to program libav before) and might do some changes on my fork of this project (which you can merge if you want). |
Yup, I'll have a look depending on what you change :) As for hwaccel: I have nothing against OS specific code as long as it does not pollute the portable part of sfeMovie. But more importantly, what would be the architecture changes required to integrate this hwaccel in the current decode+display workflow? |
Well it would most likely only work on unix systems, because M$ only supports hardware acceleration via dxva which is obviously part of the DirectX Framework. Converting a D3D_Surface to a glTexture isn't possible without copying it back to the cpu (except for NVIDA GPU's which supprot OpenGL/DirectX Interop). It might not by the highest priority to implement that feature, but hardware decoding will remove a lot of the cpu usage, so sfeMovie gets a lot more viable in games etc. that are already cpu intense by themselves |
This is of particular interest on mobile devices that have poor processing power but have specialized hardware for video decoding. I don't know about iOS but Android should support VA API at least (which makes it an attractive option for Android + Linux support). |
No description provided.
The text was updated successfully, but these errors were encountered: