Dear experts,
I'm currently working with the NXP IMX8MPLUS and trying to enable the ISP for the MT9V024 camera sensor.
My current set up is the following:
Yocto core image with IMAGE_INSTALL:append = " kernel-module-isp-vvcam gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad v4l-utils isp-imx libtinyxml2 media-ctl fmt ".
Linux 5.15.71 Kirkstone
Is a headless build
Externally, I build in V4L2 mode:
- isp-imx-4.2.2.20.0
- isp-vvcam (lf-5.15.y_2.2.0)
My video convertor is telling me that there is video at 30 fps, width=752, height=480 on DPHY0
However, I cannot get a image from Gstreamer. I dont get any hard error, the closest thing is this information message: " <v4l2src0:pool0:src> can't allocate, setting maximum to minimum. "
Here is an example
root@imx8mp:~/build-out/sdk# gst-launch-1.0 -v v4l2src device=/dev/video0 num-buffers=5 ! "video/x-raw,format=YUY2,width=752,height=480,framerate=30/1" ! fakesink dump=true
0:00:00.000184125 2271 0x5599042800 INFO GST_INIT gst.c:592:init_pre: Initializing GStreamer Core Library version 1.20.3
0:00:00.000278625 2271 0x5599042800 INFO GST_INIT gst.c:593:init_pre: Using library installed in /usr/lib
0:00:00.000314500 2271 0x5599042800 INFO GST_INIT gst.c:611:init_pre: Linux imx8mp 5.15.71+gea9b003902ee #1 SMP PREEMPT Tue Sep 12 14:15:41 UTC 2023 aarch64
0:00:00.000854500 2271 0x5599042800 INFO GST_INIT gstmessage.c:129:_priv_gst_message_initialize: init messages
0:00:00.002470000 2271 0x5599042800 INFO GST_INIT gstcontext.c:86:_priv_gst_context_initialize: init contexts
0:00:00.003066500 2271 0x5599042800 INFO GST_PLUGIN_LOADING gstplugin.c:324:_priv_gst_plugin_initialize: registering 0 static plugins
0:00:00.003352750 2271 0x5599042800 INFO GST_PLUGIN_LOADING gstplugin.c:232:gst_plugin_register_static: registered static plugin "staticelements"
0:00:00.003399125 2271 0x5599042800 INFO GST_PLUGIN_LOADING gstplugin.c:234:gst_plugin_register_static: added static plugin "staticelements", result: 1
0:00:00.003510875 2271 0x5599042800 INFO GST_REGISTRY gstregistry.c:1827:ensure_current_registry: reading registry cache: /home/root/.cache/gstreamer-1.0/registry.aarch64.bin
0:00:00.028175500 2271 0x5599042800 INFO GST_REGISTRY gstregistrybinary.c:683:priv_gst_registry_binary_read_cache: loaded /home/root/.cache/gstreamer-1.0/registry.aarch64.bin in 0.024588 seconds
0:00:00.028346375 2271 0x5599042800 INFO GST_REGISTRY gstregistry.c:1693:scan_and_update_registry: Validating plugins from registry cache: /home/root/.cache/gstreamer-1.0/registry.aarch64.bin
0:00:00.036117875 2271 0x5599042800 INFO GST_REGISTRY gstregistry.c:1785:scan_and_update_registry: Registry cache has not changed
0:00:00.036177625 2271 0x5599042800 INFO GST_REGISTRY gstregistry.c:1862:ensure_current_registry: registry reading and updating done, result = 1
0:00:00.036202250 2271 0x5599042800 INFO GST_INIT gst.c:833:init_post: GLib runtime version: 2.72.3
0:00:00.036224750 2271 0x5599042800 INFO GST_INIT gst.c:835:init_post: GLib headers version: 2.72.3
0:00:00.036241250 2271 0x5599042800 INFO GST_INIT gst.c:837:init_post: initialized GStreamer successfully
0:00:00.036313000 2271 0x5599042800 INFO GST_PIPELINE gstparse.c:344:gst_parse_launch_full: parsing pipeline description 'v4l2src device=/dev/video0 num-buffers=5 ! video/x-raw,format=YUY2,width=752,height=480,framerate=30/1 ! fakesink dump=true '
0:00:00.119030500 2271 0x5599042800 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/gstreamer-1.0/libgstvideo4linux2.so" loaded
0:00:00.119095500 2271 0x5599042800 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "v4l2src"
0:00:00.125341875 2271 0x5599042800 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseSrc@0x55991ea130> adding pad 'src'
0:00:00.127313750 2271 0x5599042800 INFO GST_PLUGIN_LOADING gstplugin.c:987:_priv_gst_plugin_load_file_for_registry: plugin "/usr/lib/gstreamer-1.0/libgstcoreelements.so" loaded
0:00:00.127381000 2271 0x5599042800 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "fakesink"
0:00:00.127746375 2271 0x5599042800 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseSink@0x55991e0610> adding pad 'sink'
0:00:00.127839250 2271 0x5599042800 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "pipeline"
0:00:00.128087000 2271 0x5599042800 INFO GST_PIPELINE gst/parse/grammar.y:683:gst_parse_perform_link: linking some pad of GstV4l2Src named v4l2src0 to some pad of GstFakeSink named fakesink0 (0/0) with caps "video/x-raw, format=(string)YUY2, width=(int)752, height=(int)480, framerate=(fraction)30/1"
0:00:00.128130875 2271 0x5599042800 INFO GST_ELEMENT_FACTORY gstelementfactory.c:489:gst_element_factory_create_with_properties: creating element "capsfilter"
0:00:00.128345250 2271 0x5599042800 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x55991f20e0> adding pad 'sink'
0:00:00.128396375 2271 0x5599042800 INFO GST_ELEMENT_PADS gstelement.c:759:gst_element_add_pad:<GstBaseTransform@0x55991f20e0> adding pad 'src'
0:00:00.128437250 2271 0x5599042800 INFO GST_STATES gstbin.c:2069:gst_bin_get_state_func:<pipeline0> getting state
0:00:00.128494250 2271 0x5599042800 INFO GST_STATES gstelement.c:2806:gst_element_continue_state:<capsfilter0> completed state change to NULL
0:00:00.128527625 2271 0x5599042800 INFO GST_EVENT gstevent.c:1660:gst_event_new_reconfigure: creating reconfigure event
0:00:00.128564625 2271 0x5599042800 INFO GST_ELEMENT_PADS gstutils.c:1816:gst_element_link_pads_full: trying to link element v4l2src0:(any) to element capsfilter0:sink
0:00:00.128592375 2271 0x5599042800 INFO GST_ELEMENT_PADS gstelement.c:1016:gst_element_get_static_pad: found pad capsfilter0:sink
0:00:00.128618625 2271 0x5599042800 INFO GST_PADS gstutils.c:1632:prepare_link_maybe_ghosting: v4l2src0 and capsfilter0 in same bin, no need for ghost pads
0:00:00.128662250 2271 0x5599042800 INFO GST_PADS gstpad.c:2382:gst_pad_link_prepare: trying to link v4l2src0:src and capsfilter0:sink
0:00:00.128706250 2271 0x5599042800 INFO GST_PADS gstpad.c:4357:gst_pad_peer_query:<capsfilter0:src> pad has no peer
0:00:00.128765750 2271 0x5599042800 INFO GST_PADS gstpad.c:2590:gst_pad_link_full: linked v4l2src0:src and capsfilter0:sink, successful
0:00:00.128787375 2271 0x5599042800 INFO GST_EVENT gstevent.c:1660:gst_event_new_reconfigure: creating reconfigure event
0:00:00.128810125 2271 0x5599042800 INFO GST_EVENT gstpad.c:5946:gst_pad_send_event_unchecked:<v4l2src0:src> Received event on flushing pad. Discarding
0:00:00.128849500 2271 0x5599042800 INFO GST_ELEMENT_PADS gstutils.c:1816:gst_element_link_pads_full: trying to link element capsfilter0:src to element fakesink0:(any)
0:00:00.128876375 2271 0x5599042800 INFO GST_ELEMENT_PADS gstelement.c:1016:gst_element_get_static_pad: found pad capsfilter0:src
0:00:00.128907875 2271 0x5599042800 INFO GST_PADS gstutils.c:1079:gst_pad_check_link: trying to link capsfilter0:src and fakesink0:sink
0:00:00.128978125 2271 0x5599042800 INFO GST_PADS gstutils.c:1632:prepare_link_maybe_ghosting: capsfilter0 and fakesink0 in same bin, no need for ghost pads
0:00:00.129011625 2271 0x5599042800 INFO GST_PADS gstpad.c:2382:gst_pad_link_prepare: trying to link capsfilter0:src and fakesink0:sink
0:00:00.129071250 2271 0x5599042800 INFO GST_PADS gstpad.c:2590:gst_pad_link_full: linked capsfilter0:src and fakesink0:sink, successful
0:00:00.129091000 2271 0x5599042800 INFO GST_EVENT gstevent.c:1660:gst_event_new_reconfigure: creating reconfigure event
0:00:00.129110625 2271 0x5599042800 INFO GST_EVENT gstpad.c:5946:gst_pad_send_event_unchecked:<capsfilter0:src> Received event on flushing pad. Discarding
Setting pipeline to PAUSED ...
0:00:00.130531250 2271 0x5599042800 INFO GST_STATES gstbin.c:2479:gst_bin_element_set_state:<fakesink0> current NULL pending VOID_PENDING, desired next READY
0:00:00.130569250 2271 0x5599042800 INFO GST_STATES gstelement.c:2806:gst_element_continue_state:<fakesink0> completed state change to READY
0:00:00.130595000 2271 0x5599042800 INFO GST_STATES gstelement.c:2706:_priv_gst_element_state_changed:<fakesink0> notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:00.130650625 2271 0x5599042800 INFO GST_STATES gstbin.c:2928:gst_bin_change_state_func:<pipeline0> child 'fakesink0' changed state to 2(READY) successfully
0:00:00.130682375 2271 0x5599042800 INFO GST_STATES gstbin.c:2479:gst_bin_element_set_state:<capsfilter0> current NULL pending VOID_PENDING, desired next READY
0:00:00.130707125 2271 0x5599042800 INFO GST_STATES gstelement.c:2806:gst_element_continue_state:<capsfilter0> completed state change to READY
0:00:00.130731875 2271 0x5599042800 INFO GST_STATES gstelement.c:2706:_priv_gst_element_state_changed:<capsfilter0> notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:00.130764125 2271 0x5599042800 INFO GST_STATES gstbin.c:2928:gst_bin_change_state_func:<pipeline0> child 'capsfilter0' changed state to 2(READY) successfully
0:00:00.130796000 2271 0x5599042800 INFO GST_STATES gstbin.c:2479:gst_bin_element_set_state:<v4l2src0> current NULL pending VOID_PENDING, desired next READY
0:00:00.131003250 2271 0x5599042800 INFO v4l2 v4l2_calls.c:588:gst_v4l2_open:<v4l2src0:src> Opened device 'VIV' (/dev/video0) successfully
0:00:00.131045250 2271 0x5599042800 INFO GST_STATES gstelement.c:2806:gst_element_continue_state:<v4l2src0> completed state change to READY
0:00:00.131071625 2271 0x5599042800 INFO GST_STATES gstelement.c:2706:_priv_gst_element_state_changed:<v4l2src0> notifying about state-changed NULL to READY (VOID_PENDING pending)
0:00:00.131107625 2271 0x5599042800 INFO GST_STATES gstbin.c:2928:gst_bin_change_state_func:<pipeline0> child 'v4l2src0' changed state to 2(READY) successfully
0:00:00.131145375 2271 0x5599042800 INFO GST_STATES gstelement.c:2778:gst_element_continue_state:<pipeline0> committing state from NULL to READY, pending PAUSED, next PAUSED
0:00:00.131173500 2271 0x5599042800 INFO GST_STATES gstelement.c:2706:_priv_gst_element_state_changed:<pipeline0> notifying about state-changed NULL to READY (PAUSED pending)
0:00:00.131253250 2271 0x5599042800 INFO GST_STATES gstelement.c:2786:gst_element_continue_state:<pipeline0> continue state change READY to PAUSED, final PAUSED
0:00:00.131305125 2271 0x5599042800 INFO GST_STATES gstbin.c:2479:gst_bin_element_set_state:<fakesink0> current READY pending VOID_PENDING, desired next PAUSED
0:00:00.131356500 2271 0x5599042800 INFO GST_STATES gstbin.c:2935:gst_bin_change_state_func:<pipeline0> child 'fakesink0' is changing state asynchronously to PAUSED
0:00:00.131389875 2271 0x5599042800 INFO GST_STATES gstbin.c:2479:gst_bin_element_set_state:<capsfilter0> current READY pending VOID_PENDING, desired next PAUSED
0:00:00.131430000 2271 0x5599042800 INFO GST_STATES gstelement.c:2806:gst_element_continue_state:<capsfilter0> completed state change to PAUSED
0:00:00.131456875 2271 0x5599042800 INFO GST_STATES gstelement.c:2706:_priv_gst_element_state_changed:<capsfilter0> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.131492250 2271 0x5599042800 INFO GST_STATES gstbin.c:2928:gst_bin_change_state_func:<pipeline0> child 'capsfilter0' changed state to 3(PAUSED) successfully
0:00:00.131522125 2271 0x5599042800 INFO GST_STATES gstbin.c:2479:gst_bin_element_set_state:<v4l2src0> current READY pending VOID_PENDING, desired next PAUSED
0:00:00.131581625 2271 0x5599042800 INFO basesrc gstbasesrc.c:1430:gst_base_src_do_seek:<v4l2src0> seeking: time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration 99:99:99.999999999
0:00:00.131684250 2271 0x5599042800 INFO task gsttask.c:516:gst_task_set_lock: setting stream lock 0x55991ec260 on task 0x55991f4050
0:00:00.131710000 2271 0x5599042800 INFO GST_PADS gstpad.c:6291:gst_pad_start_task:<v4l2src0:src> created task 0x55991f4050
0:00:00.131884375 2271 0x5599042800 INFO GST_STATES gstelement.c:2806:gst_element_continue_state:<v4l2src0> completed state change to PAUSED
0:00:00.131916375 2271 0x5599042800 INFO GST_STATES gstelement.c:2706:_priv_gst_element_state_changed:<v4l2src0> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.131957500 2271 0x5599042800 INFO GST_STATES gstbin.c:2971:gst_bin_change_state_func:<pipeline0> child 'v4l2src0' changed state to 3(PAUSED) successfully without preroll
0:00:00.131983625 2271 0x55991b3460 INFO GST_ELEMENT_PADS gstelement.c:1013:gst_element_get_static_pad: no such pad 'sink' in element "v4l2src0"
0:00:00.131995000 2271 0x5599042800 INFO pipeline gstpipeline.c:533:gst_pipeline_change_state:<pipeline0> pipeline is live
0:00:00.132039500 2271 0x5599042800 INFO GST_STATES gstelement.c:2806:gst_element_continue_state:<pipeline0> completed state change to PAUSED
0:00:00.132067875 2271 0x5599042800 INFO GST_STATES gstelement.c:2706:_priv_gst_element_state_changed:<pipeline0> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
0:00:00.132120625 2271 0x55991b3460 INFO v4l2src gstv4l2src.c:550:gst_v4l2src_query_preferred_size:<v4l2src0> Detect input 0 as `camera`
Pipeline is live and does not need PREROLL ...
0:00:00.132187750 2271 0x55991b3460 INFO v4l2 gstv4l2object.c:1241:gst_v4l2_object_fill_format_list:<v4l2src0:src> got 4 format(s):
0:00:00.132220375 2271 0x55991b3460 INFO v4l2 gstv4l2object.c:1245:gst_v4l2_object_fill_format_list:<v4l2src0:src> YUYV
0:00:00.132250750 2271 0x55991b3460 INFO v4l2 gstv4l2object.c:1245:gst_v4l2_object_fill_format_list:<v4l2src0:src> NV12
0:00:00.132277000 2271 0x55991b3460 INFO v4l2 gstv4l2object.c:1245:gst_v4l2_object_fill_format_list:<v4l2src0:src> NV16
0:00:00.132330375 2271 0x55991b3460 INFO v4l2 gstv4l2object.c:1245:gst_v4l2_object_fill_format_list:<v4l2src0:src> BA10
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
0:00:00.133349250 2271 0x5599042800 INFO GST_EVENT gstevent.c:1530:gst_event_new_latency: creating latency event 0:00:00.000000000
0:00:00.133414375 2271 0x5599042800 INFO bin gstbin.c:2759:gst_bin_do_latency_func:<pipeline0> configured latency of 0:00:00.000000000
0:00:00.133470250 2271 0x5599042800 INFO GST_STATES gstbin.c:2479:gst_bin_element_set_state:<fakesink0> current READY pending PAUSED, desired next PLAYING
0:00:00.133500625 2271 0x5599042800 INFO GST_STATES gstbin.c:2935:gst_bin_change_state_func:<pipeline0> child 'fakesink0' is changing state asynchronously to PLAYING
0:00:00.133534000 2271 0x5599042800 INFO GST_STATES gstbin.c:2479:gst_bin_element_set_state:<capsfilter0> current PAUSED pending VOID_PENDING, desired next PLAYING
0:00:00.133564625 2271 0x5599042800 INFO GST_STATES gstelement.c:2806:gst_element_continue_state:<capsfilter0> completed state change to PLAYING
0:00:00.133592125 2271 0x5599042800 INFO GST_STATES gstelement.c:2706:_priv_gst_element_state_changed:<capsfilter0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:00.133632125 2271 0x5599042800 INFO GST_STATES gstbin.c:2928:gst_bin_change_state_func:<pipeline0> child 'capsfilter0' changed state to 4(PLAYING) successfully
0:00:00.133668750 2271 0x5599042800 INFO GST_STATES gstelement.c:2806:gst_element_continue_state:<v4l2src0> completed state change to PLAYING
0:00:00.133696625 2271 0x5599042800 INFO GST_STATES gstelement.c:2706:_priv_gst_element_state_changed:<v4l2src0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:00.133766250 2271 0x5599042800 INFO GST_STATES gstbin.c:2928:gst_bin_change_state_func:<pipeline0> child 'v4l2src0' changed state to 4(PLAYING) successfully
New clock: GstSystemClock
0:00:00.278604625 2271 0x55991b3460 INFO v4l2 gstv4l2object.c:4752:gst_v4l2_object_probe_caps:<v4l2src0:src> probed caps: video/x-raw, format=(string)YUY2, width=(int)[ 176, 4096, 16 ], height=(int)[ 144, 3072, 8 ], pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 29/1, 28/1, 27/1, 26/1, 25/1, 24/1, 23/1, 22/1, 21/1, 20/1, 19/1, 18/1, 17/1, 16/1, 15/1, 14/1, 13/1, 12/1, 11/1, 10/1, 9/1, 8/1, 7/1, 6/1, 5/1, 4/1, 3/1, 2/1, 1/1 }; video/x-raw(format:Interlaced), format=(string)YUY2, width=(int)[ 176, 4096, 16 ], height=(int)[ 144, 3072, 8 ], pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 29/1, 28/1, 27/1, 26/1, 25/1, 24/1, 23/1, 22/1, 21/1, 20/1, 19/1, 18/1, 17/1, 16/1, 15/1, 14/1, 13/1, 12/1, 11/1, 10/1, 9/1, 8/1, 7/1, 6/1, 5/1, 4/1, 3/1, 2/1, 1/1 }, interlace-mode=(string)alternate; video/x-raw, format=(string)NV12, width=(int)[ 176, 4096, 16 ], height=(int)[ 144, 3072, 8 ], pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 29/1, 28/1, 27/1, 26/1, 25/1, 24/1, 23/1, 22/1, 21/1, 20/1, 19/1, 18/1, 17/1, 16/1, 15/1, 14/1, 13/1, 12/1, 11/1, 10/1, 9/1, 8/1, 7/1, 6/1, 5/1, 4/1, 3/1, 2/1, 1/1 }; video/x-raw(format:Interlaced), format=(string)NV12, width=(int)[ 176, 4096, 16 ], height=(int)[ 144, 3072, 8 ], pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 29/1, 28/1, 27/1, 26/1, 25/1, 24/1, 23/1, 22/1, 21/1, 20/1, 19/1, 18/1, 17/1, 16/1, 15/1, 14/1, 13/1, 12/1, 11/1, 10/1, 9/1, 8/1, 7/1, 6/1, 5/1, 4/1, 3/1, 2/1, 1/1 }, interlace-mode=(string)alternate; video/x-raw, format=(string)NV16, width=(int)[ 176, 4096, 16 ], height=(int)[ 144, 3072, 8 ], pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 29/1, 28/1, 27/1, 26/1, 25/1, 24/1, 23/1, 22/1, 21/1, 20/1, 19/1, 18/1, 17/1, 16/1, 15/1, 14/1, 13/1, 12/1, 11/1, 10/1, 9/1, 8/1, 7/1, 6/1, 5/1, 4/1, 3/1, 2/1, 1/1 }; video/x-raw(format:Interlaced), format=(string)NV16, width=(int)[ 176, 4096, 16 ], height=(int)[ 144, 3072, 8 ], pixel-aspect-ratio=(fraction)1/1, framerate=(fraction){ 30/1, 29/1, 28/1, 27/1, 26/1, 25/1, 24/1, 23/1, 22/1, 21/1, 20/1, 19/1, 18/1, 17/1, 16/1, 15/1, 14/1, 13/1, 12/1, 11/1, 10/1, 9/1, 8/1, 7/1, 6/1, 5/1, 4/1, 3/1, 2/1, 1/1 }, interlace-mode=(string)alternate
0:00:00.290160875 2271 0x55991b3460 INFO v4l2src gstv4l2src.c:647:gst_v4l2src_negotiate:<v4l2src0> fixated to: video/x-raw, format=(string)YUY2, width=(int)752, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709
0:00:00.290237750 2271 0x55991b3460 INFO GST_EVENT gstevent.c:892:gst_event_new_caps: creating caps event video/x-raw, format=(string)YUY2, width=(int)752, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709
0:00:00.290429750 2271 0x55991b3460 INFO basetransform gstbasetransform.c:1325:gst_base_transform_setcaps:<capsfilter0> reuse caps
0:00:00.290487375 2271 0x55991b3460 INFO GST_EVENT gstevent.c:892:gst_event_new_caps: creating caps event video/x-raw, format=(string)YUY2, width=(int)752, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, format=(string)YUY2, width=(int)752, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)YUY2, width=(int)752, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw, format=(string)YUY2, width=(int)752, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)YUY2, width=(int)752, height=(int)480, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709
0:00:00.406382625 2271 0x55991b3460 INFO v4l2 gstv4l2object.c:4083:gst_v4l2_object_set_format_full:<v4l2src0:src> Set capture framerate to 30/1
0:00:00.406454875 2271 0x55991b3460 INFO v4l2 gstv4l2object.c:3251:gst_v4l2_object_setup_pool:<v4l2src0:src> accessing buffers via mode 4
0:00:00.407197375 2271 0x55991b3460 INFO v4l2bufferpool gstv4l2bufferpool.c:604:gst_v4l2_buffer_pool_set_config:<v4l2src0:pool0:src> increasing minimum buffers to 2
0:00:00.407344250 2271 0x55991b3460 INFO v4l2bufferpool gstv4l2bufferpool.c:617:gst_v4l2_buffer_pool_set_config:<v4l2src0:pool0:src> reducing maximum buffers to 32
0:00:00.407469375 2271 0x55991b3460 INFO v4l2bufferpool gstv4l2bufferpool.c:628:gst_v4l2_buffer_pool_set_config:<v4l2src0:pool0:src> can't allocate, setting maximum to minimum
0:00:00.407735125 2271 0x55991b3460 INFO v4l2bufferpool gstv4l2bufferpool.c:617:gst_v4l2_buffer_pool_set_config:<v4l2src0:pool0:src> reducing maximum buffers to 32
0:00:00.407767625 2271 0x55991b3460 INFO v4l2bufferpool gstv4l2bufferpool.c:628:gst_v4l2_buffer_pool_set_config:<v4l2src0:pool0:src> can't allocate, setting maximum to minimum
0:00:00.420490625 2271 0x55991b3460 WARN v4l2bufferpool gstv4l2bufferpool.c:884:gst_v4l2_buffer_pool_start:<v4l2src0:pool0:src> Uncertain or not enough buffers, enabling copy threshold
-------------------------------
I also tried gst-launch-1.0 -v v4l2src device=/dev/video0 ! "video/x-raw,format=YUY2,width=752,height=480" ! queue ! videoconvert ! theoraenc ! oggmux ! filesink location=test_image.ogv , but i get a similar log.
Can anyone point me to the root of the issue?
------------------------------
My device tree looks like this:
&isp_0 {
status = "okay";
};
&isp_1 {
status = "disabled";
};
&dewarp {
status = "okay";
};
&cameradev {
status = "okay";
};
&isi_0 {
status = "disabled";
cap_device {
status = "disabled";
};
};
&isi_1 {
status = "disabled";
cap_device {
status = "disabled";
};
};
&mipi_csi_0 {
status = "okay";
port@0 {
reg = <0>;
mipi_csi0_ep: endpoint {
remote-endpoint = <&mt9v024_mipi_0_ep>;
data-lanes = <4>;
csis-hs-settle = <16>;
};
};
};
-----
dmesg log:
[ 1740.645667] enter viv_dwe_exit_module
[ 1740.645797] enter dwe_hw_remove
[ 1740.645893] enter fake_pdev_release
[ 1740.645898] vvcam dewarp driver removed
[ 1740.665504] enter viv_isp_exit_module
[ 1740.665647] enter isp_hw_remove
[ 1740.665655] vvcam isp driver removed
[ 1740.701803] : Unregistered all entities
[ 1740.735600]
MT9V024, r3gl0: probe
[ 1740.735611] enter mt9v024_probe
[ 1740.735621] xclk frequency: 24000000 Hz
[ 1740.735626]
MT9V024, r3gl0 mt9v024_read_reg16: Reading reg=0x0000
[ 1740.749169] MT9V024, CHIP VERSION MATCH
[ 1740.749178]
MT9V024, r3gl0: before after
[ 1740.749196] mt9v024_probe camera mipi mt9v024, is found
[ 1740.767059] enter viv_isp_init_module
[ 1740.767405] enter isp_hw_probe
[ 1740.767471] vvcam isp driver registered
[ 1740.778665] enter viv_dwe_init_module
[ 1740.778987] enter dwe_hw_probe
[ 1740.779312] vvcam dewarp driver probed
[ 1740.789973] enter viv_video_init_module
[ 1740.804690] imx8_media_dev: module is from the staging directory, the quality is unknown, you hav
e been warned.
[ 1740.805623] mx8-img-md: Registered sensor subdevice: mt9v024 2-0048 (1)
[ 1740.805644]
MT9V024, r3gl0: Entering link_setup
[ 1740.805647]
MT9V024, r3gl0: Entity name: mt9v024 2-0048
[ 1740.805649]
MT9V024, r3gl0: Local pad index: 0, flags: 2
[ 1740.805653]
MT9V024, r3gl0: Remote pad index: 0, flags: 1
[ 1740.805655]
MT9V024, r3gl0: Link flags: 0
[ 1740.805658]
MT9V024, r3gl0: Exiting link_setup
[ 1740.805660] mx8-img-md: created link [mt9v024 2-0048] => [mxc-mipi-csi2.0]
[ 1740.805666] mxc-md 32c00000.bus:camera: mxc_md_create_links
[ 1740.821137] enter isp_mi_stop
[ 1740.822206]
MT9V024, r3gl0: mt9v024_enum_mbus_code
[ 1740.822218]
MT9V024, r3gl0: mt9v024_get_format_code
[ 1740.822221]
getting MEDIA_BUS_FMT_SGRBG10_1X10
[ 1740.823629]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=-2140645888
[ 1740.823647]
MT9V024, r3gl0: mt9v024_query_capability
[ 1740.823650]
MT9V024, r3gl0: mt9v024_query_capability + case
[ 1740.823652]
MT9V024, r3gl0: returned mt9v024_query_capability
[ 1740.823655]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 1740.823658]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 1740.823660]
flusher
[ 4323.157378]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=-2140645888
[ 4323.157391]
MT9V024, r3gl0: mt9v024_query_capability
[ 4323.157395]
MT9V024, r3gl0: mt9v024_query_capability + case
[ 4323.157397]
MT9V024, r3gl0: returned mt9v024_query_capability
[ 4323.157399]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.157402]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.157404]
flusher
[ 4323.169944] enter isp_mi_stop
[ 4323.233321]
MT9V024, r3gl0: mt9v024_enum_mbus_code
[ 4323.233332]
MT9V024, r3gl0: mt9v024_get_format_code
[ 4323.233336]
getting MEDIA_BUS_FMT_SGRBG10_1X10
[ 4323.284807]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=-2140645888
[ 4323.284822]
MT9V024, r3gl0: mt9v024_query_capability
[ 4323.284826]
MT9V024, r3gl0: mt9v024_query_capability + case
[ 4323.284829]
MT9V024, r3gl0: returned mt9v024_query_capability
[ 4323.284832]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.284835]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.284838]
flusher
[ 4323.297599] enter isp_mi_stop
[ 4323.365311]
MT9V024, r3gl0: mt9v024_enum_mbus_code
[ 4323.365321]
MT9V024, r3gl0: mt9v024_get_format_code
[ 4323.365325]
getting MEDIA_BUS_FMT_SGRBG10_1X10
[ 4323.444996]
MT9V024, r3gl0: mt9v024_enum_mbus_code
[ 4323.445008]
MT9V024, r3gl0: mt9v024_get_format_code
[ 4323.445012]
getting MEDIA_BUS_FMT_SGRBG10_1X10
[ 4323.445045]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=-2140645888
[ 4323.445052]
MT9V024, r3gl0: mt9v024_query_capability
[ 4323.445056]
MT9V024, r3gl0: mt9v024_query_capability + case
[ 4323.445059]
MT9V024, r3gl0: returned mt9v024_query_capability
[ 4323.445061]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.445065]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.445068]
flusher
[ 4323.457682]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=261
[ 4323.457698]
MT9V024, r3gl0: VVSENSORIOC_QUERY
[ 4323.457701]
MT9V024, r3gl0: CONFIG_HARDENED_USERCOPY = 0
[ 4323.457704]
MT9V024, r3gl0: mt9v024_query_supports
[ 4323.457707]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.457711]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.457713]
flusher
[ 4323.626584]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=261
[ 4323.626602]
MT9V024, r3gl0: VVSENSORIOC_QUERY
[ 4323.626604]
MT9V024, r3gl0: CONFIG_HARDENED_USERCOPY = 0
[ 4323.626606]
MT9V024, r3gl0: mt9v024_query_supports
[ 4323.626609]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.626612]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.626614]
flusher
[ 4323.626627]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=257
[ 4323.626630]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.626632]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.626634]
flusher
[ 4323.626638]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=260
[ 4323.626640]
MT9V024, r3gl0 mt9v024_get_clk
[ 4323.626644]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.626646]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.626648]
flusher
[ 4323.626652]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=259
[ 4323.626654]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.626657]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.626659]
flusher
[ 4323.626662]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=256
[ 4323.626665]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.626667]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.626669]
flusher
[ 4323.626672]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=262
[ 4323.626675]
MT9V024, r3gl0: mt9v024_set_sensor_mode
[ 4323.626678]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.626681]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.626683]
flusher
[ 4323.626686]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=263
[ 4323.626688]
MT9V024, r3gl0: mt9v024_get_sensor_mode
[ 4323.626691]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.626693]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.626695]
flusher
[ 4323.626701]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=261
[ 4323.626703]
MT9V024, r3gl0: VVSENSORIOC_QUERY
[ 4323.626705]
MT9V024, r3gl0: CONFIG_HARDENED_USERCOPY = 0
[ 4323.626707]
MT9V024, r3gl0: mt9v024_query_supports
[ 4323.626709]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.626712]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.626714]
flusher
[ 4323.639847] enter isp_mi_stop
[ 4323.642856]
MT9V024, r3gl0: mt9v024_set_fmt
[ 4323.642866]
MT9V024, r3gl0: mt9v024_get_format_code
[ 4323.642869]
getting MEDIA_BUS_FMT_SGRBG10_1X10
[ 4323.642876]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=285
[ 4323.642881]
MT9V024, r3gl0 mt9v024_set_test_pattern - NOT implemented
[ 4323.642883]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.642886]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.642888]
flusher
[ 4323.642898]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=279
[ 4323.642901]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.642903]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.642905]
flusher
[ 4323.642908]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=263
[ 4323.642911]
MT9V024, r3gl0: mt9v024_get_sensor_mode
[ 4323.642913]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.642916]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.642918]
flusher
[ 4323.643324]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=274
[ 4323.643332]
MT9V024, r3gl0 mt9v024_set_exp - Not implemented
[ 4323.643335]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.643338]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.643340]
flusher
[ 4323.643346]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=277
[ 4323.643348]
MT9V024, r3gl0 mt9v024_set_gain - Not implemented
[ 4323.643350]
MT9V024, r3gl0: mt9v024_priv_ioctl after case, ret=0
[ 4323.643353]
MT9V024, r3gl0: mt9v024_priv_ioctl before final return
[ 4323.643355]
flusher
[ 4323.645211]
MT9V024, r3gl0: mt9v024_enum_mbus_code
[ 4323.645223]
MT9V024, r3gl0: mt9v024_get_format_code
[ 4323.645226]
getting MEDIA_BUS_FMT_SGRBG10_1X10
[ 4323.645342]
MT9V024, r3gl0: mt9v024_enum_mbus_code
[ 4323.645345]
MT9V024, r3gl0: mt9v024_get_format_code
[ 4323.645347]
getting MEDIA_BUS_FMT_SGRBG10_1X10
[ 4323.645486] enter isp_s_comp
[ 4323.645500] enter isp_s_comp
[ 4323.645505] enter isp_s_comp
[ 4323.645605]
MT9V024, r3gl0: mt9v024_enum_mbus_code
[ 4323.645608]
MT9V024, r3gl0: mt9v024_get_format_code
[ 4323.645610]
getting MEDIA_BUS_FMT_SGRBG10_1X10
[ 4323.661739] enter wdr3_hw_init
[ 4323.661752] wdr3 res: 752 480
[ 4323.693491] enter isp_set_stream 1
[ 4323.704723] enter isp_mi_start
[ 4323.705232]
MT9V024, r3gl0: mt9v024_priv_ioctl request, cmd=272
[ 4323.705245]
MT9V024, r3gl0: mt9v024_s_stream enable: 1
[ 4323.705249]
MT9V024, r3gl0: mt9v024_superinit
[ 4327.005171] MT9V024, r3gl0: Sensor enabled
---
this is how my media looks like:
root@imx8mp:~/build-out/sdk# media-ctl -p -d /dev/media0
Media controller API version 5.15.71
Media device information
------------------------
driver vvcam-video
model viv_media
serial
bus info
hw revision 0x0
driver version 5.15.71
Device topology
- entity 1: viv_v4l20 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video0
pad0: Sink
<- "vvcam-dwe.0":0 [ENABLED]
- entity 5: vvcam-dwe.0 (2 pads, 2 links)
type Node subtype V4L flags 0
device node name /dev/v4l-subdev0
pad0: Source
-> "viv_v4l20":0 [ENABLED]
pad1: Sink
<- "vvcam-isp.0":0 [ENABLED]
- entity 8: vvcam-isp.0 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/v4l-subdev1
pad0: Source
-> "vvcam-dwe.0":1 [ENABLED]
root@imx8mp:~/build-out/sdk# media-ctl -p -d /dev/media1
Media controller API version 5.15.71
Media device information
------------------------
driver mxc-md
model FSL Capture Media Device
serial
bus info
hw revision 0x0
driver version 5.15.71
Device topology
- entity 1: mxc-mipi-csi2.0 (8 pads, 1 link)
type Node subtype V4L flags 0
device node name /dev/v4l-subdev2
pad0: Sink
<- "mt9v024 2-0048":0 [ENABLED,IMMUTABLE]
pad1: Sink
pad2: Sink
pad3: Sink
pad4: Source
pad5: Source
pad6: Source
pad7: Source
- entity 10: mt9v024 2-0048 (1 pad, 1 link)
type V4L2 subdev subtype Sensor flags 0
device node name /dev/v4l-subdev3
pad0: Source
[fmt:SGRBG10_1X10/752x480 field:none]
-> "mxc-mipi-csi2.0":0 [ENABLED,IMMUTABLE]
----
my dewarp json file looks like this:
{
"dewarpConfigArray" :[
{
"source_image":{
"width" : 752,
"height" : 480
},
"?dewarpType": "LENS_CORRECTION, FISHEYE_EXPAND, SPLIT_SCREEN",
"dewarpType": "FISHEYE_DEWARP",
"scale": {
"roix" : 0,
"roiy" : 0,
"factor" : 1.0
},
"split": {
"horizon_line" : 240,
"vertical_line_up" : 367,
"vertical_line_down": 367
},
"bypass" : true,
"hflip" : false,
"vflip" : false,
"camera_matrix" : [ 3.9177894938743270e+003, 0., 1.9716642989691159e+003, 0.,3.9177894938743270e+003, 1.1024451486734267e+003, 0., 0., 1. ],
"distortion_coeff": [ -1.3019040624278982e-001, 2.2621318183135611e-001,1.2109476203374344e-003, 9.4317229120640680e-004,-7.1053958306120402e-001 ],
"perspective" : [1.0, 0, 0, 0, 1, 0, 0, 0, 1]
}
]
}