Open nirushka opened 9 months ago
Hello @nirushka
have you tried to insert an extra queue before the sink? gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=3904,height=3000,framerate=20/1' ! nvvidconv ! video/x-raw, width=1024, height=768, format=I420 ! queue ! xvimagesink
I've just tested this construct with L4T35.3.1 and IMX568. With the first try I've got this warning too. And with the additional queue, I got rid of the warning. It might be, that this warning could be the reason, since you're running an older L4T.
Hi, This is not a warning... it's an error. Same problem with a queue.
and even when I try: gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! fakesink I get this error.
Hi, any news about this topic?
This is my v4l-ctl --all output:
Driver Info: Driver name : tegra-video Card type : vi-output, vc_mipi 9-001a Bus info : platform:tegra-capture-vi:0 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 : 0x0300000b Type : V4L Video Entity Info: ID : 0x00000009 (9) Name : vi-output, vc_mipi 9-001a Function : V4L2 I/O Pad 0x0100000a : 0: Sink Link 0x0200000f: from remote pad 0x1000003 of entity '13e10000.host1x:nvcsi@15a00000-': Data, Enabled Priority: 2 Video input : 0 (Camera 0: no power) Format Video Capture: Width/Height : 3904/3000 Pixel Format : 'GB10' (10-bit Bayer GBGB/RGRG) Field : None Bytes per Line : 7808 Size Image : 23424000 Colorspace : sRGB Transfer Function : Default (maps to sRGB) YCbCr/HSV Encoding: Default (maps to ITU-R 601) Quantization : Default (maps to Full Range) Flags : Selection Video Capture: crop, Left 0, Top 0, Width 3904, Height 3000, Flags: Selection Video Output: crop, Left 0, Top 0, Width 3904, Height 3000, Flags:
Camera Controls
group_hold 0x009a2003 (bool) : default=0 value=0 flags=execute-on-write
sensor_mode 0x009a2008 (int64) : min=0 max=1 step=1 default=0 value=0 flags=slider
gain 0x009a2009 (int64) : min=0 max=27000 step=100 default=0 value=0 flags=slider
exposure 0x009a200a (int64) : min=1 max=1951310 step=1 default=10000 value=1 flags=slider
frame_rate 0x009a200b (int64) : min=0 max=60897 step=1 default=0 value=0 flags=slider
trigger_mode 0x009a200e (int) : min=0 max=7 step=1 default=0 value=0
io_mode 0x009a200f (int) : min=0 max=5 step=1 default=0 value=0
black_level 0x009a2010 (int) : min=0 max=100000 step=1 default=0 value=0
single_trigger 0x009a2011 (button) : flags=write-only, execute-on-write
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][18] 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=1 flags=read-only
Please see the output of Video input : 0 (Camera 0: no power). Camera Device tree:
/*
// ------------------------------------------------------------------------------------------------ // Driver Configuration for NVIDIA Jetson Xavier NX on NVIDIA Jetson Xavier NX Developer Kit // ------------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------------ // Supported number of lanes // -----+------------------------------------------------------------------------------------------ // 1 | OV7251, IMX296, IMX297 // 2 | OV9281, IMX264, IMX265 // 2,4 | IMX178, IMX183, IMX226, IMX250, IMX252, IMX273, IMX290, IMX327, IMX335, IMX392, // | IMX412, IMX415, IMX462, IMX565, IMX566, IMX567, IMX568 // -----+------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------------ // Embedded Metadata Height // -----+------------------------------------------------------------------------------------------ // 0 | IMX178, IMX183, IMX226, IMX250, IMX252, IMX264, IMX265, IMX273, IMX392, OV7251, OV9281 // 1 | IMX290, IMX327, IMX335, IMX415, IMX462 // 2 | IMX296, IMX297, IMX412 // 4 | IMX565, IMX566, IMX567, IMX568 // -----+------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------------ // Sensor Manufacturer // -----+------------------------------------------------------------------------------------------ // 1 | Sony Sensor (IMX) // 2 | Omni Vision Sensor (OV) // -----+------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------------ // GStreamer Support // ------------------------------------------------------------------------------------------------ // If you want to use GStreamer with nvarguscamerasrc you have to adjust this settings in the // device tree below. The sections which have to be modified are marked by a comment. // To find the correct parameter values please follow the instruction in the main README.md of // this repository https://github.com/VC-MIPI-modules/vc_mipi_nvidia#gstreamer-support // ------------------------------------------------------------------------------------------------
#define BUS_WIDTH 1
#define NUM_LANES "1"
#define NUM_CSI_LANES 2
#define BUS_WIDTH 2
#define NUM_LANES "2"
#define NUM_CSI_LANES 4
#define VC_MIPI_CAMERAS 2
#define VC_MIPI_CAMERAS 1
/ {
host1x {
vc_vi_base: vi@15c10000 {
tegra-capture-vi {
num-channels = <VC_MIPI_CAMERAS>;
ports {
#address-cells = <1>;
#size-cells = <0>;
vc_vi_port0: port@0 {
reg = <0>;
vc_vi_in0: endpoint {
port-index = <0>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&vc_csi_out0>;
};
};
vc_vi_port1: port@1 {
reg = <1>;
vc_vi_in1: endpoint {
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&vc_csi_out1>;
};
};
}; // ports
};
vc_csi_base: nvcsi@15a00000 {
host1x@13e00000 {
nvcsi@15a00000 {
num-channels = <VC_MIPI_CAMERAS>;
#address-cells = <1>;
#size-cells = <0>;
vc_csi_chan0: channel@0 {
reg = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
vc_csi_chan0_port0: port@0 {
reg = <0>;
vc_csi_in0: endpoint@0 {
port-index = <0>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&vc_mipi_out0>;
};
};
vc_csi_chan0_port1: port@1 {
reg = <1>;
vc_csi_out0: endpoint@1 {
remote-endpoint = <&vc_vi_in0>;
};
};
};
};
vc_csi_chan1: channel@1 {
reg = <1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
vc_csi_chan1_port0: port@0 {
reg = <0>;
vc_csi_in1: endpoint@2 {
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&vc_mipi_out1>;
};
};
vc_csi_chan1_port1: port@1 {
reg = <1>;
vc_csi_out1: endpoint@3 {
remote-endpoint = <&vc_vi_in1>;
};
};
};
};
};
};
};
cam_i2cmux {
i2c@0 {
vc_mipi_cam0: vc_mipi@1a {
reg = <0x1a>;
vc_mipi_cam0: vc_mipi@60 {
reg = <0x60>;
compatible = "nvidia,vc_mipi";
devnode = "video0";
use_sensor_mode_id = "false";
sensor_model = "vc_mipi";
num_lanes = NUM_LANES;
trigger_mode = "0";
io_mode = "0";
// ----------------------------------------------------
// If you want to use GStreamer with nvarguscamerasrc
// you have to adjust this settings
physical_w = "7.533";
physical_h = "5.635";
// ----------------------------------------------------
// This node is needed by the Tegra framework.
// You don't have to change any settings if just want to use the V4L API.
mode0 {
num_lanes = NUM_LANES;
tegra_sinterface = "serial_a";
embedded_metadata_height = VC_MIPI_METADATA_H;
readout_orientation = "0";
// ----------------------------------------------------
// If you want to use GStreamer with nvarguscamerasrc
// you have to adjust this settings.
active_l = "0";
active_t = "0";
active_w = "3904";
active_h = "3000";
pixel_t = "bayer_gbrg";
mode_type = "bayer";
pixel_phase = "gbrg";
csi_pixel_bit_depth = "10";
min_gain_val = "0"; // mdB
max_gain_val = "27000"; // mdB
step_gain_val = "100"; // mdB
default_gain = "0"; // mdB
min_exp_time = "1"; // us
max_exp_time = "1000000"; // us
step_exp_time = "1"; // us
default_exp_time = "10000"; // us
// For applications like argus_camera, there should
// be a minimal frame rate greater than zero!
min_framerate = "0"; // mHz
max_framerate = "43600"; // mHz
step_framerate = "100"; // mHz
default_framerate = "43600"; // mHz
// ----------------------------------------------------
gain_factor = "1000";
exposure_factor = "1000000";
framerate_factor = "1000";
inherent_gain = "1";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
line_length = "0";
phy_mode = "DPHY";
discontinuous_clk = "no";
mclk_khz = "24000";
pix_clk_hz = "800000000";
pix_clk_hz = "74250000";
mclk_multiplier = "9.33";
cil_settletime = "0";
dpcm_enable = "false";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
vc_mipi_out0: endpoint {
port-index = <0>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&vc_csi_in0>;
};
};
};
};
};
i2c@1 {
vc_mipi_cam1: vc_mipi@1a {
reg = <0x1a>;
vc_mipi_cam1: vc_mipi@60 {
reg = <0x60>;
compatible = "nvidia,vc_mipi";
devnode = "video1";
use_sensor_mode_id = "false";
sensor_model = "vc_mipi";
num_lanes = NUM_LANES;
trigger_mode = "0";
io_mode = "0";
// ----------------------------------------------------
// If you want to use GStreamer with nvarguscamerasrc
// you have to adjust this settings
physical_w = "7.535";
physical_h = "5.635";
// ----------------------------------------------------
// This node is needed by the Tegra framework.
// You don't have to change any settings if just want to use the V4L API.
mode0 {
num_lanes = NUM_LANES;
tegra_sinterface = "serial_c";
embedded_metadata_height = VC_MIPI_METADATA_H;
readout_orientation = "0";
// ----------------------------------------------------
// If you want to use GStreamer with nvarguscamerasrc
// you have to adjust this settings.
active_l = "0";
active_t = "0";
active_w = "3904";
active_h = "3000";
pixel_t = "bayer_gbrg";
mode_type = "bayer";
pixel_phase = "gbrg";
csi_pixel_bit_depth = "10";
min_gain_val = "0"; // mdB
max_gain_val = "27000"; // mdB
step_gain_val = "100"; // mdB
default_gain = "0"; // mdB
min_exp_time = "1"; // us
max_exp_time = "1000000"; // us
step_exp_time = "1"; // us
default_exp_time = "10000"; // us
// For applications like argus_camera, there should
// be a minimal frame rate greater than zero!
min_framerate = "0"; // mHz
max_framerate = "43600"; // mHz
step_framerate = "100"; // mHz
default_framerate = "43600"; // mHz
// ----------------------------------------------------
gain_factor = "1000";
exposure_factor = "1000000";
framerate_factor = "1000";
inherent_gain = "1";
min_hdr_ratio = "1";
max_hdr_ratio = "1";
line_length = "0";
phy_mode = "DPHY";
discontinuous_clk = "no";
mclk_khz = "24000";
pix_clk_hz = "800000000";
pix_clk_hz = "74250000";
mclk_multiplier = "9.33";
cil_settletime = "0";
dpcm_enable = "false";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
vc_mipi_out1: endpoint {
port-index = <2>;
bus-width = <BUS_WIDTH>;
remote-endpoint = <&vc_csi_in1>;
};
};
};
};
};
};
lens@vc_mipi {
min_focus_distance = "0.0";
hyper_focal = "0.0";
focal_length = "6.0";
f_number = "2.0";
aperture = "0.0";
};
};
/ { tcp: tegra-camera-platform { compatible = "nvidia, tegra-camera-platform";
num_csi_lanes = <NUM_CSI_LANES>;
max_lane_speed = <1500000>;
min_bits_per_pixel = <10>;
vi_peak_byte_per_pixel = <2>;
vi_bw_margin_pct = <25>;
max_pixel_rate = <240000>;
isp_peak_byte_per_pixel = <5>;
isp_bw_margin_pct = <25>;
modules {
cam_module0: module0 {
status = "okay";
badge = "jakku_front_vc_mipi";
position = "front";
orientation = "1";
cam_module0_drivernode0: drivernode0 {
status = "okay";
pcl_id = "v4l2_sensor";
devname = "vc_mipi 9-001a";
proc-device-tree = "/proc/device-tree/cam_i2cmux/i2c@0/vc_mipi@1a";
devname = "vc_mipi 9-0060";
proc-device-tree = "/proc/device-tree/cam_i2cmux/i2c@0/vc_mipi@60";
};
cam_module0_drivernode1: drivernode1 {
status = "okay";
pcl_id = "v4l2_lens";
proc-device-tree = "/proc/device-tree/lens@vc_mipi/";
};
};
cam_module1: module1 {
status = "okay";
badge = "jakku_rear_vc_mipi";
position = "rear";
orientation = "1";
cam_module1_drivernode0: drivernode0 {
status = "okay";
pcl_id = "v4l2_sensor";
devname = "vc_mipi 10-001a";
proc-device-tree = "/proc/device-tree/cam_i2cmux/i2c@1/vc_mipi@1a";
devname = "vc_mipi 10-0060";
proc-device-tree = "/proc/device-tree/cam_i2cmux/i2c@1/vc_mipi@60";
};
cam_module1_drivernode1: drivernode1 {
status = "okay";
pcl_id = "v4l2_lens";
proc-device-tree = "/proc/device-tree/lens@vc_mipi/";
};
};
};
};
};
/ { cam_i2cmux { status = "okay"; compatible = "i2c-mux-gpio";
#size-cells = <0>;
mux-gpios = <&tegra_aon_gpio CAM_I2C_MUX GPIO_ACTIVE_HIGH>;
i2c-parent = <&cam_i2c>;
i2c@0 {
status = "okay";
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
vc_mipi@1a {
vc_mipi@60 {
status = "okay";
reset-gpios = <&tegra_main_gpio CAM0_PWDN GPIO_ACTIVE_HIGH>;
};
};
i2c@1 {
status = "okay";
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
vc_mipi@1a {
vc_mipi@60 {
status = "okay";
reset-gpios = <&tegra_main_gpio CAM1_PWDN GPIO_ACTIVE_HIGH>;
};
};
};
gpio@2200000 {
camera-control-output-low {
gpio-hog;
output-low;
gpios = <CAM0_PWDN 0 CAM1_PWDN 0>;
label = "cam0-pwdn","cam1-pwdn";
};
};
};
Hello @nirushka ,
you have configured 2 lanes
but your frame rate is: max_framerate = "43600"; default_framerate = "43600";
I would try to change it to 2 lanes and 21800 mHz
I found out that this error occurs only if I connect via ssh -X. I tried to export display=:0 as many forums say but it didn't work. Any thoughts?
Hi,
I am using IMX226, with L4T 35.1.0
I get this error with the current pipeline: gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=3904,height=3000,framerate=20/1' ! nvvidconv ! video/x-raw, width=1024, height=768, format=I420 ! xvimagesink
Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... Setting pipeline to PLAYING ... New clock: GstSystemClock GST_ARGUS: Creating output stream (Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function initialize(), line 89) (Argus) Error BadParameter: (propagating from src/eglstream/FrameConsumerImpl.cpp, function create(), line 44) Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadInitialize:320 Failed to create FrameConsumer Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadFunction:241 (propagating) Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, waitRunning:203 Invalid thread state 3 Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:806 (propagating) WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: Pipeline construction is invalid, please add queues. Additional debug info: gstbasesink.c(1209): gst_base_sink_query_latency (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: Not enough buffering available for the processing deadline of 0:00:00.015000000, add enough queues to buffer 0:00:00.015000000 additional data. Shortening processing latency to 0:00:00.000000000. Got EOS from element "pipeline0". Execution ended after 0:00:00.330253389 Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... Freeing pipeline ...
with v4l2-ctl command: v4l2-ctl -d /dev/video0 --verbose --set-fmt-video=width=3904,height=3000,pixelformat=RG10 --stream-mmap everything works fine.