Hi @joanxie, thank you for replying.
v4l2-ctl -d /dev/v4l-subdev1 --set-standard PAL
Using "video/x-raw, width=720, height=480" works with gst-launch-1.0.
However the issue is that using video/x-raw in gstreamer-pipeline: in Qt 6.8.2 (QML MediaPlayer) fails:
ERROR GST_PIPELINE grammar.y:630:gst_parse_element_make: no element "video"
Under Qt (which uses playbin) video/x-raw is not recognised as an element, because it is a caps filter.
That is why I was trying to get a pipeline working without needing the video/x-raw caps filter in it...
Ok, just found that there is a capsfilter element, so using that explicitly instead:
player.source = "gstreamer-pipeline: v4l2src device=/dev/video2 ! capsfilter caps=video/x-raw,width=720,height=480,framerate=25/1"
That almost works from Qt. Shows video for a bit but then segfaults with:
1 format_cmp_func gstv4l2object.c 1276 0xffffd80668dc
2 g_slist_insert_sorted_real gslist.c 913 0xfffff604fab4
3 g_slist_insert_sorted gslist.c 964 0xfffff60504e0
4 gst_v4l2_object_fill_format_list gstv4l2object.c 1324 0xffffd8065a60
5 gst_v4l2_object_get_format_list gstv4l2object.c 1373 0xffffd8065f2c
6 gst_v4l2_object_probe_caps gstv4l2object.c 5212 0xffffd806ed34
7 gst_v4l2_object_get_caps gstv4l2object.c 5310 0xffffd806ef38
8 gst_base_src_default_query gstbasesrc.c 1373 0xffffd9219490
9 gst_pad_query gstpad.c 4228 0xffffd90ec24c
10 gst_pad_query_caps gstutils.c 3117 0xffffd913140c
11 gst_v4l2src_negotiate gstv4l2src.c 786 0xffffd8079a04
12 gst_base_src_negotiate_unlocked gstbasesrc.c 3490 0xffffd9213e9c
13 gst_base_src_loop gstbasesrc.c 2915 0xffffd9215e7c
14 gst_task_func gsttask.c 399 0xffffd9122090
15 g_thread_pool_thread_proxy gthreadpool.c 350 0xfffff605d780
16 g_thread_proxy gthread.c 831 0xfffff605cad8
17 start_thread pthread_create.c 447 0xfffff6730fc4
18 thread_start clone3.S 76 0xfffff67931cc
Will see what I can figure out.
Either way, am wondering:
v4l2-ctl --device /dev/video2 --all
gives mxc-isi-cap_v1 Width/Height: 3840/2160 ...
Guess because even though the ADV is only capable of 720 wide, the MIPI CSI-2 is capable of 3840.
This changes it, but only temporarily:
v4l2-ctl -d /dev/video2 -vwidth=720,height=480
It reverts back to 3840 when gstreamer is run without the capsfilter.
Seeing as on our i.MX 8X based board, the MIPI CSI-2 is hard wired to the ADV, and will only ever be used as 720 wide, is there any way of configuring it to stay at 720 wide, rather than 3840 wide? That would make it "just work" and simplify the gstreamer pipeline for Qt etc?
Thank you
-- Peter