wlhe / uvc-gadget

enhance uvc-gadget test application
GNU General Public License v2.0
140 stars 143 forks source link

What does uvc_frame_info structure represent #9

Open sheraz045 opened 3 years ago

sheraz045 commented 3 years ago

Hi, I wanted to understand uvc_frame_info structure

struct uvc_frame_info { unsigned int width; unsigned int height; unsigned int intervals[8]; };

static const struct uvc_frame_info uvc_frames_yuyv[] = { { 640, 360, {666666, 10000000, 50000000, 0}, },

what does {666666, 10000000, 50000000, 0}, represent even though intervals has 8 values why only four are filled

kbingham commented 3 years ago

The intervals[8] represents a list of up to 8 possible frame intervals.

It's a value in 100ns units, but the '0' means the end of the list. So only the first three 'frame intervals' are valid.

sheraz045 commented 3 years ago

Okay So 666666 represents 15FPS ( 15 fps = 1 / 15 * 10 000 000 = 666 666 )

then what is fps for the below values 10000000, 50000000

kbingham commented 3 years ago

I believe so yes.

kbingham commented 3 years ago

That would make them 1 and ... 0.2 FPS ... So ... the values might all need validating 0.2 FPS would be one frame every 5 seconds ?

I guess that means a long exposure? ... Where are these values from ?

Aha, I see them being used here: https://github.com/wlhe/uvc-gadget/blob/743a050ee970d57e1cc4d8a4e0196a3c51ddc4b2/uvc-gadget.c#L122

sheraz045 commented 3 years ago

I wanted to test 60FPS for that changing the below line from {666666, 10000000, 50000000, 0}, to {166666, 10000000, 50000000, 0}, is this sufficient or any other change required

kbingham commented 3 years ago

Test it and see.

But this wlhe version of the code is quite old I think. There might be a lot of other factors to consider. Have you already got a successful stream set up?

sheraz045 commented 3 years ago

i am testing it, if you say it is quite old is there any new version of this code and i am working on Linux version 4.19.0

wlhe commented 3 years ago

i am testing it, if you say it is quite old is there any new version of this code and i am working on Linux version 4.19.0

Upstream repository latest version: https://git.ideasonboard.org/uvc-gadget.git