Need development help on Android to warp the display

zaidmo

Well-Known Member
Joined
Jun 16, 2009
Messages
408
Hi

I am looking for someone to help me with some coding to warp the entire Android UI (across all apps on an Android TV device), or alternatively just one of the Android TV HDMI pass-through apps. Purpose: Allows me to display content from and Android Media Player onto a curved screen.

This is the warping I'd like to achieve for every frame displayed on the device.
geometric correction.jpg

The source code for the HDMI-In app for an Android Player I have is open and available here:
https://github.com/zidootech/zidoorecorder/blob/master/src/com/zidoo/recorder/tool/HdmiTool.java#L4

With Open GL you can remap screen frames to custom textured grids. This BitmapMesh class also seems to allow for
image warping: https://android.googlesource.com/pl...example/android/apis/graphics/BitmapMesh.java

I've listed this job here: https://www.upwork.com/jobs/~01ee348a91b5cca1a9 but thus far I can't find the right developer to assist.

Can anyone here help me / do this for a fee?
 

[)roi(]

Executive Member
Joined
Apr 15, 2005
Messages
6,282
Challenging topic with a number of hurdles.

Basically you need to:
  1. Capture your Android screen as video stream.
  2. Transform the live video stream
  3. Redirect the transformed video to HDMI out (in the background i.e. to not impact UI)
Challenges:
  1. Capturing the screen: this presents a few challenges, primarily because the Google doesn't by default permit this, so to do this would imply building an app on a rooted device i.e. to circumvent the permissions. This has been done for example with this app.
  2. Transform the live video stream: This is comparatively the easier requirement; mesh warping is fairly easy to implement using OpenGL Shaders, however the quality might be a challenge re the GPU is already engaged capturing the stream, next we need to load it with a transform, finally output; frame rate could take a hit. This largely depends on the hardware characteristics of the device, for example: GPU and memory. Also tweaking the warp will most likely need access to the HDMI monitor; alternatively the app would need to support user customisation of the warp (increased complexity)
  3. Redirect the transformed video to HDMI out. I couldn't find any open API for this; but that not to say it doesn't exist, or that it could be possible even with rooting of your device.
Hopefully these pointers help, unfortunately option 1 or 3 aren't my forte re rooting & HDMI; 2 is the easy part for me.
Overall it sounds complicated but possible; FYI I did something similar with an iPhone, but that was using the video camera as the input source and then relaying the output via Apple's Airplay to an Apple TV.

Going forward maybe your next port of call should be to contact a developer who has already intercepted the UI as a video stream (i.e. use the example I gave).
 
Last edited:

zaidmo

Well-Known Member
Joined
Jun 16, 2009
Messages
408
Thanks for all the tips roi.

On requirement 3, the transformation can be reflected on the UI as I just have 1 display output onto a curved screen (I will not mirror the content onto a flat screen).

I think option 2 could be the easiest. The Android box I'd like to do this on is a quad core supporting 4K resolution with 2GB DDR3 1.5Ghz Cortex A9. The HDMI-in app allow for live capture/ PVR. I'm guessing that transforming and live recording would affect performance, but hopefully the device can just manage the transformation.

Will look at the example app.
Struggling to find a developer on freelancer, fiverr and upwork. A few people bid for the work but in response to my question of can they do this, and how, all I get is "Yes, I'll look into it" - without any recommendation on how do they would like to proceed (should I pay them for a few hours R&D, ship them a X9 unit to play with...).

If I get this to work then I've effectively reduced the cost of 1 of 5 components I require for a solution from approx. $3500 to less than $100.
 
Last edited:
Top