mavlink / mavlink-camera-manager

MAVLink Camera Manager Service
MIT License
103 stars 30 forks source link

MCM does not work with FLIR Boson on NXP IMX8MP #446

Open justas- opened 1 month ago

justas- commented 1 month ago

MCM fails to detect and configure video device exported by FLIR Boson camera connected over USB on a NXP IMX8MP system (/dev/video2).

Verified that streaming works with:

 /usr/bin/rtsp_examples/test-launch "v4l2src device=/dev/video3 ! video/x-raw, width=640, height=512, framerate=30/1 ! queue ! vpuenc_hevc ! rtph265pay name=pay0 pt=96" --port 8555

mcm console output:

root@ucm-imx8m-plus:/etc/mavlink-router# mavlink-camera-manager --mavlink=tcpout:127.0.0.1:5760 --verbose
2022-04-29T17:17:02.300102Z  INFO main ThreadId(01) src/logger/manager.rs:84: mavlink-camera-manager, version: 0.2.5-0323c25, build date: 2024-04-20
2022-04-29T17:17:02.300358Z  INFO main ThreadId(01) src/logger/manager.rs:91: Starting at 2022-04-29T17:17:02
2022-04-29T17:17:02.300420Z DEBUG main ThreadId(01) src/logger/manager.rs:95: Command line call: mavlink-camera-manager --mavlink=tcpout:127.0.0.1:5760 --verbose
2022-04-29T17:17:02.300481Z DEBUG main ThreadId(01) src/logger/manager.rs:96: Command line input struct call: Args {
    mavlink: "tcpout:127.0.0.1:5760",
    default_settings: None,
    reset: false,
    rest_server: "0.0.0.0:6020",
    stun_server: "stun://0.0.0.0:3478",
    signalling_server: "ws://0.0.0.0:6021",
    verbose: true,
    gst_feature_rank: [],
    log_path: Some(
        "./logs",
    ),
    enable_tracing_level_log_file: false,
    vehicle_ddns: None,
    enable_tracy: false,
    enable_thread_counter: false,
    enable_webrtc_task_test: None,
    mavlink_system_id: 1,
}
2022-04-29T17:17:02.300604Z DEBUG main ThreadId(01) src/settings/manager.rs:80: Using settings file: "/home/root/.config/mavlink-camera-manager/settings.json"
2022-04-29T17:17:02.301534Z DEBUG main ThreadId(01) init: src/stream/manager.rs:68: Starting video stream service.
2022-04-29T17:17:02.356751Z DEBUG main ThreadId(01) src/settings/manager.rs:166: Settings saved: ManagerStruct {
    file_name: "/home/root/.config/mavlink-camera-manager/settings.json",
    config: SettingsStruct {
        header: HeaderSettingsFile {
            name: "Camera Manager",
            version: 0,
        },
        mavlink_endpoint: "tcpout:127.0.0.1:5760",
        streams: [],
    },
}
2022-04-29T17:17:02.356989Z DEBUG main ThreadId(01) default: src/stream/webrtc/signalling_server.rs:70: Starting SignallingServer task...
2022-04-29T17:17:02.357468Z DEBUG tokio-runtime-worker ThreadId(10) src/stream/webrtc/signalling_server.rs:73: SignallingServer task started!
2022-04-29T17:17:02.357793Z DEBUG tokio-runtime-worker ThreadId(10) runner{endpoint=Url { scheme: "ws", cannot_be_a_base: false, username: "", password: None, host: Some(Ipv4(0.0.0.0)), port: Some(6021), path: "/", query: None, fragment: None }}: src/stream/webrtc/signalling_server.rs:98: Signalling server: listening on: 0.0.0.0:6021
2022-04-29T17:17:02.357939Z  WARN             v4l_wrap ThreadId(14) src/video/video_source_local.rs:738: Failed to capture formats for device: "/dev/video3". Reason: Os { code: 22, kind: InvalidInput, message: "Invalid argument" }
2022-04-29T17:17:02.476416Z  WARN                 main ThreadId(01) start_default: src/video/video_source_local.rs:85: msg="Unable to identify the local camera connection type, please report the problem: \"usb-xhci-hcd.2.auto-1\""
2022-04-29T17:17:02.483299Z  WARN                 main ThreadId(01) start_default: src/video/video_source_local.rs:85: msg="Unable to identify the local camera connection type, please report the problem: \"platform:vsi_v4l2dec\""
2022-04-29T17:17:02.487401Z  WARN             v4l_wrap ThreadId(17) src/video/video_source_local.rs:738: Failed to capture formats for device: "/dev/video0". Reason: Os { code: 22, kind: InvalidInput, message: "Invalid argument" }
2022-04-29T17:17:02.487796Z DEBUG                 main ThreadId(01) start_default: src/stream/manager.rs:140: Streams: []
2022-04-29T17:17:02.488584Z  INFO                 main ThreadId(01) /cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-server-2.3.0/src/builder.rs:240: starting 4 workers
2022-04-29T17:17:02.488689Z  INFO                 main ThreadId(01) /cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-server-2.3.0/src/server.rs:197: Tokio runtime found; starting in existing Tokio runtime
2022-04-29T17:17:03.302423Z DEBUG          MavReceiver ThreadId(13) receiver_loop:connect{address="tcpout:127.0.0.1:5760"}: src/mavlink/manager.rs:233: Connecting...
2022-04-29T17:17:03.302839Z  INFO          MavReceiver ThreadId(13) receiver_loop:connect{address="tcpout:127.0.0.1:5760"}: src/mavlink/manager.rs:237: Successfully connected
2022-04-29T17:17:26.149346Z  INFO actix-server worker 0 ThreadId(18) /cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-web-4.5.1/src/middleware/logger.rs:420: 192.168.85.10 "GET / HTTP/1.1" 200 20986 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0" 0.000353
2022-04-29T17:17:26.259657Z  INFO actix-server worker 0 ThreadId(18) /cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-web-4.5.1/src/middleware/logger.rs:420: 192.168.85.10 "GET /vue.js HTTP/1.1" 200 542311 "http://192.168.88.187:6020/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0" 0.066229
2022-04-29T17:17:26.312003Z  WARN              v4l_wrap ThreadId(23) src/video/video_source_local.rs:738: Failed to capture formats for device: "/dev/video3". Reason: Os { code: 22, kind: InvalidInput, message: "Invalid argument" }
2022-04-29T17:17:26.432092Z  WARN actix-server worker 0 ThreadId(18) HTTP request{http.method=GET http.route=/v4l http.flavor=1.1 http.scheme=http http.host=192.168.88.187:6020 http.client_ip=192.168.85.10 http.user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0 http.target=/v4l otel.name=HTTP GET /v4l otel.kind="server" request_id=fcada986-dce4-40ed-971c-2aa29b904bff}: src/video/video_source_local.rs:85: msg="Unable to identify the local camera connection type, please report the problem: \"usb-xhci-hcd.2.auto-1\""
2022-04-29T17:17:26.438745Z  WARN actix-server worker 0 ThreadId(18) HTTP request{http.method=GET http.route=/v4l http.flavor=1.1 http.scheme=http http.host=192.168.88.187:6020 http.client_ip=192.168.85.10 http.user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0 http.target=/v4l otel.name=HTTP GET /v4l otel.kind="server" request_id=fcada986-dce4-40ed-971c-2aa29b904bff}: src/video/video_source_local.rs:85: msg="Unable to identify the local camera connection type, please report the problem: \"platform:vsi_v4l2dec\""
2022-04-29T17:17:26.442496Z  WARN              v4l_wrap ThreadId(26) src/video/video_source_local.rs:738: Failed to capture formats for device: "/dev/video0". Reason: Os { code: 22, kind: InvalidInput, message: "Invalid argument" }
2022-04-29T17:17:26.443501Z ERROR actix-server worker 0 ThreadId(18) HTTP request{http.method=GET http.route=/v4l http.flavor=1.1 http.scheme=http http.host=192.168.88.187:6020 http.client_ip=192.168.85.10 http.user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0 http.target=/v4l otel.name=HTTP GET /v4l otel.kind="server" request_id=fcada986-dce4-40ed-971c-2aa29b904bff}: src/video/video_source_local.rs:601: Faield to get controls for device "/dev/video2": Os { code: 22, kind: InvalidInput, message: "Invalid argument" }
2022-04-29T17:17:26.446715Z  WARN              v4l_wrap ThreadId(30) src/video/video_source_local.rs:366: Failed to get framesizes from format Description { index: 0, typ: 1, flags: (empty), description: "Y/CbCr 4:2:0", fourcc: FourCC { repr: [78, 86, 49, 50] } } for device "/dev/video1": Os {
    code: 25,
    kind: Uncategorized,
    message: "Inappropriate ioctl for device",
}
2022-04-29T17:17:26.446890Z  WARN              v4l_wrap ThreadId(30) src/video/video_source_local.rs:366: Failed to get framesizes from format Description { index: 1, typ: 1, flags: (empty), description: "VSI DTRC", fourcc: FourCC { repr: [68, 84, 82, 67] } } for device "/dev/video1": Os {
    code: 25,
    kind: Uncategorized,
    message: "Inappropriate ioctl for device",
}
2022-04-29T17:17:26.446960Z  WARN              v4l_wrap ThreadId(30) src/video/video_source_local.rs:366: Failed to get framesizes from format Description { index: 2, typ: 1, flags: (empty), description: "P010", fourcc: FourCC { repr: [80, 48, 49, 48] } } for device "/dev/video1": Os {
    code: 25,
    kind: Uncategorized,
    message: "Inappropriate ioctl for device",
}
2022-04-29T17:17:26.447024Z  WARN              v4l_wrap ThreadId(30) src/video/video_source_local.rs:366: Failed to get framesizes from format Description { index: 3, typ: 1, flags: (empty), description: "NV12 10Bit", fourcc: FourCC { repr: [78, 86, 88, 50] } } for device "/dev/video1": Os {
    code: 25,
    kind: Uncategorized,
    message: "Inappropriate ioctl for device",
}
2022-04-29T17:17:26.447090Z  WARN              v4l_wrap ThreadId(30) src/video/video_source_local.rs:366: Failed to get framesizes from format Description { index: 4, typ: 1, flags: (empty), description: "DTRC 10Bit", fourcc: FourCC { repr: [68, 84, 82, 88] } } for device "/dev/video1": Os {
    code: 25,
    kind: Uncategorized,
    message: "Inappropriate ioctl for device",
}
thread 'v4l_wrap' panicked at /cargo/registry/src/index.crates.io-6f17d22bba15001f/v4l-0.14.0/src/control.rs:172:45:
called `Result::unwrap()` on an `Err` value: ()
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2022-04-29T17:17:26.451648Z ERROR actix-server worker 0 ThreadId(18) HTTP request{http.method=GET http.route=/v4l http.flavor=1.1 http.scheme=http http.host=192.168.88.187:6020 http.client_ip=192.168.85.10 http.user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0 http.target=/v4l otel.name=HTTP GET /v4l otel.kind="server" request_id=fcada986-dce4-40ed-971c-2aa29b904bff}: src/video/video_source_local.rs:37: v4l API failed with: Some("called `Result::unwrap()` on an `Err` value: ()")
thread 'actix-server worker 0' panicked at src/video/video_source_local.rs:38:10:
called `Result::unwrap()` on an `Err` value: Any { .. }
2022-04-29T17:17:26.467638Z  WARN              v4l_wrap ThreadId(33) src/video/video_source_local.rs:738: Failed to capture formats for device: "/dev/video3". Reason: Os { code: 22, kind: InvalidInput, message: "Invalid argument" }
2022-04-29T17:17:26.470535Z  WARN actix-server worker 1 ThreadId(19) HTTP request{http.method=GET http.route=/v4l http.flavor=1.1 http.scheme=http http.host=192.168.88.187:6020 http.client_ip=192.168.85.10 http.user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0 http.target=/v4l otel.name=HTTP GET /v4l otel.kind="server" request_id=69974fb3-1d33-4025-b3ae-39a43f84e49c}: src/video/video_source_local.rs:85: msg="Unable to identify the local camera connection type, please report the problem: \"usb-xhci-hcd.2.auto-1\""
2022-04-29T17:17:26.477128Z  WARN actix-server worker 1 ThreadId(19) HTTP request{http.method=GET http.route=/v4l http.flavor=1.1 http.scheme=http http.host=192.168.88.187:6020 http.client_ip=192.168.85.10 http.user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0 http.target=/v4l otel.name=HTTP GET /v4l otel.kind="server" request_id=69974fb3-1d33-4025-b3ae-39a43f84e49c}: src/video/video_source_local.rs:85: msg="Unable to identify the local camera connection type, please report the problem: \"platform:vsi_v4l2dec\""
2022-04-29T17:17:26.480659Z  WARN              v4l_wrap ThreadId(36) src/video/video_source_local.rs:738: Failed to capture formats for device: "/dev/video0". Reason: Os { code: 22, kind: InvalidInput, message: "Invalid argument" }
2022-04-29T17:17:26.481480Z ERROR actix-server worker 1 ThreadId(19) HTTP request{http.method=GET http.route=/v4l http.flavor=1.1 http.scheme=http http.host=192.168.88.187:6020 http.client_ip=192.168.85.10 http.user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0 http.target=/v4l otel.name=HTTP GET /v4l otel.kind="server" request_id=69974fb3-1d33-4025-b3ae-39a43f84e49c}: src/video/video_source_local.rs:601: Faield to get controls for device "/dev/video2": Os { code: 22, kind: InvalidInput, message: "Invalid argument" }
thread 'v4l_wrap' panicked at /cargo/registry/src/index.crates.io-6f17d22bba15001f/v4l-0.14.0/src/control.rs:172:45:
called `Result::unwrap()` on an `Err` value: ()
2022-04-29T17:17:26.485272Z ERROR actix-server worker 1 ThreadId(19) HTTP request{http.method=GET http.route=/v4l http.flavor=1.1 http.scheme=http http.host=192.168.88.187:6020 http.client_ip=192.168.85.10 http.user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0 http.target=/v4l otel.name=HTTP GET /v4l otel.kind="server" request_id=69974fb3-1d33-4025-b3ae-39a43f84e49c}: src/video/video_source_local.rs:37: v4l API failed with: Some("called `Result::unwrap()` on an `Err` value: ()")
thread 'actix-server worker 1' panicked at src/video/video_source_local.rs:38:10:
called `Result::unwrap()` on an `Err` value: Any { .. }
2022-04-29T17:17:26.521674Z  WARN              v4l_wrap ThreadId(43) src/video/video_source_local.rs:738: Failed to capture formats for device: "/dev/video3". Reason: Os { code: 22, kind: InvalidInput, message: "Invalid argument" }
2022-04-29T17:17:26.524556Z  WARN actix-server worker 2 ThreadId(20) HTTP request{http.method=GET http.route=/v4l http.flavor=1.1 http.scheme=http http.host=192.168.88.187:6020 http.client_ip=192.168.85.10 http.user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0 http.target=/v4l otel.name=HTTP GET /v4l otel.kind="server" request_id=f447a1af-c753-4841-b7a9-145edb0fba58}: src/video/video_source_local.rs:85: msg="Unable to identify the local camera connection type, please report the problem: \"usb-xhci-hcd.2.auto-1\""
2022-04-29T17:17:26.530651Z  WARN actix-server worker 2 ThreadId(20) HTTP request{http.method=GET http.route=/v4l http.flavor=1.1 http.scheme=http http.host=192.168.88.187:6020 http.client_ip=192.168.85.10 http.user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0 http.target=/v4l otel.name=HTTP GET /v4l otel.kind="server" request_id=f447a1af-c753-4841-b7a9-145edb0fba58}: src/video/video_source_local.rs:85: msg="Unable to identify the local camera connection type, please report the problem: \"platform:vsi_v4l2dec\""
2022-04-29T17:17:26.534225Z  WARN              v4l_wrap ThreadId(46) src/video/video_source_local.rs:738: Failed to capture formats for device: "/dev/video0". Reason: Os { code: 22, kind: InvalidInput, message: "Invalid argument" }
2022-04-29T17:17:26.535079Z ERROR actix-server worker 2 ThreadId(20) HTTP request{http.method=GET http.route=/v4l http.flavor=1.1 http.scheme=http http.host=192.168.88.187:6020 http.client_ip=192.168.85.10 http.user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0 http.target=/v4l otel.name=HTTP GET /v4l otel.kind="server" request_id=f447a1af-c753-4841-b7a9-145edb0fba58}: src/video/video_source_local.rs:601: Faield to get controls for device "/dev/video2": Os { code: 22, kind: InvalidInput, message: "Invalid argument" }
thread 'v4l_wrap' panicked at /cargo/registry/src/index.crates.io-6f17d22bba15001f/v4l-0.14.0/src/control.rs:172:45:
called `Result::unwrap()` on an `Err` value: ()
2022-04-29T17:17:26.538857Z ERROR actix-server worker 2 ThreadId(20) HTTP request{http.method=GET http.route=/v4l http.flavor=1.1 http.scheme=http http.host=192.168.88.187:6020 http.client_ip=192.168.85.10 http.user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0 http.target=/v4l otel.name=HTTP GET /v4l otel.kind="server" request_id=f447a1af-c753-4841-b7a9-145edb0fba58}: src/video/video_source_local.rs:37: v4l API failed with: Some("called `Result::unwrap()` on an `Err` value: ()")
thread 'actix-server worker 2' panicked at src/video/video_source_local.rs:38:10:
called `Result::unwrap()` on an `Err` value: Any { .. }

