1512705_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1512705_ja-JP

1512705_ja-JP

コマンド:v4l2-ctl --device /dev/video0 --all ですべての詳細を取得できません

こんにちは、皆さん。

私はカメラセンサーOS02G10を使っています。センサーからRAW10のファイルは入手できますが、画像は正しくありません。位置ずれがあり、画像内の2つの部分が互いにずれています。こちらでご覧いただけます:

https://community.nxp.com/t5/i-MX-Processors/Camera-sensor-os02g10-MIPI-CSI-for-IMX8MM-Image-issue/m...


カメラセンサーやmipi-csiのDeviceTree設定を何度も試しましたが、画像に変化はありませんでした。
v4l2にも問題があります。下記で確認できます。なぜそれができないのか


Driver Info:

        Driver name      : mx6s-csi
        Card type        : i.MX6S_CSI
        Bus info         : platform:32e20000.csi_bridge
        Driver version   : 5.10.72
        Capabilities     : 0x84200001
                Video Capture
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04200001
                Video Capture
                Streaming
                Extended Pix Format
Priority: 0
Video input : 0 (Camera: ok)
Format Video Capture:
        Width/Height      : 1920/1080
        Pixel Format      : ''
        Field             : None
        Bytes per Line    : 0
        Size Image        : 4147200
        Colorspace        : Default
        Transfer Function : Default (maps to Rec. 709)
        YCbCr/HSV Encoding: Default (maps to ITU-R 601)
        Quantization      : Default (maps to Full Range)
        Flags             :
Crop Capability Video Capture:
        Bounds      : Left 0, Top 0, Width 0, Height 0
        Default     : Left 0, Top 0, Width 0, Height 0
        Pixel Aspect: 1/1
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:

しかし、写真を見るともっと詳細がわかる。v4l2が画像がおかしい原因なのか、それとも別の原因なのかを特定しようとしています。何が問題なのでしょうか?


v4l2-ctl -d /dev/video0 --verbose --set-fmt-video=width=1920,height=1080,pixelformat=BG10  --stream-mmap --stream-count=1 --stream-to=bb001.raw
VIDIOC_QUERYCAP: ok

VIDIOC_G_FMT: ok
VIDIOC_S_FMT: ok
Format Video Capture:
        Width/Height      : 1920/1080
        Pixel Format      : 'BG10' (10-bit Bayer BGBG/GRGR)
        Field             : None
        Bytes per Line    : 3840
        Size Image        : 4147200
        Colorspace        : sRGB
        Transfer Function : Default (maps to sRGB)
        YCbCr/HSV Encoding: ITU-R 601
        Quantization      : Full Range
        Flags             :
                VIDIOC_REQBUFS returned 0 (Success)
                VIDIOC_QUERYBUF returned 0 (Success)
                VIDIOC_QUERYBUF returned 0 (Success)
                VIDIOC_QUERYBUF returned 0 (Success)
                VIDIOC_QUERYBUF returned 0 (Success)
                VIDIOC_QBUF returned 0 (Success)
                VIDIOC_QBUF returned 0 (Success)
                VIDIOC_QBUF returned 0 (Success)
                VIDIOC_QBUF returned 0 (Success)
                VIDIOC_STREAMON returned 0 (Success)
cap dqbuf: 0 seq:      0 bytesused: 4147200 ts: 46.903731 delta: 46903.731 ms (ts-monotonic, ts-src-eof)

i.MX 8M | i.MX 8M Mini | i.MX 8M NanoRe: can not get all details with command: v4l2-ctl --device /dev/video0 --all

こんにちは、Linuxのアップストリームドライバーを使えます。
私たちはこれをi.mx8MPベースのDebixプラットフォームでテストしました。
こちらがドライバです
https://web.git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=263d0fa1d46ac1ae2...

こちらが当社のDTです

https://web.git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a4d0f0c88ae818531...


--
ルトヴィイ
シリコンシグナルズ

Re: can not get all details with command: v4l2-ctl --device /dev/video0 --all

mx6s_vidioc_g_fmt_vid_cap が不完全なようです。

mx6s_vidioc_s_fmt_vid_cap にはすべての詳細が記載されています

btarnowski_0-1672393812102.pngbtarnowski_0-1672393812102.pngbtarnowski_0-1672393812102.png


Re: can not get all details with command: v4l2-ctl --device /dev/video0 --all

RAW10に関しては解決策があります

https://community.nxp.com/t5/i-MX-Graphics/gst-launch-1-0-returns-Internal-data-stream-error/m-p/153...

また、v4l2-ctl --device /dev/video0 --all に関して

何が問題なのかは判断が難しいですが、もしかするとカメラドライバーはV4L2でctrlioではなくctrl APIを使っているのかもしれません

しかし今は問題ではないので、次にすべきことは露出やゲインなどのパラメータを設定することです


