I'm developing an application that runs and controls the omxplayer. I very much prefer to develop on my desktop machine, though. So I wonder if it is possible to install omxplayer for a regular desktop Debian (i386)? Are there any builds (I'm on Jessie).
-
1There's a 3 year old issue on the omxplayer Github page which suggests that some of the libraries used are exclusive to the Pi. I don't think you'll be able to compile it for another platform.– gooberingOct 24, 2016 at 9:21
-
If you write a small application that behaves like omxplayer (except actually doing anything OMX related) you can develop on any machine you want, and then just test on the pi.– Thorbjørn Ravn AndersenDec 11, 2017 at 2:39
1 Answer
I don't think it would work.
You still can develop on your i386 desktop and compile/deploy remotely via SSH. That would be the easiest way I can think of. If you really want it, you can setup a cross-compiling environment. But you'd get much overhead in the beginning.
I personally use a set of Makefiles that copy the changes to my Raspberry Pi via rsync
(only copying deltas) and running make
on the Pi to compile the code (that changed). It works pretty fast and is convenient.
But for why you should not try to compile omxplayer
directly on your i386:
omxplayer
works by utilizing hardware capabilities of the VideoCore IV part of the CPU which has an embedded media encoder and decoder. OMX refers to OpenMAX which is an interface to that hardware. I am not aware of any device compatible with OpenMAX except in the mobile/embedded space. But as modern intel/AMD CPUs and also nVidia/AMD GPUs also include hardware media encoder and decoder, they might provide OpenMAX compatible driver. Only then you might have a chance. But still I am not aware of such drivers.
-
1
-
1I don't doubt that. But do all the devices provide the required driver? Like with OpenGL you need a device and a driver or you end with a software renderer. I'm not aware of a software implementation that fakes a hardware media encoder/decoder.– kwasmichOct 24, 2016 at 13:57
-
1I think it's exactly that: a software implementation, much like MESA library for OpenGL. You don't need any device to use it. Oct 24, 2016 at 14:01
-
As with OpenGL there need not to be as software implementation. The library works as intended by reporting no compatible devices. Just like you request an OpenGL ES 3 context on the Pi you won't get one and therefore cannot progress. The presence of a library doesn't imply that It can be used without a proper environment.– kwasmichOct 24, 2016 at 14:06
-
1I think the issue is that ambiguities in the statement "OpenMAX which is an interface to [the VideoCore IV]" might be taken to imply it is a library specific to that hardware, which it isn't. However, there are further limitations to
omxplayer
(e.g., since it can use the framebuffer, it is probably linux specific, which OpenMAX is not). I doubt there are binaries available for anything but the Pi, and there may be other reasons it cannot be compiled on anything but a Pi. You can always try though: github.com/huceke/omxplayer– goldilocks ♦Oct 24, 2016 at 14:07