Inconsistence bytes per frames when moving from RG10 to Y10 format in device-tree

Dear Forum, CC @Honey_Patouceul,

I followed the relevant discussion in order to stream Y10 data captured by the V4l2 command :

$  v4l2-ctl --list-formats-ext -d /dev/video0
ioctl: VIDIOC_ENUM_FMT
	Type: Video Capture

	[0]: 'Y10 ' (10-bit Greyscale)
		Size: Discrete 1456x1088
			Interval: Discrete 0.017s (60.000 fps)
		Size: Discrete 1280x720
			Interval: Discrete 0.011s (90.000 fps)
		Size: Discrete 728x544
			Interval: Discrete 0.008s (121.000 fps)

$ v4l2-ctl --set-fmt-video=width=1456,height=1088,pixelformat='Y10 ' --stream-mmap -d /dev/video0 --set-ctrl bypass_mode=0 --stream-count=100 --stream-to=test.Y10
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 60.38 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

$ ls -l test.Y10 
-rw-rw-r-- 1 nvidia nvidia 334233600 Thg 6  30 12:19 test.Y10

So far, the blocksize should be = 1456 * 1088 * 2 = 3168256, however it was 3342336 = 334233600/100 = 1536 * 1088 * 2.

I am using the IMX296 sensor, and modifying from its RG10 format to Y10 format as below :

                                        mclk_khz = "54000";
                                        num_lanes = "1";
                                        tegra_sinterface = "serial_b";
                                        phy_mode = "DPHY";
                                        discontinuous_clk = "no";
                                        dpcm_enable = "false";
                                        cil_settletime = "0";
                                        lane_polarity = "0";
                                        active_w = "1456";
                                        active_h = "1088";

                                        dynamic_pixel_bit_depth = "10";
                                        csi_pixel_bit_depth = "10";
--                                      mode_type = "bayer";
--                                      pixel_phase = "rggb";
++                                    mode_type = "raw";
++                                    pixel_phase = "y10";

                                        readout_orientation = "0";
                                        line_length = "1760";
                                        inherent_gain = "1";
//                                      pix_clk_hz = "118800000";
                                        pix_clk_hz = "134400000";

                                        gain_factor = "10";
                                        min_gain_val = "0"; /* 0dB */
                                        max_gain_val = "480"; /* 48dB */
                                        step_gain_val = "1"; /* 0.1*/
                                        default_gain = "0";
                                        min_hdr_ratio = "1";
                                        max_hdr_ratio = "64";
                                        framerate_factor = "1000000";
                                        min_framerate = "1500000"; /* 1.5 */
                                        max_framerate = "60000000"; /* 60 */
                                        step_framerate = "1";
                                        default_framerate= "60000000";
                                        exposure_factor = "1000000";
                                        min_exp_time = "28";  /* us */
                                        max_exp_time = "660000"; /* us */
                                        step_exp_time = "1";
                                        default_exp_time = "10000";/* us */
                                        embedded_metadata_height = "2";

Could you suggest why there’s difference in bytes per frame, please ?

Best Regards,
Khang

Hi again, I just found out that the 80 bytes (= 1536 - 1456) is actually the meta data of the sensor.

So it seem that I cannot use the gstreamer command (with format=GRAY16_LE) to re-stream the captured file.

To update, I was able to visualize the capture data with 7yuv tool using the temporary width =1536:

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