Comments (9)
Hello,
I have reached out to the developer of the 'Go FPV' app, hopefully he can make his project open source. I tested the UVCCamera library but it did not work with the ROTG02.
I do not know how the rendering pipeline of GO FPV works, but if I can shave off any delay I'l try my best.
from fpv_vr_os.
Cool 😃
from fpv_vr_os.
Unfortunately the dev of the GO FPV app hasn't repsponed yet. However, I did some research and after searching github for quite a while I found a fork of UVCCamer that compiled:
repo
And the example nr 8 showed an image with my rotg02 receiver ( unfortunately it crashes quite a lot)
The main takeaways from this repo are:
a) It is in turn based on another repo - lubusb and libuvc. Both of them seem to be maintained and of good quality ( the UVCCamera example is not bad but a bit bloated for FPV )
b) It uses SW to transform the UVC camera frames (YUYV - and I don't think any FPV usb receiver provides MJPEG) to RGBA then copies that data into a ANativeWindow
from fpv_vr_os.
I have to correct myself - the example code configures the ROTG02 with MJPEG as frame format (if there is even anything to configure - I think it is more that the ROTG02 supplies MJPEG frames only
The encoding is probably where most latency comes from. Decoding & copying frames into ANativeWindow takes ~16ms on my ZTE Axon7. That could be maybe optimized to half (8ms) since it looks like some unncesseary copying it happening but a majority of the time is probably created by the encoder of the ROTG02.
The current side - by side mode of comparable apps like Go FPV does not do any undistortion so I assume Front buffer rendering In combination with distortion correction) can only match the latency of the curent go fpv app.
from fpv_vr_os.
It worth checking the datasheet of V399 chip which seem to be responsibe for USB, maybe its possible to change its configuration which will reduce latency.
AMT630A is responsible for converting analog video signal from the RX modules.
If a phone + 3d printed VR case + ROTG02 variation can replace a fatshark it will be a game changer.
from fpv_vr_os.
This looks like V399 datasheet.
from fpv_vr_os.
Thanks for the datasheets.
I have good news: I managed to get the ROTG02 to work with FPV_VR.
I worked my way down from the UVCCamera project, stripping unneeded functionalities and trying to understand the magic behind saki4510t 's modified libuvc / libusb libraries (as it turned out, they don't have official support for android unfortunately)
But while some stuff is still 'magic' both why it works and why it compiles :) I succesfully tested my uvcintegration on android 7 and 9.
I was not yet able to do some latency testing since I am missing normal FPV goggles but it is definitely usable.
What can be improved in the future:
The project uses a really old release of libjpeg-turbo with SIMD disabled I think.
At the time decoding takes ~20ms for a single 640x480 frame on latest smartphone HW.
Feels like a bit too much for me, a proper install of the latest libjpeg-turbo release might reduce latency.
from fpv_vr_os.
Cool! Here's one way to measure end to end latency in case you'll get there
from fpv_vr_os.
closing since uvc is working fine now
from fpv_vr_os.
Related Issues (11)
- How can I use the feature air head tracking? HOT 7
- SuperSync still has problem "screen tearing"[Do not know WHY] HOT 5
- Motor test
- Can't decode H265 when use openIPC as the air HOT 1
- Compilation issue
- Project still active
- Build is failing HOT 2
- Suggestion: Add DJI HD FPV usb live video out support HOT 1
- FPV-VR Не показывает заряд батареи.
- Android Studio build fails HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fpv_vr_os.