[vlc-devel] [RFC PATCH 00/11] OMX: enable android hardware buffers (zero copy)

Martin Storsjö martin at martin.st
Tue Jul 1 12:44:52 CEST 2014


On Tue, 24 Jun 2014, Thomas Guillem wrote:

> I did the development on a Nexus 10 with last android 4.4.3, and I have a
> performance issue using HW buffers. I need to investigate more since I know
> that I don't have any performances issue with my other player. I also tested it
> on a RK30 and a QCOM device.

What QCOM device did you test it on (and on what firmware)?

I've tried to test this code on a number of different devices and haven't 
gotten it working properly of any of them.

On a Galaxy S3 running 4.3, I've got it almost working - I get the first 
frame displayed, then I get the following errors:
E/VLC     (19825): iomx decoder: omx buffer should be filled at that point
D/VLC     (19825): iomx decoder: error during decoding
(and the last message repeated for every packet)

For this device, I had to do an extra workaround for setting the hal pixel 
format for the hw buffers. This was what I had run into when I tried doing 
this myself earlier, when I concluded this to be too hacky to be worth 
pursuing. (I'll follow up with the details of this in the review of the 
actual patch for omxil.cpp.)

On a Galaxy Nexus currently on 4.1, I get the following errors:
D/VLC     ( 1388): iomx decoder: OMX_SetParameter failed (80001001 : OMX_ErrorUndefined)
E/VLC     ( 1388): iomx decoder: HwBuffer_AllocateBuffers(1) failed
E/VLC     ( 1388): iomx decoder: AllocateBuffer failed (80001000 : OMX_ErrorInsufficientResources)
D/VLC     ( 1388): iomx decoder: OMX_AllocateBuffers failed (80001000, 1)
D/VLC     ( 1388): iomx decoder: PortReconfigure(1)::done
D/VLC     ( 1388): iomx decoder: PortReconfigure failed
D/VLC     ( 1388): iomx decoder: error during decoding

And on a Galaxy S4 (running 4.4) and Nexus 4 (running 4.3 currently), the 
mediaserver crashes.

There's no important user data on neither of the nexus devices, so I can 
flash them to other factory images if necessary to test.


So the Galaxy S3 case seems to be the one closest to working - I'll have a 
closer look later to see if I can figure out what's going wrong in the 
code, unless you happen to find the issue yourself before.

// Martin



More information about the vlc-devel mailing list