Duplicated image with ISL79987 MIPI-CSI 2 driver in Jetson AGX Orin

Hi all,

As mentionned in my previous post we’re working on a bridge MIPI-CSI 2 driver for an ISL79987 video decoder for Jetson AGX Orin, we’re able to capture frames, but this latter are duplicated, and we are not having the correct colorimitery as shown in the screenshot below

We’ve set a ceil_settletime at 20 and we implemented the dv_timings as you can see in the logs below

uie82142@tslaqadu:~$ ssh conti@192.168.55.1
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.10.104-tegra aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.

269 updates can be applied immediately.
192 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable

Last login: Tue Dec 20 11:54:53 2022 from 192.168.55.10
conti@conti-desktop:~$ v4l2-ctl --all
Driver Info:
        Driver name      : tegra-video
        Card type        : vi-output, isl7998x 1-0045
        Bus info         : platform:tegra-capture-vi:1
        Driver version   : 5.10.104
        Capabilities     : 0x84200001
                Video Capture
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04200001
                Video Capture
                Streaming
                Extended Pix Format
Media Driver Info:
        Driver name      : tegra-camrtc-ca
        Model            : NVIDIA Tegra Video Input Device
        Serial           :
        Bus info         :
        Media version    : 5.10.104
        Hardware revision: 0x00000003 (3)
        Driver version   : 5.10.104
Interface Info:
        ID               : 0x0300000c
        Type             : V4L Video
Entity Info:
        ID               : 0x0000000a (10)
        Name             : vi-output, isl7998x 1-0045
        Function         : V4L2 I/O
        Pad 0x0100000b   : 0: Sink
          Link 0x02000010: from remote pad 0x1000003 of entity '13e40000.host1x:nvcsi@15a00000-': Data, Enabled
Priority: 2
Video input : 0 (Camera 1: no power)
DV timings:
        Active width: 720
        Active height: 480
        Total width: 858
        Total height: 525
        Frame format: interlaced
        Polarities: -vsync -hsync
        Pixelclock: 13500000 Hz (59.94 fields per second)
        Horizontal frontporch: 19
        Horizontal sync: 62
        Horizontal backporch: 57
        Field 1:
        Vertical frontporch: 4
        Vertical sync: 3
        Vertical backporch: 15
        Field 2:
        Vertical frontporch: 4
        Vertical sync: 3
        Vertical backporch: 16
        Standards: CTA-861
        Picture aspect: 4:3
        CTA-861 VIC: 6
        Flags: half-line, CE-video, has picture aspect, has CTA-861 VIC
Format Video Capture:
        Width/Height      : 720/480
        Pixel Format      : 'UYVY' (UYVY 4:2:2)
        Field             : Interlaced
        Bytes per Line    : 1440
        Size Image        : 1382400
        Colorspace        : sRGB
        Transfer Function : Rec. 709
        YCbCr/HSV Encoding: ITU-R 601
        Quantization      : Limited Range
        Flags             :

User Controls

          test_pattern_channels 0x00981a80 (int)    : min=0 max=15 step=1 default=15 value=15
             test_pattern_color 0x00981a81 (menu)   : min=0 max=3 default=0 value=0
                                0: Yellow
                                1: Blue
                                2: Green
                                3: Pink
              test_pattern_bars 0x00981a82 (menu)   : min=0 max=3 default=0 value=0
                                0: bbbbwb
                                1: bbbwwb
                                2: bbwbwb
                                3: bbwwwb

Camera Controls

           sensor_configuration 0x009a2032 (u32)    : min=0 max=4294967295 step=1 default=0 [22] flags=read-only, volatile, has-payload
         sensor_mode_i2c_packet 0x009a2033 (u32)    : min=0 max=4294967295 step=1 default=0 [1026] flags=read-only, volatile, has-payload
      sensor_control_i2c_packet 0x009a2034 (u32)    : min=0 max=4294967295 step=1 default=0 [1026] flags=read-only, volatile, has-payload
                    bypass_mode 0x009a2064 (intmenu): min=0 max=1 default=0 value=0
                                0: 0 (0x0)
                                1: 1 (0x1)
                override_enable 0x009a2065 (intmenu): min=0 max=1 default=0 value=0
                                0: 0 (0x0)
                                1: 1 (0x1)
                   height_align 0x009a2066 (int)    : min=1 max=16 step=1 default=1 value=1
                     size_align 0x009a2067 (intmenu): min=0 max=2 default=0 value=0
                                0: 1 (0x1)
                                1: 65536 (0x10000)
                                2: 131072 (0x20000)
               write_isp_format 0x009a2068 (int)    : min=1 max=1 step=1 default=1 value=1
       sensor_signal_properties 0x009a2069 (u32)    : min=0 max=4294967295 step=1 default=0 [30][18] flags=read-only, has-payload
        sensor_image_properties 0x009a206a (u32)    : min=0 max=4294967295 step=1 default=0 [30][16] flags=read-only, has-payload
      sensor_control_properties 0x009a206b (u32)    : min=0 max=4294967295 step=1 default=0 [30][36] flags=read-only, has-payload
              sensor_dv_timings 0x009a206c (u32)    : min=0 max=4294967295 step=1 default=0 [30][16] flags=read-only, has-payload
               low_latency_mode 0x009a206d (bool)   : default=0 value=0
               preferred_stride 0x009a206e (int)    : min=0 max=65535 step=1 default=0 value=0
                   sensor_modes 0x009a2082 (int)    : min=0 max=30 step=1 default=30 value=30 flags=read-only

Image Processing Controls

                 link_frequency 0x009f0901 (intmenu): min=0 max=2 default=0 value=0 flags=read-only
                                0: 108000000 (0x66ff300)
                                1: 216000000 (0xcdfe600)
                                2: 432000000 (0x19bfcc00)
                   test_pattern 0x009f0903 (menu)   : min=0 max=2 default=0 value=0
                                0: Disabled
                                1: PAL (720x576)
                                2: NTSC (720x480)

The CLI used to make a capture with gst-launch

 GST_DEBUG=1 gst-launch-1.0 -v v4l2src device=/dev/video0 ! 'video/x-raw,  width=(int)720, height=(int)480, framerate=(fraction)30/1 , interlace-mode=(string)interleaved' ! videoconvert ! deinterlace ! videoconvert ! xvimagesink -e


Thank you for your support

Could it be interlace or interleave output?
Have a try the nvv4l2camerasrc.

gst-launch-1.0 -e nvv4l2camerasrc ! 'video/x-raw(memory:NVMM), format=(string)UYVY, width=(int)720, height=(int)480, interlace-mode=interlaced, framerate=(fraction)30/1' ! nvdeinterlace mode=1 ! 'video/x-raw(memory:NVMM), format=(string)NV12' ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)UYVY, width=(int)640, height=(int)480, framerate=(fraction)60/1' ! nvdrmvideosink

thanks for your answer !
it can not found the nvdeinterlace plug-in. how to install it ?
thanks !

hey @ShaneCCC ,
I suspect that our device is sending YUV422 VYUY images with field order V4L2_FIELD_INTERLACED_BT.
but I think this is not supported by gstreamer v4l2src.
Do you know if it is supported by nvv4l2camerasrc ?
thanks !

Yes, suppose the output is interlace.
Current nvv4l2camerasrc doesn’t support deinterlace yet.
Could you try to save the image and play by some player that have deinterlaced supported.

Thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.