Video devices in the system:

root@ucm-imx8m-plus:~# ls -lah /dev/video*
crw-rw---- 1 root video 81, 0 Apr 28 17:42 /dev/video0
crw-rw---- 1 root video 81, 1 Apr 28 17:42 /dev/video1
crw-rw---- 1 root video 81, 2 Apr 29 16:47 /dev/video2
crw-rw---- 1 root video 81, 3 Apr 29 16:47 /dev/video3

v4l2 details:

root@ucm-imx8m-plus:~# v4l2-ctl --list-devices --all
vsi_v4l2dec (platform:vsi_v4l2dec):
        /dev/video1

vsi_v4l2enc (platform:vsi_v4l2enc):
        /dev/video0

Boson: FLIR Video (usb-xhci-hcd.2.auto-1):
        /dev/video2
        /dev/video3
        /dev/media0

Driver Info:
        Driver name      : vsi_v4l2
        Card type        : vsi_v4l2enc
        Bus info         : platform:vsi_v4l2enc
        Driver version   : 5.15.71
        Capabilities     : 0x84204000
                Video Memory-to-Memory Multiplanar
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04204000
                Video Memory-to-Memory Multiplanar
                Streaming
                Extended Pix Format
Priority: 2
Format Video Capture Multiplanar:
        Width/Height      : 320/240
        Pixel Format      : 'HEVC' (HEVC)
        Field             : None
        Number of planes  : 1
        Flags             :
        Colorspace        : Default
        Transfer Function : Default
        YCbCr/HSV Encoding: Default
        Quantization      : Default
        Plane 0           :
           Bytes per Line : 320
           Size Image     : 76800
