UVC Camera / Usb Camera custom for Android

UVC Camera / Usb Camera custom

Peter Stoiber

version 2.2.4

App for using a video camera over usb from userspace.

Downloads 627
Ads

Rate & Review

Antivirus & safety scan results

Scan Date: Jan 16, 2024 Software Version: 2.2.4
Status: ✅ Trusted & Safe to install This app is signed by Peter Stoiber with trusted and verified digital signature and it will updated existing UVC Camera / Usb Camera custom installations Certificate fingerprint: 995e12d4ff2fa5a3d7ea383a3d3186663f4d984b Issuer: C:UK, CN:FDroid, L:ORG, O:fdroid.org, ST:ORG, OU:FDroid How we verify APK files security
Android antivirus Status
MAX Clean ✅
K7GW Clean ✅
DrWeb Clean ✅
VirIT Clean ✅
ClamAV Clean ✅
Google Clean ✅
Ikarus Clean ✅
Lionic Clean ✅
Sophos Clean ✅
Yandex Clean ✅
Alibaba Clean ✅
Tencent Clean ✅
Xcitium Clean ✅
Fortinet Clean ✅
Kingsoft Clean ✅
Symantec Clean ✅
AhnLab-V3 Clean ✅
Kaspersky Clean ✅
Microsoft Clean ✅
Trustlook Clean ✅
ESET-NOD32 Clean ✅
Avast-Mobile Clean ✅
NANO-Antivirus Clean ✅
BitDefenderFalx Clean ✅

UVC Camera / Usb Camera custom File Transfer app for Android description

Android-UVC-Camera

The app connects to a usb camera from your Android Device. (OTG cabel or OTG Hub needed)

This Project was built to perform an Isochronous Video Stream for all Android Devices (Above 4.1 Ice Cream Sandwich)(Mediathek Devices too) with UVC Cameras. The program uses your userspacr usb device driver to perform an isochronous transfer with your camera device.

Follow this way to set up your own userspace device driver:

First you have to set up all camera settings for your device. The program then saves the values and you can restore them later or overwrite them with other values. Use the Edit/Save/Restore Button to adjust the values. Use the automatic camera search to find and set up the camera.

Explaination:

When the automatic search succeeds, you first set up the MAXIMAL PACKET SIZE. If your device is a mediathek device, you may have to lower the value for the max packet size. The Value PACKETS PER REQUEST defines the Number of the Packets sent to the device: One packet has a size of 3000 bytes and you use 16 packets at one time for sending. Here you define the amount of Bytes which were sent.

Next thing are the USB REQUEST BLOCKS (activeUrb): These are in relation to the max packet size. You have to find here the right values for your device and control the output on the screen under the menu point Isoread. Some typical values for Qualcom Devices are: 8 for the activeUrbs and 16 Packets per Request....

The first thing of the method Isoread is a Control transfer to the camera device:

If the control transfer is successful, then you are ready to go.

Next take a look at the frames.

When you receive identically and long frames, you can proceed to the method Isostream, where the frames are displayed on your screen.

To know how big a Frame should be, you can look at the output of the control transfer of the camera in the log: maxVideoFrameSize. This value is returned from the camera and should be the valid frame size (The value is calculated by Image width x Image height x 2).

The IsochronousRead1 class shows you how the frames are structured by the camera. Different camera settings == Different Frame structures. Try it out with different settings and look at the output. The eof hint shows the frame size in the log. For valid camera settings the size should be the same as maxFrameSize value of the control transfer.

Output method Isoread: (Control transfer) First the program will send a control transfer to your camera device. The output of it looks as following:
Initial streaming parms: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=0 maxPayloadTransferSize=0
Probed streaming parms: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=614400 maxPayloadTransferSize=3000
Final streaming parms: hint=0x0 format=1 frame=1 frameInterval=2000000 keyFrameRate=0 pFrameRate=0 compQuality=0 compWindowSize=0 delay=0 maxVideoFrameSize=614400 maxPayloadTransferSize=3000

The first line are the values you set in the program, to connect the camera. (Initial streaming parms)

The second line are the values from the camera, which the camera returned from your values.

And in the third line are the new saved and final values from the usb camera.

Output from the first Method: isoRead:

EOF frameLen=10436. --> For Example here a frame ends with a length of 10436 which is not 614400 as we expected from the control transfer, so you may have to change some values of your program to get a valid frame size.

Ads

Specifications