[libcamera-devel] RockPi 4 and imx219 video sensor capture

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Feb 19 16:58:18 CET 2020


Hi Helen,

On 18/02/2020 20:46, Helen Koike wrote:
> Hi,
> 
> 
> On 12/12/19 1:15 AM, Show Liu wrote:
>> Hi Andrey,
>>
>>
>> On Thu, Dec 12, 2019 at 7:11 AM Andrey Konovalov <andrey.konovalov at linaro.org <mailto:andrey.konovalov at linaro.org>> wrote:
>>
>>     Hi Joacim,
>>
>>     On 12.12.2019 01:45, Helen Koike wrote:
>>     > Hi Joacim,
>>     >
>>     > On 12/11/19 3:14 PM, Joacim Zetterling wrote:
>>     >> Hi!
>>     >>
>>     >> My name is Joacim Zetterling and I'm following Your work of the Rockchip ISP implementation with a big interest (having a project involving a RockPi 4 and the imx219 camera sensor).
>>     >> And I'm hopping You have some time to answer some questions?
>>     >
>>     > Sure
>>     >
>>     >>
>>     >> I have an own buildroot system with mainline u-boot and Your kernel branch for the RKISP (v12), modified the buildroot with Your libcamera package and an own implementation of the imx219 driver (based on the mainline version).
>>
>>     Show,
>>
>>     You've got the same hardware configuration (RockPi 4 plus imx219) working for you, right?
>>
>> Yes, It's work fine for me. And I use Helen's kernel branch as well.
>> In my case, I use
>> $ cam -l 
>> To make sure if the camera available or not.
>> then
>> $ qcam -s width=640,height=480
>> to have camera preview on the monitor.
>>  
>>
>>     Did you use RKISP v12 or v11?
>>
>> I still in v11. 
>>
>>     The imx219 driver was almost the same as https://patchwork.linuxtv.org/patch/60635/ (the patch submitted upstream has few minor
>>     changes added).
>>
>>     Thanks,
>>     Andrey
> 
> I just pushed a branch that works on top of mainline kernel and imx219.
> libcamera patches are also upstreamed.
> 
> In case it is useful: https://gitlab.collabora.com/koike/linux/tree/rockchip/isp/rpicamv2
> 
> Tested with:
>     cam -c "imx219 4-0010" -C --file="/tmp/libcamframe#.data" -s width=1280,height=960
> 
> Files viewed with:
>     ffplay -f rawvideo -pixel_format nv12 -video_size 1280x960 /tmp/libcamframe-000048.data
> 
> Images are a bit dark and greenish though, I get the same with Scarlet, but not with ov5647.
> I was hoping that 3A would solve this, but it could be a regression (to be verified).

Dark and green would indeed match my experience with the imx219 when 3A
is unavailable.

It should be possible to manually tweak the exposure and white balance -
but its' fiddly :-D


If we can parse the relevant metadata from the ISP, hopefully we can
soon get to work on some 3a algos for the RK3399.

--
Kieran