Format Video Output Multiplanar:
        Width/Height      : 320/240
        Pixel Format      : 'NM12' (Y/CbCr 4:2:0 (N-C))
        Field             : None
        Number of planes  : 2
        Flags             :
        Colorspace        : Default
        Transfer Function : Default
        YCbCr/HSV Encoding: Default
        Quantization      : Default
        Plane 0           :
           Bytes per Line : 320
           Size Image     : 76800
        Plane 1           :
           Bytes per Line : 320
           Size Image     : 38400
Selection Video Output: crop, Left 0, Top 0, Width 320, Height 240, Flags:
Selection Video Output: crop_default, Left 0, Top 0, Width 320, Height 240, Flags:
Selection Video Output: crop_bounds, Left 0, Top 0, Width 320, Height 240, Flags:

User Controls

                         rotate 0x00980922 (int)    : min=0 max=270 step=90 default=0 value=0 flags=modify-layout
  min_number_of_capture_buffers 0x00980927 (int)    : min=1 max=16 step=1 default=1 value=1 flags=read-only, volatile
   min_number_of_output_buffers 0x00980928 (int)    : min=1 max=16 step=1 default=1 value=1 flags=read-only, volatile
      get_max_roi_region_number 0x009819b2 (int)    : min=0 max=8 step=1 default=0 value=8 flags=read-only, volatile
   vsi_priv_v4l2_roi_params_set 0x009819b3 (unknown): type=164 value=unsupported payload type flags=has-payload
     get_max_ipcm_region_number 0x009819b4 (int)    : min=0 max=2 step=1 default=0 value=2 flags=read-only, volatile
  vsi_priv_v4l2_ipcm_params_set 0x009819b5 (unknown): type=165 value=unsupported payload type flags=has-payload

