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
Support OpenMAX decoding #528
Comments
I don't see this happening, because
So, in addition to whether this is easily possible at all, it would need someone working on it. |
PS: I would very much prefer if Wayland actually added vdpau support. |
The problem regarding Wayland and VDPAU is less that Wayland doesn't support VDPAU, and more that VDPAU doesn't support Wayland - the API for VDPAU would need an extension to the Window System Integration Layer to support anything other than X11 at all. Considering NVidia's rather lacking enthusiasm when it comes to Wayland, that... doesn't seem hugely likely. http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/group__api__winsys.html |
As far as OpenMAX goes, part of the problem is that there are three different things all called "OpenMAX"
OpenMAX IL is what mpv would be dealing with. |
Well, the windowing API specific parts of the vdpau API are utterly trivial. Even if nvidia comes up with its own Wayland specific APIs after Mesa added them, the fallout due to the API change would probably be pretty small. If anyone wants to try implementing OpenMAX support - sure. |
By the way, it seems VLC supports OpenMAX: http://git.videolan.org/?p=vlc.git;a=tree;f=modules/codec/omxil Apparently they need thousands of lines of code for this. |
Isn't OpenMAX available through a FFmpeg HWAccel? If not code should be contributed there and mpv should only have 'glue code'. |
No. I think OpenMAX IL might be higher level than hwaccel too. |
Well, VLC has less code for it than it might seem. Every single one of those OMX_*.h headers are upstream from Khronos, the standards organization behind OpenGL/OpenMAX/etc - VLC just bundles them. The android_* stuff is to tie into the Dalvik JVM. qcom.[ch] is hardware-specific for Qualcomm's tiled buffer format. A number of the functions in the remaining files are VLC-specific. etc. |
I see. Maybe it's more feasible than I initially thought. Still needs a developer though. |
I will look at it once mesa has stable release with OpenMAX, because I use mesa and radeon. |
@giselher I'd be willing to help test it once you got started, if you need a tester. |
@Yomi0 thanks for the offer but I actually lost interest. |
So, uh, I looked into implementing OpenMAX IL support in ffmpeg/libav a while back. In the end I didn't really write any code (I'm still kinda interested in it, but it's not very high priority), but here are some thoughts:
A starting point would probably be to implement a simple ffmpeg decoder (without the hwdec stuff) and see how it goes, but as I said I wasn't even able to write a little program for decoding a video so unless some new magical documentation suddenly appears it's gonna take me a whole lot of time to do it. |
I believe this would be fine. You can probably use it as texture. (I'm not sure myself - it's all so confusing. Calling this stuff "portable" is just bullshit, since these seem to just provide "concepts", while the details vary by whatever each vendor does.) |
Seems like on wayland, vaapi is generally preferred - though that is probably because many Intel devs work on wayland, not because there's consistent support for it. OMX might be used on phones like Jolla, which are basically built for Android hardware, where OMX is used on the lowest level of the drivers. Anyway, I asked on #wayland about the status of this, and here's the channel log:
|
Closing this, as OpenMAX is not a valid way to get hw decoding, except on very exotic platforms, or hardware made for Android but running some desktop Linux. |
AMD is currently working on upstreaming an OpenMAX Gallium State Tracker into Mesa for their video encode support, but it also supports decoding H264 and MPEG2.
Currently, the only supported API to access Mesa's hardware decode support is VDPAU, which does not work under Wayland (and Mesa dropped its VA-API support due to bitrot and lack of maintenance).
OpenMAX doesn't have any such limitation, and would (going forward) allow non-Intel accelerated playback on Wayland. Additionally, such support would be useful on various embedded systems that provide OpenMAX support for their hardware accelerators.
Christian König's git tree for the encode support, including the OpenMAX State Tracker: http://cgit.freedesktop.org/~deathsimple/mesa/log/?h=vce-release
The text was updated successfully, but these errors were encountered: