привязка media-ctl IPU: невозможно установить соединение - PullRequest
2 голосов
/ 15 мая 2019

Я пытаюсь запустить самое последнее ядро ​​mainline (5.1.1) на imx6 var dart.Цель состоит в том, чтобы получить видео с параллельного IPU (adv7180) и отправить его по сети.

В версии 5.0 я использовал эти команды для привязки adv7180:

media-ctl --reset

media-ctl -l "'adv7180 0-0020':0 -> 'ipu2_csi1_mux':1[1]"
media-ctl -l "'ipu2_csi1_mux':2 -> 'ipu2_csi1':0[1]"
media-ctl -l "'ipu2_csi1':1 -> 'ipu2_vdic':0[0]"
media-ctl -l "'ipu2_vdic':2 -> 'ipu2_ic_prp':0[1]"
media-ctl -l "'ipu2_ic_prp':2 -> 'ipu2_ic_prpvf':0[1]"
media-ctl -l "'ipu2_ic_prpvf':1 -> 'ipu2_ic_prpvf capture':0[1]"

resolution="720x576"
media-ctl -V "'adv7180 0-0020':0 [fmt:UYVY2X8/$resolution]"
media-ctl -V "'ipu2_csi1_mux':2 [fmt:UYVY2X8/$resolution field:interlaced]"
media-ctl -V "'ipu2_csi1':1 [fmt:AYUV32/$resolution field:interlaced]"
media-ctl -V "'ipu2_vdic':2 [fmt:AYUV32/$resolution field:none]"
media-ctl -V "'ipu2_ic_prp':2 [fmt:AYUV32/$resolution field:none]"
media-ctl -V "'ipu2_ic_prpvf':1 [fmt:AYUV32/$resolution field:none]"

Но у меня были некоторыепроблемы с разрешением захвата (ядро пыталось использовать 720x240).Эта проблема, похоже, исправлена ​​в следующей версии ядра 5.1.1.

Но теперь, когда я пытаюсь связать ipu2_csi1 на ipu2_vdic media-ctl, возвращаем эту ошибку:

root:devboard $ media-ctl -v -l "'ipu2_csi1':1 -> 'ipu2_vdic':0[1]"
Opening media device /dev/media0
Enumerating entities
Found 23 entities
Enumerating pads and links
Setting up link 83:1 -> 5:0 [5]
Opening media device /dev/media0
media_setup_link: Unable to setup link (Invalid argument)

 'ipu2_csi1':1 -> 'ipu2_vdic':0[1]
                                 ^
Unable to parse link: Invalid argument (22)

graph.png: enter image description here Vdic не связан и конвейер не работает.

Я пытался использовать конвейер без Vdic, но gstreamer возвращает эту ошибку:

gst-launch-1.0 -v v4l2src device=/dev/video3 ! fakesink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Device '/dev/video3' does not support progressive interlacing
Additional debug info:
gstv4l2object.c(3813): gst_v4l2_object_set_format_full (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Device wants interleaved interlacing
Execution ended after 0:00:00.000897000
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Есть идеи?Я также не могу связать ipu1_csi0 на ipu1_vdic.

Спасибо


Редактировать:

Это также не работает на плате Вентана (Gateworks).


Редактировать 2: Проблема ЗДЕСЬ:

В исходном коде ядра: драйверы / staging / media / imx / imx-media-vdic.c:748

/* direct pad must connect to a CSI */
        if (!(remote_sd->grp_id & IMX_MEDIA_GRP_ID_CSI) ||
            remote->index != CSI_SRC_PAD_DIRECT) {
            ret = -EINVAL;
            goto out;
        }

Ядро выполняет этот переход.

1 Ответ

0 голосов
/ 24 мая 2019

Решено с помощью этого патча: «Исправить неправильный идентификатор группы CSI»

https://github.com/torvalds/linux/commit/55dde50946988db8d05f84d2ec7750140542730f?diff=unified

...