Codec Controls

                 video_b_frames 0x009909ca (int)    : min=0 max=0 step=1 default=0 value=0 flags=update
                 video_gop_size 0x009909cb (int)    : min=1 max=2147483647 step=1 default=30 value=30
             video_bitrate_mode 0x009909ce (menu)   : min=0 max=1 default=0 value=0 (Variable Bitrate) flags=update
                                0: Variable Bitrate
                                1: Constant Bitrate
                  video_bitrate 0x009909cf (int)    : min=10000 max=288000000 step=1 default=2097152 value=2097152
frame_level_rate_control_enable 0x009909d7 (bool)   : default=0 value=0
           sequence_header_mode 0x009909d8 (menu)   : min=0 max=1 default=1 value=1 (Joined With 1st Frame)
                                0: Separate Buffer
                                1: Joined With 1st Frame
     h264_mb_level_rate_control 0x009909da (bool)   : default=0 value=0
       number_of_mbs_in_a_slice 0x009909dc (int)    : min=1 max=120 step=1 default=1 value=1
      slice_partitioning_method 0x009909dd (menu)   : min=0 max=1 default=0 value=0 (Single)
                                0: Single
                                1: Max Macroblocks
         repeat_sequence_header 0x009909e2 (bool)   : default=1 value=1
                force_key_frame 0x009909e5 (button) : value=0 flags=write-only, execute-on-write
          h264_i_frame_qp_value 0x00990a5e (int)    : min=-1 max=51 step=1 default=30 value=30
          h264_p_frame_qp_value 0x00990a5f (int)    : min=-1 max=51 step=1 default=30 value=30
          h264_b_frame_qp_value 0x00990a60 (int)    : min=-1 max=51 step=1 default=30 value=30
          h264_minimum_qp_value 0x00990a61 (int)    : min=0 max=51 step=1 default=0 value=0
          h264_maximum_qp_value 0x00990a62 (int)    : min=0 max=51 step=1 default=51 value=51
           h264_cpb_buffer_size 0x00990a64 (int)    : min=0 max=288000000 step=1 default=0 value=0
                     h264_level 0x00990a67 (menu)   : min=0 max=15 default=14 value=14 (5)
                                0: 1
                                1: 1b
                                2: 1.1
                                3: 1.2
                                4: 1.3
                                5: 2
                                6: 2.1
                                7: 2.2
                                8: 3
                                9: 3.1
                                10: 3.2
                                11: 4
                                12: 4.1
                                13: 4.2
                                14: 5
                                15: 5.1
                   h264_profile 0x00990a6b (menu)   : min=0 max=16 default=0 value=0 (Baseline)
                                0: Baseline
                                1: Constrained Baseline
                                2: Main
                                3: Extended
                                4: High
                                5: High 10
                                6: High 422
                                7: High 444 Predictive
                                8: High 10 Intra
                                9: High 422 Intra
                                10: High 444 Intra
                                11: CAVLC 444 Intra
                                12: Scalable Baseline
                                13: Scalable High
                                14: Scalable High Intra
                                15: Stereo High
                                16: Multiview High
    h264_chroma_qp_index_offset 0x00990a80 (int)    : min=-12 max=12 step=1 default=0 value=0
           vpx_minimum_qp_value 0x00990afb (int)    : min=0 max=127 step=1 default=0 value=0
           vpx_maximum_qp_value 0x00990afc (int)    : min=0 max=127 step=1 default=127 value=127
           vpx_i_frame_qp_value 0x00990afd (int)    : min=-1 max=127 step=1 default=30 value=30
           vpx_p_frame_qp_value 0x00990afe (int)    : min=-1 max=127 step=1 default=30 value=30
                    vp8_profile 0x00990aff (menu)   : min=0 max=3 default=0 value=0 (0)
                                0: 0
                                1: 1
                                2: 2
                                3: 3
                    vp9_profile 0x00990b00 (menu)   : min=0 max=3 default=0 value=0 (0)
                                0: 0
                                1: 1
                                2: 2
                                3: 3
          hevc_minimum_qp_value 0x00990b58 (int)    : min=0 max=51 step=1 default=0 value=0
          hevc_maximum_qp_value 0x00990b59 (int)    : min=0 max=51 step=1 default=51 value=51
          hevc_i_frame_qp_value 0x00990b5a (int)    : min=-1 max=51 step=1 default=30 value=30
          hevc_p_frame_qp_value 0x00990b5b (int)    : min=-1 max=51 step=1 default=30 value=30
                   hevc_profile 0x00990b67 (menu)   : min=0 max=2 default=0 value=0 (Main)
                                0: Main
                                1: Main Still Picture
                                2: Main 10
                     hevc_level 0x00990b68 (menu)   : min=0 max=8 default=7 value=7 (5)
                                0: 1
                                1: 2
                                2: 2.1
                                3: 3
                                4: 3.1
                                5: 4
                                6: 4.1
                                7: 5
                                8: 5.1
joaoantoniocardoso commented 4 weeks ago

Hi @justas-, this is a limitation on the v4l2 crate that we are using, specifically, it is failing at this line.

I don't have the same board or camera, so if you know Rust, here is a minimal reproducible example we can test and submit to them meanwhile:

cargo new v4l2_not_working && cd v4l2_not_working

Then edit the following files:

Cargo.toml:

[package]
name = "v4l2_not_working"

[dependencies]
v4l = "0.14.0"

src/main.rs:

use v4l::video::Capture;

fn main() {
    let device = v4l::Device::with_path("/dev/video3").unwrap();
    dbg!(&device);

    let caps = device.query_caps().unwrap();
    dbg!(&caps);

    let formats = device.format().unwrap();
    dbg!(&formats);
}

Apart from that, we also have the idea of switching from interfacing with v4l directly, to using GST Device Monitor to get all this information.

Thanks