Re: [PATCH v5 00/39] i.MX Media Driver

From: Nicolas Dufresne
Date: Sun Mar 19 2017 - 11:00:28 EST


Le dimanche 19 mars 2017 Ã 00:54 +0000, Russell King - ARM Linux a
ÃcritÂ:
> >
> > In practice, I have the impression there is a fair reason why
> > framerate
> > enumeration isn't implemented (considering there is only 1 valid
> > rate).
>
> That's actually completely incorrect.
>
> With the capture device interfacing directly with CSI, it's possible
> _today_ to select:
>
> * the CSI sink pad's resolution
> * the CSI sink pad's resolution with the width and/or height halved
> * the CSI sink pad's frame rate
> * the CSI sink pad's frame rate divided by the frame drop factor
>
> To put it another way, these are possible:
>
> # v4l2-ctl -d /dev/video10 --list-formats-ext
> ioctl: VIDIOC_ENUM_FMT
> ÂÂÂÂÂÂÂ IndexÂÂÂÂÂÂ : 0
> ÂÂÂÂÂÂÂ TypeÂÂÂÂÂÂÂ : Video Capture
> ÂÂÂÂÂÂÂ Pixel Format: 'RGGB'
> ÂÂÂÂÂÂÂ NameÂÂÂÂÂÂÂ : 8-bit Bayer RGRG/GBGB
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Size: Discrete 816x616
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Interval: Discrete 0.040s (25.000 fps)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Interval: Discrete 0.048s (20.833 fps)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Interval: Discrete 0.050s (20.000 fps)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Interval: Discrete 0.053s (18.750 fps)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Interval: Discrete 0.060s (16.667 fps)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Interval: Discrete 0.067s (15.000 fps)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Interval: Discrete 0.080s (12.500 fps)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Interval: Discrete 0.100s (10.000 fps)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Interval: Discrete 0.120s (8.333 fps)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Interval: Discrete 0.160s (6.250 fps)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Interval: Discrete 0.200s (5.000 fps)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Interval: Discrete 0.240s (4.167 fps)
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Size: Discrete 408x616
> <same intervals>
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Size: Discrete 816x308
> <same intervals>
> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Size: Discrete 408x308
> <same intervals>
>
> These don't become possible as a result of implementing the enums,
> they're all already requestable through /dev/video10.

Ok that wasn't clear. So basically video9 is a front-end to video10,
and it does not proxy the enumerations. I understand this is what you
are now fixing. And this has to be fixed, because I can image cases
where the front-end could support only a subset of the sub-dev. So
having userspace enumerate on another device (and having to find this
device by walking the tree) is unlikely to work in all scenarios.

regards,
Nicolas

p.s. This is why caps negotiation is annoyingly complex in GStreamer,
specially that there is no shortcut, you connect pads, and they figure-
out what format they will use between each other.

Attachment: signature.asc
Description: This is a digitally signed message part