[PATCH v5 00/39] i.MX Media Driver
From: linux@armlinux.org.uk (Russell King - ARM Linux)
Date: 2017-03-19 01:07:38
Also in:
linux-devicetree, linux-media, lkml
On Sat, Mar 18, 2017 at 08:41:14PM -0400, Nicolas Dufresne wrote:
Le samedi 18 mars 2017 ? 20:43 +0000, Russell King - ARM Linux a ?crit?:quoted
On Sat, Mar 18, 2017 at 12:58:27PM -0700, Steve Longerbeam wrote:quoted
Can you share your gstreamer pipeline? For now, until VIDIOC_ENUM_FRAMESIZES is implemented, try a pipeline that does not attempt to specify a frame rate. I use the attached script for testing, which works for me.It's nothing more than ? gst-launch-1.0 -v v4l2src ! <any needed conversions> ! xvimagesink in my case, the conversions are bayer2rgbneon.? However, this only shows you the frame rate negotiated on the pads (which is actually good enough to show the issue.) How I stumbled across though this was when I was trying to encode: ?gst-launch-1.0 v4l2src device=/dev/video9 ! bayer2rgbneon ! \ ????????videoconvert ! x264enc speed-preset=1 ! avimux ! \ ????????filesink location=test.avi I noticed that vlc would always say it was playing the resulting AVI at 30fps.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.
--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.