> Regards,
> Helen
> 
>>
>>     >> Every seems OK, ISP, driver, camera etc. but I can not capture any correct images and is hopping You can give me some hints. I'm usually only working with network drivers and switches ;-).
>>     >>
>>     >> I've posted some logs down below in the mail.
>>     >>
>>     >> Some questions!
>>     >> How did You test the ISP+driver? With libcam/cam for the ov5647?
>>     >
>>     > I'm streaming with libcamera
>>     >
>>     > cam -c "ov5647 4-0036" -C --file="/tmp/libcamframe#.data" -s width=1280,height=960
>>     >
>>     > And viewing the files with:
>>     >
>>     > ffplay -loglevel warning -v info -f rawvideo -pixel_format nv12 -video_size 1280x960 nfsshare/arm64_rootfs/tmp/libcamframe-000013.data
>>     >
>>     > You need to patch libcamera, the branch I was using was this one:
>>     > https://gitlab.collabora.com/koike/libcamera.git
>>     >
>>     > I have a more up-to-date version, but for some reason I can't push to my repo (probably some silly local setting error), but it should work with the current one.
>>     >
>>     >
>>     >> Can You use v4l2-ctl or media-ctl to capture images in Your system?
>>     >
>>     > Yes
>>     >
>>     >> Do You have examples of v4l2-ctl or media-ctl sequences?
>>     >
>>     > # Sensor
>>     > --------
>>     > v4l2-ctl --set-subdev-fmt pad=0,width=1280,height=960,code=0x3001 -d /dev/v4l-subdev1
>>     >
>>     > root at rockpi:~# v4l2-ctl --get-subdev-fmt 0 -d /dev/v4l-subdev1
>>     > ioctl: VIDIOC_SUBDEV_G_FMT (pad=0)
>>     >          Width/Height      : 1280/960
>>     >          Mediabus Code     : 0x3001 (MEDIA_BUS_FMT_SBGGR8_1X8)
>>     >          Field             : None
>>     >          Colorspace        : Default
>>     >          Transfer Function : Default (maps to Rec. 709)
>>     >          YCbCr/HSV Encoding: Default (maps to ITU-R 601)
>>     >          Quantization      : Default (maps to Full Range)
>>     >
>>     > # ISP
>>     > --------
>>     > v4l2-ctl --set-subdev-fmt pad=0,width=1280,height=960,code=0x3001 -d /dev/v4l-subdev0
>>     > v4l2-ctl --set-subdev-fmt pad=2,width=800,height=600,code=0x2008 -d /dev/v4l-subdev0
>>     >
>>     > v4l2-ctl --get-subdev-fmt 0 -d /dev/v4l-subdev0
>>     > ioctl: VIDIOC_SUBDEV_G_FMT (pad=0)
>>     >          Width/Height      : 1280/960
>>     >          Mediabus Code     : 0x3001 (MEDIA_BUS_FMT_SBGGR8_1X8)
>>     >          Field             : None
>>     >          Colorspace        : Default
>>     >          Transfer Function : Default (maps to Rec. 709)
>>     >          YCbCr/HSV Encoding: Default (maps to ITU-R 601)
>>     >          Quantization      : Default (maps to Full Range)
>>     >
>>     >
>>     > v4l2-ctl --get-subdev-fmt 2 -d /dev/v4l-subdev0
>>     > ioctl: VIDIOC_SUBDEV_G_FMT (pad=2)
>>     >          Width/Height      : 800/600
>>     >          Mediabus Code     : 0x2008 (MEDIA_BUS_FMT_YUYV8_2X8)
>>     >          Field             : None
>>     >          Colorspace        : Default
>>     >          Transfer Function : Default (maps to Rec. 709)
>>     >          YCbCr/HSV Encoding: Default (maps to ITU-R 601)
>>     >          Quantization      : Full Range
>>     >
>>     > # Main capture
>>     > --------------
>>     >
>>     > v4l2-ctl -v width=1280,height=960,pixelformat=NV12 -d /dev/video1
>>     >
>>     > v4l2-ctl -V -d /dev/video1
>>     > Format Video Capture Multiplanar:
>>     >          Width/Height      : 1280/960
>>     >          Pixel Format      : 'NV12' (Y/CbCr 4:2:0)
>>     >          Field             : None
>>     >          Number of planes  : 1
>>     >          Flags             :
>>     >          Colorspace        : Default
>>     >          Transfer Function : Default
>>     >          YCbCr/HSV Encoding: Default
>>     >          Quantization      : Full Range
>>     >          Plane 0           :
>>     >             Bytes per Line : 1280
>>     >             Size Image     : 1843200
>>     >
>>     > # Stream
>>     > ---------
>>     > v4l2-ctl --stream-mmap --stream-count=10 -d /dev/video1 --stream-to=/tmp/test.raw
>>     > ffplay -loglevel warning -v info -f rawvideo -pixel_format nv12 -video_size "1280x960" /tmp/test.raw
>>     >
>>     >
>>     > NOTE: there is a bug setting the format on pad 2 in the ISP (fix is wip), but it should work anyway.
>>     >
>>     >
>>     >> What kind of system are You using?
>>     >
>>     > I'm using a Debian through nfs
>>     >
>>     >>
>>     >> If You need any help of investigate or test, I'm gladly to help You! ;-)
>>     >
>>     > Thanks!
>>     >
>>     >>
>>     >> Regards!
>>     >> /Joacim
>>     >>
>>     >> #########################################################
>>     >> Log of a running session:
>>     >> #########################################################
>>     >>
>>     >> U-Boot 2020.01-rc4 (Dec 11 2019 - 09:19:21 +0100)
>>     >>
>>     >> Model: Radxa ROCK Pi 4
>>     >> DRAM:  3.9 GiB
>>     >> PMIC:  RK808
>>     >> MMC:   dwmmc at fe320000: 1, sdhci at fe330000: 0
>>     >> Loading Environment from MMC... Card did not respond to voltage select!
>>     >> *** Warning - No block device, using default environment
>>     >>
>>     >> In:    serial at ff1a0000
>>     >> Out:   serial at ff1a0000
>>     >> Err:   serial at ff1a0000
>>     >> Model: Radxa ROCK Pi 4
>>     >> rockchip_dnl_key_pressed: adc_channel_single_shot fail!
>>     >> Net:   eth0: ethernet at fe300000
>>     >> Hit any key to stop autoboot:  0
>>     >> Card did not respond to voltage select!
>>     >> switch to partitions #0, OK
>>     >> mmc1 is current device
>>     >> Scanning mmc 1:4...
>>     >> Found /extlinux/extlinux.conf
>>     >> Retrieving file: /extlinux/extlinux.conf
>>     >> 290 bytes read in 11 ms (25.4 KiB/s)
>>     >> 1:      kernel-mainline
>>     >> Retrieving file: /Image
>>     >> 26155520 bytes read in 1802 ms (13.8 MiB/s)
>>     >> append: earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 coherent_pool=1m earlyprintk console=ttyS2,1500000n8 video=HDMI-A-1:12
>>     >> 80x1024 at 60 root=/dev/mmcblk1p5 rootwait rw rootfstype=ext4 init=/sbin/init ipv6.disable=1 loglevel=9
>>     >> Retrieving file: /rk3399-rock-pi-4.dtb
>>     >> 54919 bytes read in 17 ms (3.1 MiB/s)
>>     >> ## Flattened Device Tree blob at 01f00000
>>     >>     Booting using the fdt blob at 0x1f00000
>>     >>     Loading Device Tree to 00000000f5f14000, end 00000000f5f24686 ... OK
>>     >>
>>     >> Starting kernel ...
>>     >>
>>     >> [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
>>     >> [    0.000000] Linux version 5.4.0-rc1 (joaze at wsevst-c0022) (gcc version 8.3.0 (Buildroot 2020.02-git-00280-gaf42fc988e-dirt
>>     >> y)) #1 SMP PREEMPT Wed Dec 11 09:18:01 CET 2019
>>     >> [    0.000000] Machine model: Radxa ROCK Pi 4
>>     >> [    0.000000] earlycon: uart8250 at MMIO32 0x00000000ff1a0000 (options '')
>>     >> [    0.000000] printk: bootconsole [uart8250] enabled
>>     >> [    0.000000] efi: Getting EFI parameters from FDT:
>>     >> [    0.000000] efi: UEFI not found.
>>     >> [    0.000000] cma: Reserved 32 MiB at 0x00000000f6000000
>>     >> [    0.000000] NUMA: No NUMA configuration found
>>     >> [    0.000000] NUMA: Faking a node at [mem 0x0000000000200000-0x00000000f7ffffff]
>>     >> [    0.000000] NUMA: NODE_DATA [mem 0xf57e0800-0xf57e1fff]
>>     >> [    0.000000] Zone ranges:
>>     >> [    0.000000]   DMA32    [mem 0x0000000000200000-0x00000000f7ffffff]
>>     >> [    0.000000]   Normal   empty
>>     >> [    0.000000] Movable zone start for each node
>>     >> [    0.000000] Early memory node ranges
>>     >> [    0.000000]   node   0: [mem 0x0000000000200000-0x00000000f7ffffff]
>>     >> [    0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000000f7ffffff]
>>     >> [    0.000000] On node 0 totalpages: 1015296
>>     >> [    0.000000]   DMA32 zone: 15864 pages used for memmap
>>     >> [    0.000000]   DMA32 zone: 0 pages reserved
>>     >> [    0.000000]   DMA32 zone: 1015296 pages, LIFO batch:63
>>     >> [    0.000000] psci: probing for conduit method from DT.
>>     >> [    0.000000] psci: PSCIv1.0 detected in firmware.
>>     >> [    0.000000] psci: Using standard PSCI v0.2 function IDs
>>     >> [    0.000000] psci: Trusted OS migration not required
>>     >> [    0.000000] psci: SMC Calling Convention v1.0
>>     >> [    0.000000] percpu: Embedded 22 pages/cpu s52952 r8192 d28968 u90112
>>     >> [    0.000000] pcpu-alloc: s52952 r8192 d28968 u90112 alloc=22*4096
>>     >> [    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [0] 4 [0] 5
>>     >> [    0.000000] Detected VIPT I-cache on CPU0
>>     >> [    0.000000] CPU features: detected: ARM erratum 845719
>>     >> [    0.000000] CPU features: detected: GIC system register CPU interface
>>     >> [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 999432
>>     >> [    0.000000] Policy zone: DMA32
>>     >> [    0.000000] Kernel command line: earlycon=uart8250,mmio32,0xff1a0000 swiotlb=1 coherent_pool=1m earlyprintk console=ttyS2
>>     >> ,1500000n8 video=HDMI-A-1:1280x1024 at 60 root=/dev/mmcblk1p5 rootwait rw rootfstype=ext4 init=/sbin/init ipv6.disable=1 loglev
>>     >> el=9
>>     >> ...
>>     >> ...
>>     >> ...
>>     >> #
>>     >> #
>>     >> # media-ctl -p -d /dev/media0
>>     >> Media controller API version 5.4.0
>>     >>
>>     >> Media device information
>>     >> ------------------------
>>     >> driver          rkisp1
>>     >> model           rkisp1
>>     >> serial
>>     >> bus info        platform: rkisp1
>>     >> hw revision     0x0
>>     >> driver version  5.4.0
>>     >>
>>     >> Device topology
>>     >> - entity 1: rkisp1-isp-subdev (4 pads, 5 links)
>>     >>              type V4L2 subdev subtype Unknown flags 0
>>     >>              device node name /dev/v4l-subdev0
>>     >>          pad0: Sink
>>     >>                  [fmt:SRGGB10_1X10/800x600 field:none
>>     >>                   crop.bounds:(0,0)/800x600
>>     >>                   crop:(0,0)/800x600]
>>     >>                  <- "imx219 4-0010":0 [ENABLED]
>>     >>          pad1: Sink
>>     >>                  [fmt:FIXED/800x600 field:none]
>>     >>                  <- "rkisp1-input-params":0 [ENABLED]
>>     >>          pad2: Source
>>     >>                  [fmt:YUYV8_2X8/800x600 field:none
>>     >>                   crop.bounds:(0,0)/800x600
>>     >>                   crop:(0,0)/800x600]
>>     >>                  -> "rkisp1_mainpath":0 [ENABLED]
>>     >>                  -> "rkisp1_selfpath":0 [ENABLED]
>>     >>          pad3: Source
>>     >>                  [fmt:FIXED/800x600 field:none]
>>     >>                  -> "rkisp1-statistics":0 [ENABLED]
>>     >>
>>     >> - entity 6: rkisp1_selfpath (1 pad, 1 link)
>>     >>              type Node subtype V4L flags 0
>>     >>              device node name /dev/video0
>>     >>          pad0: Sink
>>     >>                  <- "rkisp1-isp-subdev":2 [ENABLED]
>>     >>
>>     >> - entity 10: rkisp1_mainpath (1 pad, 1 link)
>>     >>               type Node subtype V4L flags 0
>>     >>               device node name /dev/video1
>>     >>          pad0: Sink
>>     >>                  <- "rkisp1-isp-subdev":2 [ENABLED]
>>     >>
>>     >> - entity 14: rkisp1-statistics (1 pad, 1 link)
>>     >>               type Node subtype V4L flags 0
>>     >>               device node name /dev/video2
>>     >>          pad0: Sink
>>     >>                  <- "rkisp1-isp-subdev":3 [ENABLED]
>>     >>
>>     >> - entity 18: rkisp1-input-params (1 pad, 1 link)
>>     >>               type Node subtype V4L flags 0
>>     >>               device node name /dev/video3
>>     >>          pad0: Source
>>     >>                  -> "rkisp1-isp-subdev":1 [ENABLED]
>>     >>
>>     >> - entity 22: imx219 4-0010 (1 pad, 1 link)
>>     >>               type V4L2 subdev subtype Sensor flags 0
>>     >>               device node name /dev/v4l-subdev1
>>     >>          pad0: Source
>>     >>                  [fmt:SBGGR10_1X10/1920x1080 at 10000/300000 field:none]
>>     >>                  -> "rkisp1-isp-subdev":0 [ENABLED]
>>     >> #
>>     >> # v4l2-ctl -d /dev/video0 --all
>>     >> Driver Info:
>>     >>          Driver name      : rkisp1
>>     >>          Card type        : rkisp1
>>     >>          Bus info         : platform: rkisp1
>>     >>          Driver version   : 5.4.0
>>     >>          Capabilities     : 0x84201000
>>     >>                  Video Capture Multiplanar
>>     >>                  Streaming
>>     >>                  Extended Pix Format
>>     >>                  Device Capabilities
>>     >>          Device Caps      : 0x04201000
>>     >>                  Video Capture Multiplanar
>>     >>                  Streaming
>>     >>                  Extended Pix Format
>>     >> Media Driver Info:
>>     >>          Driver name      : rkisp1
>>     >>          Model            : rkisp1
>>     >>          Serial           :
>>     >>          Bus info         : platform: rkisp1
>>     >>          Media version    : 5.4.0
>>     >>          Hardware revision: 0x00000000 (0)
>>     >>          Driver version   : 5.4.0
>>     >> Interface Info:
>>     >>          ID               : 0x03000007
>>     >>          Type             : V4L Video
>>     >> Entity Info:
>>     >>          ID               : 0x00000006 (6)
>>     >>          Name             : rkisp1_selfpath
>>     >>          Function         : V4L2 I/O
>>     >>          Pad 0x01000009   : 0: Sink
>>     >>            Link 0x0200001e: from remote pad 0x1000004 of entity 'rkisp1-isp-subdev': Data, Enabled
>>     >> Priority: 2
>>     >> Format Video Capture Multiplanar:
>>     >>          Width/Height      : 800/600
>>     >>          Pixel Format      : 'YUYV' (YUYV 4:2:2)
>>     >>          Field             : None
>>     >>          Number of planes  : 1
>>     >>          Flags             :
>>     >>          Colorspace        : Default
>>     >>          Transfer Function : Default
>>     >>          YCbCr/HSV Encoding: Default
>>     >>          Quantization      : Full Range
>>     >>          Plane 0           :
>>     >>             Bytes per Line : 1600
>>     >>             Size Image     : 960000
>>     >> #
>>     >> # v4l2-ctl -d /dev/v4l-subdev1 --all
>>     >> Priority: 0
>>     >> Frequency for tuner 0: 0 (0.000000 MHz)
>>     >> Tuner 0:
>>     >>          Name                 :
>>     >>          Type                 : unknown
>>     >>          Capabilities         : 62.5 kHz
>>     >>          Frequency range      : 0.000 MHz - 0.000 MHz
>>     >>          Signal strength/AFC  : 0%/0
>>     >>          Current audio mode   : mono
>>     >>          Available subchannels:
>>     >> Modulator 0:
>>     >>          Name                 :
>>     >>          Type                 : unknown
>>     >>          Capabilities         : 62.5 kHz
>>     >>          Frequency range      : 0.0 MHz - 0.0 MHz
>>     >>          Subchannel modulation:
>>     >> Video input : 0 (: ok)
>>     >> Video output: 0 ()
>>     >> Audio input : 0 ()
>>     >> Audio output: 0 ()
>>     >> Format Video Capture:
>>     >>          Width/Height      : 0/0
>>     >>          Pixel Format      : '' ()
>>     >>          Field             : Any
>>     >>          Bytes per Line    : 0
>>     >>          Size Image        : 0
>>     >>          Colorspace        : Default
>>     >>          Transfer Function : Default (maps to Rec. 709)
>>     >>          YCbCr/HSV Encoding: Default (maps to ITU-R 601)
>>     >>          Quantization      : Default (maps to Full Range)
>>     >> Format Video Output:
>>     >>          Width/Height      : 0/0
>>     >>          Pixel Format      : '' ()
>>     >>          Field             : Any
>>     >>          Bytes per Line    : 0
>>     >>          Size Image        : 0
>>     >>          Colorspace        : Default
>>     >>          Transfer Function : Default (maps to Rec. 709)
>>     >>          YCbCr/HSV Encoding: Default (maps to ITU-R 601)
>>     >>          Quantization      : Default (maps to Full Range)
>>     >> Format Video Output Overlay:
>>     >>          Left/Top    : 0/0
>>     >>          Width/Height: 0/0
>>     >>          Field       : Any
>>     >>          Chroma Key  : 0x00000000
>>     >>          Global Alpha: 0x00
>>     >>          Clip Count  : 0
>>     >>          Clip Bitmap : Yes, 0 bits of 0 are set
>>     >> Framebuffer Format:
>>     >>          Capability    :
>>     >>          Flags         :
>>     >>          Width         : 0
>>     >>          Height        : 0
>>     >>          Pixel Format  : ''
>>     >>          Bytes per Line: 0
>>     >>          Size image    : 0
>>     >>          Colorspace    : Default
>>     >> Format Sliced VBI Capture:
>>     >>          Service Set    :
>>     >>          Service Line  0:          /
>>     >>          Service Line  1:          /
>>     >>          Service Line  2:          /
>>     >>          Service Line  3:          /
>>     >>          Service Line  4:          /
>>     >>          Service Line  5:          /
>>     >>          Service Line  6:          /
>>     >>          Service Line  7:          /
>>     >>          Service Line  8:          /
>>     >>          Service Line  9:          /
>>     >>          Service Line 10:          /
>>     >>          Service Line 11:          /
>>     >>          Service Line 12:          /
>>     >>          Service Line 13:          /
>>     >>          Service Line 14:          /
>>     >>          Service Line 15:          /
>>     >>          Service Line 16:          /
>>     >>          Service Line 17:          /
>>     >>          Service Line 18:          /
>>     >>          Service Line 19:          /
>>     >>          Service Line 20:          /
>>     >>          Service Line 21:          /
>>     >>          Service Line 22:          /
>>     >>          Service Line 23:          /
>>     >>          I/O Size       : 0
>>     >> Format Sliced VBI Output:
>>     >>          Service Set    :
>>     >>          Service Line  0:          /
>>     >>          Service Line  1:          /
>>     >>          Service Line  2:          /
>>     >>          Service Line  3:          /
>>     >>          Service Line  4:          /
>>     >>          Service Line  5:          /
>>     >>          Service Line  6:          /
>>     >>          Service Line  7:          /
>>     >>          Service Line  8:          /
>>     >>          Service Line  9:          /
>>     >>          Service Line 10:          /
>>     >>          Service Line 11:          /
>>     >>          Service Line 12:          /
>>     >>          Service Line 13:          /
>>     >>          Service Line 14:          /
>>     >>          Service Line 15:          /
>>     >>          Service Line 16:          /
>>     >>          Service Line 17:          /
>>     >>          Service Line 18:          /
>>     >>          Service Line 19:          /
>>     >>          Service Line 20:          /
>>     >>          Service Line 21:          /
>>     >>          Service Line 22:          /
>>     >>          Service Line 23:          /
>>     >>          I/O Size       : 0
>>     >> Format VBI Capture:
>>     >>          Sampling Rate   : 0 Hz
>>     >>          Offset          : 0 samples (nan secs after leading edge)
>>     >>          Samples per Line: 0
>>     >>          Sample Format   : ''
>>     >>          Start 1st Field : 0
>>     >>          Count 1st Field : 0
>>     >>          Start 2nd Field : 0
>>     >>          Count 2nd Field : 0
>>     >> Format VBI Output:
>>     >>          Sampling Rate   : 0 Hz
>>     >>          Offset          : 0 samples (nan secs after leading edge)
>>     >>          Samples per Line: 0
>>     >>          Sample Format   : ''
>>     >>          Start 1st Field : 0
>>     >>          Count 1st Field : 0
>>     >>          Start 2nd Field : 0
>>     >>          Count 2nd Field : 0
>>     >> Format SDR Capture:
>>     >>          Sample Format   : '' ()
>>     >>          Buffer Size     : 0
>>     >> Format SDR Output:
>>     >>          Sample Format   : '' ()
>>     >>          Buffer Size     : 0
>>     >> Format Metadata Capture:
>>     >>          Sample Format   : '' ()
>>     >>          Buffer Size     : 0
>>     >> Format Metadata Output:
>>     >>          Sample Format   : '' ()
>>     >>          Buffer Size     : 0
>>     >> Crop Capability Video Capture:
>>     >>          Bounds      : Left 0, Top 0, Width 0, Height 0
>>     >>          Default     : Left 0, Top 0, Width 0, Height 0
>>     >>          Pixel Aspect: 0/0
>>     >> Crop Capability Video Output:
>>     >>          Bounds      : Left 0, Top 0, Width 0, Height 0
>>     >>          Default     : Left 0, Top 0, Width 0, Height 0
>>     >>          Pixel Aspect: 0/0
>>     >> Selection Video Capture: crop, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: crop_default, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: crop_bounds, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: compose, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: compose_default, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: compose_bounds, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: compose_padded, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: native_size, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: crop, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: crop_default, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: crop_bounds, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: compose, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: compose_default, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: compose_bounds, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: compose_padded, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: native_size, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> JPEG compression:
>>     >>          Quality: 0
>>     >>          Markers: 0x00000000
>>     >> Streaming Parameters Video Capture:
>>     >>          Frames per second: invalid (0/0)
>>     >>          Read buffers     : 0
>>     >> Streaming Parameters Video Output:
>>     >>          Frames per second: invalid (0/0)
>>     >>          Write buffers    : 0
>>     >>
>>     >> User Controls
>>     >>
>>     >>                         exposure 0x00980911 (int)    : min=0 max=4095 step=1 default=1575 value=1575 flags=volatile
>>     >>                     digital_gain 0x00980913 (int)    : min=256 max=43663 step=1 default=256 value=256 flags=volatile
>>     >>                  horizontal_flip 0x00980914 (bool)   : default=0 value=0
>>     >>                    vertical_flip 0x00980915 (bool)   : default=0 value=0
>>     >>
>>     >> Image Source Controls
>>     >>
>>     >>                vertical_blanking 0x009e0901 (int)    : min=686 max=686 step=1 default=686 value=686
>>     >>              horizontal_blanking 0x009e0902 (int)    : min=1524 max=1524 step=1 default=1524 value=1524
>>     >>                      analog_gain 0x009e0903 (int)    : min=256 max=2816 step=1 default=512 value=512 flags=volatile
>>     >>
>>     >> Image Processing Controls
>>     >>
>>     >>                   link_frequency 0x009f0901 (intmenu): min=0 max=0 default=0 value=0
>>     >>                                  0: 456000000 (0x1b2e0200)
>>     >>                       pixel_rate 0x009f0902 (int64)  : min=0 max=182463120 step=1 default=182463120 value=182463120 flags=rea
>>     >> d-only
>>     >>                     test_pattern 0x009f0903 (menu)   : min=0 max=13 default=0 value=0
>>     >>                                  0: Disabled
>>     >>                                  1: Solid Black
>>     >>                                  2: Solid White
>>     >>                                  3: Solid Red
>>     >>                                  4: Solid Green
>>     >>                                  5: Solid Blue
>>     >>                                  6: Color Bar
>>     >>                                  7: Fade to Grey Color Bar
>>     >>                                  8: PN9
>>     >>                                  9: 16 Split Color Bar
>>     >>                                  10: 16 Split Inverted Color Bar
>>     >>                                  11: Column Counter
>>     >>                                  12: Inverted Column Counter
>>     >>                                  13: PN31
>>     >> # cam -c "imx219 4-0010" -C --file="frame#.data" -s width=1280,height=720,pixelformat=7
>>     >> Using camera imx219 4-0010
>>     >> Camera configuration adjusted
>>     >> [0:06:35.214317519]  INFO Camera camera.cpp:654 configuring streams: (0) 1280x720-0x3231564e
>>     >> [0:06:36.220371770]   ERR V4L2 v4l2_videodevice.cpp:935 /dev/video1[cap]: Failed to queue buffer 2: Input/output error
>>     >
>>     > hmm, I need to take a better look.
>>     > Also, I'll see if I can get a rpi camera v2 to test this.
>>     >
>>     > btw, I have a WIP branch (with a bunch of non-ready things, tests, todos, and temporary commits), but is the one I'm
>>     > constantly testing, in case you want to check:
>>     >
>>     > https://gitlab.collabora.com/koike/linux/tree/rockchip/isp/v12
>>     >
>>     > Let me know if the commands above work or not.
>>     >
>>     > Thanks
>>     > Helen
>>     >
>>     >> Can't queue request
>>     >> #
>>     >> # media-ctl -d /dev/media0 --set-v4l2 '"imx219 4-0010":0[fmt:SBGGR10_1X10/2592x1944]'
>>     >> # media-ctl -d /dev/media0 --set-v4l2 '"rkisp1-isp-subdev":0[fmt:SBGGR10_1X10/2592x1944]'
>>     >> # media-ctl -d /dev/media0 --set-v4l2 '"rkisp1-isp-subdev":0[crop:(0,0)/2592x1944]'
>>     >> # media-ctl -d /dev/media0 --set-v4l2 '"rkisp1-isp-subdev":2[fmt:YUYV8_2X8/2592x1944]'
>>     >> # media-ctl -d /dev/media0 --set-v4l2 '"rkisp1-isp-subdev":2[crop:(0,0)/2592x1944]'
>>     >> # v4l2-ctl -d /dev/video0 --set-selection=target=crop,top=336,left=432,width=1920,height=1080 --set-fmt-video=width=1280,height=720,pixelformat=NV21 --stream-mmap=3 --stream-to=mp_yuv.out --stream-count=1 --stream-poll
>>     >> VIDIOC_G_SELECTION: failed: Invalid argument
>>     >> select timeout
>>     >> #
>>     >> # media-ctl -p -d /dev/media0
>>     >> Media controller API version 5.4.0
>>     >>
>>     >> Media device information
>>     >> ------------------------
>>     >> driver          rkisp1
>>     >> model           rkisp1
>>     >> serial
>>     >> bus info        platform: rkisp1
>>     >> hw revision     0x0
>>     >> driver version  5.4.0
>>     >>
>>     >> Device topology
>>     >> - entity 1: rkisp1-isp-subdev (4 pads, 5 links)
>>     >>              type V4L2 subdev subtype Unknown flags 0
>>     >>              device node name /dev/v4l-subdev0
>>     >>          pad0: Sink
>>     >>                  [fmt:SBGGR10_1X10/2592x1944 field:none
>>     >>                   crop.bounds:(0,0)/2592x1944
>>     >>                   crop:(0,0)/2592x1944]
>>     >>                  <- "imx219 4-0010":0 [ENABLED]
>>     >>          pad1: Sink
>>     >>                  [fmt:FIXED/800x600 field:none]
>>     >>                  <- "rkisp1-input-params":0 []
>>     >>          pad2: Source
>>     >>                  [fmt:YUYV8_2X8/2592x1944 field:none
>>     >>                   crop.bounds:(0,0)/2592x1944
>>     >>                   crop:(0,0)/2592x1944]
>>     >>                  -> "rkisp1_mainpath":0 [ENABLED]
>>     >>                  -> "rkisp1_selfpath":0 []
>>     >>          pad3: Source
>>     >>                  [fmt:FIXED/800x600 field:none]
>>     >>                  -> "rkisp1-statistics":0 []
>>     >>
>>     >> - entity 6: rkisp1_selfpath (1 pad, 1 link)
>>     >>              type Node subtype V4L flags 0
>>     >>              device node name /dev/video0
>>     >>          pad0: Sink
>>     >>                  <- "rkisp1-isp-subdev":2 []
>>     >>
>>     >> - entity 10: rkisp1_mainpath (1 pad, 1 link)
>>     >>               type Node subtype V4L flags 0
>>     >>               device node name /dev/video1
>>     >>          pad0: Sink
>>     >>                  <- "rkisp1-isp-subdev":2 [ENABLED]
>>     >>
>>     >> - entity 14: rkisp1-statistics (1 pad, 1 link)
>>     >>               type Node subtype V4L flags 0
>>     >>               device node name /dev/video2
>>     >>          pad0: Sink
>>     >>                  <- "rkisp1-isp-subdev":3 []
>>     >>
>>     >> - entity 18: rkisp1-input-params (1 pad, 1 link)
>>     >>               type Node subtype V4L flags 0
>>     >>               device node name /dev/video3
>>     >>          pad0: Source
>>     >>                  -> "rkisp1-isp-subdev":1 []
>>     >>
>>     >> - entity 22: imx219 4-0010 (1 pad, 1 link)
>>     >>               type V4L2 subdev subtype Sensor flags 0
>>     >>               device node name /dev/v4l-subdev1
>>     >>          pad0: Source
>>     >>                  [fmt:SBGGR10_1X10/3280x2464 at 10000/210000 field:none]
>>     >>                  -> "rkisp1-isp-subdev":0 [ENABLED]
>>     >>
>>     >> # v4l2-ctl -d /dev/video0 --all
>>     >> Driver Info:
>>     >>          Driver name      : rkisp1
>>     >>          Card type        : rkisp1
>>     >>          Bus info         : platform: rkisp1
>>     >>          Driver version   : 5.4.0
>>     >>          Capabilities     : 0x84201000
>>     >>                  Video Capture Multiplanar
>>     >>                  Streaming
>>     >>                  Extended Pix Format
>>     >>                  Device Capabilities
>>     >>          Device Caps      : 0x04201000
>>     >>                  Video Capture Multiplanar
>>     >>                  Streaming
>>     >>                  Extended Pix Format
>>     >> Media Driver Info:
>>     >>          Driver name      : rkisp1
>>     >>          Model            : rkisp1
>>     >>          Serial           :
>>     >>          Bus info         : platform: rkisp1
>>     >>          Media version    : 5.4.0
>>     >>          Hardware revision: 0x00000000 (0)
>>     >>          Driver version   : 5.4.0
>>     >> Interface Info:
>>     >>          ID               : 0x03000007
>>     >>          Type             : V4L Video
>>     >> Entity Info:
>>     >>          ID               : 0x00000006 (6)
>>     >>          Name             : rkisp1_selfpath
>>     >>          Function         : V4L2 I/O
>>     >>          Pad 0x01000009   : 0: Sink
>>     >>            Link 0x0200001e: from remote pad 0x1000004 of entity 'rkisp1-isp-subdev': Data
>>     >> Priority: 2
>>     >> Format Video Capture Multiplanar:
>>     >>          Width/Height      : 1280/720
>>     >>          Pixel Format      : 'NV21' (Y/CrCb 4:2:0)
>>     >>          Field             : None
>>     >>          Number of planes  : 1
>>     >>          Flags             :
>>     >>          Colorspace        : Default
>>     >>          Transfer Function : Default
>>     >>          YCbCr/HSV Encoding: Default
>>     >>          Quantization      : Full Range
>>     >>          Plane 0           :
>>     >>             Bytes per Line : 1280
>>     >>             Size Image     : 1382400
>>     >> # v4l2-ctl -d /dev/v4l-subdev1 --all
>>     >> Priority: 0
>>     >> Frequency for tuner 0: 0 (0.000000 MHz)
>>     >> Tuner 0:
>>     >>          Name                 :
>>     >>          Type                 : unknown
>>     >>          Capabilities         : 62.5 kHz
>>     >>          Frequency range      : 0.000 MHz - 0.000 MHz
>>     >>          Signal strength/AFC  : 0%/0
>>     >>          Current audio mode   : mono
>>     >>          Available subchannels:
>>     >> Modulator 0:
>>     >>          Name                 :
>>     >>          Type                 : unknown
>>     >>          Capabilities         : 62.5 kHz
>>     >>          Frequency range      : 0.0 MHz - 0.0 MHz
>>     >>          Subchannel modulation:
>>     >> Video input : 0 (: ok)
>>     >> Video output: 0 ()
>>     >> Audio input : 0 ()
>>     >> Audio output: 0 ()
>>     >> Format Video Capture:
>>     >>          Width/Height      : 0/0
>>     >>          Pixel Format      : '' ()
>>     >>          Field             : Any
>>     >>          Bytes per Line    : 0
>>     >>          Size Image        : 0
>>     >>          Colorspace        : Default
>>     >>          Transfer Function : Default (maps to Rec. 709)
>>     >>          YCbCr/HSV Encoding: Default (maps to ITU-R 601)
>>     >>          Quantization      : Default (maps to Full Range)
>>     >> Format Video Output:
>>     >>          Width/Height      : 0/0
>>     >>          Pixel Format      : '' ()
>>     >>          Field             : Any
>>     >>          Bytes per Line    : 0
>>     >>          Size Image        : 0
>>     >>          Colorspace        : Default
>>     >>          Transfer Function : Default (maps to Rec. 709)
>>     >>          YCbCr/HSV Encoding: Default (maps to ITU-R 601)
>>     >>          Quantization      : Default (maps to Full Range)
>>     >> Format Video Output Overlay:
>>     >>          Left/Top    : 0/0
>>     >>          Width/Height: 0/0
>>     >>          Field       : Any
>>     >>          Chroma Key  : 0x00000000
>>     >>          Global Alpha: 0x00
>>     >>          Clip Count  : 0
>>     >>          Clip Bitmap : Yes, 0 bits of 0 are set
>>     >> Framebuffer Format:
>>     >>          Capability    :
>>     >>          Flags         :
>>     >>          Width         : 0
>>     >>          Height        : 0
>>     >>          Pixel Format  : ''
>>     >>          Bytes per Line: 0
>>     >>          Size image    : 0
>>     >>          Colorspace    : Default
>>     >> Format Sliced VBI Capture:
>>     >>          Service Set    :
>>     >>          Service Line  0:          /
>>     >>          Service Line  1:          /
>>     >>          Service Line  2:          /
>>     >>          Service Line  3:          /
>>     >>          Service Line  4:          /
>>     >>          Service Line  5:          /
>>     >>          Service Line  6:          /
>>     >>          Service Line  7:          /
>>     >>          Service Line  8:          /
>>     >>          Service Line  9:          /
>>     >>          Service Line 10:          /
>>     >>          Service Line 11:          /
>>     >>          Service Line 12:          /
>>     >>          Service Line 13:          /
>>     >>          Service Line 14:          /
>>     >>          Service Line 15:          /
>>     >>          Service Line 16:          /
>>     >>          Service Line 17:          /
>>     >>          Service Line 18:          /
>>     >>          Service Line 19:          /
>>     >>          Service Line 20:          /
>>     >>          Service Line 21:          /
>>     >>          Service Line 22:          /
>>     >>          Service Line 23:          /
>>     >>          I/O Size       : 0
>>     >> Format Sliced VBI Output:
>>     >>          Service Set    :
>>     >>          Service Line  0:          /
>>     >>          Service Line  1:          /
>>     >>          Service Line  2:          /
>>     >>          Service Line  3:          /
>>     >>          Service Line  4:          /
>>     >>          Service Line  5:          /
>>     >>          Service Line  6:          /
>>     >>          Service Line  7:          /
>>     >>          Service Line  8:          /
>>     >>          Service Line  9:          /
>>     >>          Service Line 10:          /
>>     >>          Service Line 11:          /
>>     >>          Service Line 12:          /
>>     >>          Service Line 13:          /
>>     >>          Service Line 14:          /
>>     >>          Service Line 15:          /
>>     >>          Service Line 16:          /
>>     >>          Service Line 17:          /
>>     >>          Service Line 18:          /
>>     >>          Service Line 19:          /
>>     >>          Service Line 20:          /
>>     >>          Service Line 21:          /
>>     >>          Service Line 22:          /
>>     >>          Service Line 23:          /
>>     >>          I/O Size       : 0
>>     >> Format VBI Capture:
>>     >>          Sampling Rate   : 0 Hz
>>     >>          Offset          : 0 samples (nan secs after leading edge)
>>     >>          Samples per Line: 0
>>     >>          Sample Format   : ''
>>     >>          Start 1st Field : 0
>>     >>          Count 1st Field : 0
>>     >>          Start 2nd Field : 0
>>     >>          Count 2nd Field : 0
>>     >> Format VBI Output:
>>     >>          Sampling Rate   : 0 Hz
>>     >>          Offset          : 0 samples (nan secs after leading edge)
>>     >>          Samples per Line: 0
>>     >>          Sample Format   : ''
>>     >>          Start 1st Field : 0
>>     >>          Count 1st Field : 0
>>     >>          Start 2nd Field : 0
>>     >>          Count 2nd Field : 0
>>     >> Format SDR Capture:
>>     >>          Sample Format   : '' ()
>>     >>          Buffer Size     : 0
>>     >> Format SDR Output:
>>     >>          Sample Format   : '' ()
>>     >>          Buffer Size     : 0
>>     >> Format Metadata Capture:
>>     >>          Sample Format   : '' ()
>>     >>          Buffer Size     : 0
>>     >> Format Metadata Output:
>>     >>          Sample Format   : '' ()
>>     >>          Buffer Size     : 0
>>     >> Crop Capability Video Capture:
>>     >>          Bounds      : Left 0, Top 0, Width 0, Height 0
>>     >>          Default     : Left 0, Top 0, Width 0, Height 0
>>     >>          Pixel Aspect: 0/0
>>     >> Crop Capability Video Output:
>>     >>          Bounds      : Left 0, Top 0, Width 0, Height 0
>>     >>          Default     : Left 0, Top 0, Width 0, Height 0
>>     >>          Pixel Aspect: 0/0
>>     >> Selection Video Capture: crop, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: crop_default, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: crop_bounds, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: compose, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: compose_default, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: compose_bounds, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: compose_padded, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Capture: native_size, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: crop, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: crop_default, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: crop_bounds, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: compose, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: compose_default, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: compose_bounds, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: compose_padded, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> Selection Video Output: native_size, Left 0, Top 0, Width 0, Height 0, Flags:
>>     >> JPEG compression:
>>     >>          Quality: 0
>>     >>          Markers: 0x00000000
>>     >> Streaming Parameters Video Capture:
>>     >>          Frames per second: invalid (0/0)
>>     >>          Read buffers     : 0
>>     >> Streaming Parameters Video Output:
>>     >>          Frames per second: invalid (0/0)
>>     >>          Write buffers    : 0
>>     >>
>>     >> User Controls
>>     >>
>>     >>                         exposure 0x00980911 (int)    : min=0 max=4095 step=1 default=1575 value=1575 flags=volatile
>>     >>                     digital_gain 0x00980913 (int)    : min=256 max=43663 step=1 default=256 value=256 flags=volatile
>>     >>                  horizontal_flip 0x00980914 (bool)   : default=0 value=0
>>     >>                    vertical_flip 0x00980915 (bool)   : default=0 value=0
>>     >>
>>     >> Image Source Controls
>>     >>
>>     >>                vertical_blanking 0x009e0901 (int)    : min=36 max=36 step=1 default=36 value=686
>>     >>              horizontal_blanking 0x009e0902 (int)    : min=164 max=164 step=1 default=164 value=1524
>>     >>                      analog_gain 0x009e0903 (int)    : min=256 max=2816 step=1 default=512 value=512 flags=volatile
>>     >>
>>     >> Image Processing Controls
>>     >>
>>     >>                   link_frequency 0x009f0901 (intmenu): min=0 max=0 default=0 value=0
>>     >>                                  0: 456000000 (0x1b2e0200)
>>     >>                       pixel_rate 0x009f0902 (int64)  : min=180810000 max=180810000 step=1 default=180810000 value=182463120 f
>>     >> lags=read-only
>>     >>                     test_pattern 0x009f0903 (menu)   : min=0 max=13 default=0 value=0
>>     >>                                  0: Disabled
>>     >>                                  1: Solid Black
>>     >>                                  2: Solid White
>>     >>                                  3: Solid Red
>>     >>                                  4: Solid Green
>>     >>                                  5: Solid Blue
>>     >>                                  6: Color Bar
>>     >>                                  7: Fade to Grey Color Bar
>>     >>                                  8: PN9
>>     >>                                  9: 16 Split Color Bar
>>     >>                                  10: 16 Split Inverted Color Bar
>>     >>                                  11: Column Counter
>>     >>                                  12: Inverted Column Counter
>>     >>                                  13: PN31
>>     >> #
>>     >>
>>     >>
>>     > _______________________________________________
>>     > libcamera-devel mailing list
>>     > libcamera-devel at lists.libcamera.org <mailto:libcamera-devel at lists.libcamera.org>
>>     > https://lists.libcamera.org/listinfo/libcamera-devel
>>     >
>>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list