Re: can not get all details with command: v4l2-ctl --device /dev/video0 --all

こんにちは、 @btarnowskiさん
v4l2-ctl --all で表示させるには、mx6s_capture.c を編集するだけで済みます。関数 'mx6s_vidioc_s_fmt_vid_cap' では、幅/高さ/サイズ画像/フィールドだけでなく、pix 構造体全体をコピーしてください。

csi_dev->pix = f->fmt.pix;

このようにすることで、内部構造体 csi_dev->pix には get_format を実行する際に必要なすべての情報が含まれます (関数 mx6s_vidioc_g_fmt_vid_cap を参照)。

mx6s_capture.cには細かいミスがたくさんあり、v4l2ツールとの互換性を向上させるためには多くの改善が必要だと感じています。

よろしくお願いします。

Re: can not get all details with command: v4l2-ctl --device /dev/video0 --all

こんにちは、
v4l2-ctl --device /dev/video0 --allgstreamに関して進展がありません。
カメラセンサのドライバの問題のようです。
dev/media0 - 不要


カメラセンサーの取り扱いにはさまざまなアプローチがあります。
以下に、低レベルのAPI処理の違いを示します。
OV5640(カメラセンサー)は他のデバイスで動作します。

btarnowski_0-1663928001102.pngbtarnowski_0-1663928001102.pngbtarnowski_0-1663928001102.png

そしてもう一つの比較:

btarnowski_1-1663928150167.pngbtarnowski_1-1663928150167.pngbtarnowski_1-1663928150167.png



Re: can not get all details with command: v4l2-ctl --device /dev/video0 --all

何か解決策は見つかりましたか?私も同じエラーが出ています。もし同じエラーが出たら、解決策を教えてください。



Re: can not get all details with command: v4l2-ctl --device /dev/video0 --all

また、正しくない課題も見られます。csi_bridgeはmedia0に割り当てる必要があります。

btarnowski_0-1662374734790.pngbtarnowski_0-1662374734790.pngbtarnowski_0-1662374734790.png

どうすればいいですか?何かアドバイスをいただけますか?


Re: can not get all details with command: v4l2-ctl --device /dev/video0 --all

その間に:
root@qrnd:~# gst-inspect-1.0 -a > gst-inspect.txt

結果は添付ファイルに記載されています。

Re: can not get all details with command: v4l2-ctl --device /dev/video0 --all

次の問題:ビデオデバイスは見えますが、/dev/mediaデバイスはありません

root@qrnd:~# v4l2-ctl --list-devices
i.MX6S_CSI (platform:32e20000.csi_bridge):
        /dev/video0

vsi_v4l2dec (platform:vsi_v4l2dec):
        /dev/video2

vsi_v4l2enc (platform:vsi_v4l2enc):
        /dev/video1
Re: can not get all details with command: v4l2-ctl --device /dev/video0 --all

Yocto ビルド用のパッケージリストを更新しなければなりませんでした:

# カメラサポートツール
IMAGE_INSTALL_append = "i2c-tools"
IMAGE_INSTALL_append = "v4l-utils"
IMAGE_INSTALL_append = "gstreamer1.0"
IMAGE_INSTALL_append = " gstreamer1.0-plugins-good"
IMAGE_INSTALL_append = " gstreamer1.0-plugins-imx"
IMAGE_INSTALL_append = " gstreamer1.0-plugins-base"
IMAGE_INSTALL_append = " gst-player"
IMAGE_INSTALL_append = " gstreamer1.0-meta-base"
IMAGE_INSTALL_append = " gst-examples"
IMAGE_INSTALL_append = " gstreamer1.0-rtsp-server"
IMAGE_INSTALL_append = " gst1.0-fsl-plugin"
IMAGE_INSTALL_append = " gstreamer1.0-plugins-good-video4linux2"
IMAGE_INSTALL_append = " gstreamer1.0-plugins-good-png"
IMAGE_INSTALL_append = " gstreamer1.0-plugins-good-jpeg"


しかし、コマンドに問題が発生しました
gst -ローンチ- 1.0v4l2srcデバイス= / dev / video0 num - buffers = 1 !ビデオ/ x - raw = 1920 高さ= 1080 !pngenc !filesink location =/ tmp / test_1920x1080 . png

私は以下を受け取りました:


Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:
pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
../git/libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.057218529
Setting pipeline to NULL ...
Freeing pipeline ...

Re: can not get all details with command: v4l2-ctl --device /dev/video0 --all

どうやらYoctoがこの問題を作っているようです。カーネルイメージには必要なコンポーネントがすべて含まれているわけではありません。gstreamer-plugins-goodから v4lsrc が欠落しています。Yocto Buildに追加のパッケージを追加しましたが、効果はありませんでした。Yoctoビルドプロセスのデプロイ段階を調べる必要があります。

Tags (1)
No ratings
Version history
Last update:
yesterday
Updated by: