Part Number: AM62A7
Tool/software:
Hello!
I'm using an AM62A7 EVM, with a adrucam v3link d-ch adapter board plugged into a FPD3 ISX031 camera module. (this is a YUV ~3MP camera module that doesn't require an ISP)
I've got the camera streaming no problem at ~30 fps, but the gstreamer pipeline I run can only process ~7ish frames per second:
`gst-launch-1.0 -v v4l2src device=/dev/video4 ! queue ! video/x-raw, width=1920, height=1536, format=UYVY, framerate=30/1 ! videoconvertscale ! video/x-raw, width=1920, height=1536, format=NV12, framerate=30/1 ! queue ! tiovxmultiscaler ! queue ! video/x-raw, format=NV12, width=1920, height=1080 ! queue ! fpsdisplaysink fps-update-interval=5000 name=rgb text-overlay=false sync=false video-sink="kmssink driver-name=tidss force-modesetting=true sync=false"`
When I try to set `v4l2src io-mode=5`, the gstreamer pipeline fails to even launch, saying there is no memory:
root@am62xx-evm:/opt/edgeai-gst-apps# gst-launch-1.0 -v v4l2src device=/dev/video4 io-mode=5 ! queue ! video/x-raw, width=1920, height=1536, format=UYVY, framerate=30/1 ! videoconvertscale ! video/x-raw, width=1920, height=1536, format=NV12, framerate=30/1 ! queue ! tiovxmultiscaler ! queue ! video/x-raw, format=NV12, width=1920, height=1080 ! queue ! fpsdisplaysink fps-update-interval=5000 name=rgb text-overlay=false sync=false video-sink="kmssink driver-name=tidss force-modesetting=true sync=false" APP: Init ... !!! 172.756917 s: MEM: Init ... !!! 172.756979 s: MEM: Initialized DMA HEAP (fd=8) !!! 172.757170 s: MEM: Init ... Done !!! 172.757190 s: IPC: Init ... !!! 172.774748 s: IPC: Init ... Done !!! REMOTE_SERVICE: Init ... !!! REMOTE_SERVICE: Init ... Done !!! 172.781660 s: GTC Frequency = 200 MHz APP: Init ... Done !!! 172.785977 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_ERROR 172.786041 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_WARNING 172.786065 s: VX_ZONE_INFO: Globally Enabled VX_ZONE_INFO 172.788326 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-0 172.788516 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-1 172.788739 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-2 172.788861 s: VX_ZONE_INFO: [tivxPlatformCreateTargetId:134] Added target MPU-3 172.788881 s: VX_ZONE_INFO: [tivxInitLocal:126] Initialization Done !!! 172.788895 s: VX_ZONE_INFO: Globally Disabled VX_ZONE_INFO Setting pipeline to PAUSED ... Pipeline is live and does not need PREROLL ... /GstPipeline:pipeline0/GstFPSDisplaySink:rgb/GstKMSSink:kmssink0: display-width = 1920 /GstPipeline:pipeline0/GstFPSDisplaySink:rgb/GstKMSSink:kmssink0: display-height = 1200 /GstPipeline:pipeline0/GstFPSDisplaySink:rgb/GstKMSSink:kmssink0: sync = false Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1536, format=(string)UYVY, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709 /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1536, format=(string)UYVY, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709 /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1536, format=(string)UYVY, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709 /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1536, format=(string)UYVY, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709 /GstPipeline:pipeline0/GstVideoConvertScale:videoconvertscale0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1536, framerate=(fraction)30/1, interlace-mode=(string)progressive, format=(string)NV12, colorimetry=(string)bt709 /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1536, framerate=(fraction)30/1, interlace-mode=(string)progressive, format=(string)NV12, colorimetry=(string)bt709 /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1536, framerate=(fraction)30/1, interlace-mode=(string)progressive, format=(string)NV12, colorimetry=(string)bt709 /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1536, framerate=(fraction)30/1, interlace-mode=(string)progressive, format=(string)NV12, colorimetry=(string)bt709 /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1536, framerate=(fraction)30/1, interlace-mode=(string)progressive, format=(string)NV12, colorimetry=(string)bt709 /GstPipeline:pipeline0/GstTIOVXMultiScaler:tiovxmultiscaler0.GstTIOVXMultiScalerPad:src_0: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstQueue:queue2.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstQueue:queue2.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstCapsFilter:capsfilter2.GstPad:src: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstQueue:queue3.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstQueue:queue3.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstCapsFilter:capsfilter2.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstFPSDisplaySink:rgb.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstFPSDisplaySink:rgb/GstKMSSink:kmssink0.GstPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstFPSDisplaySink:rgb.GstGhostPad:sink: caps = video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1 /GstPipeline:pipeline0/GstTIOVXMultiScaler:tiovxmultiscaler0.GstTIOVXMultiScalerPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1536, framerate=(fraction)30/1, interlace-mode=(string)progressive, format=(string)NV12, colorimetry=(string)bt709 /GstPipeline:pipeline0/GstVideoConvertScale:videoconvertscale0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1536, format=(string)UYVY, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709 /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1536, format=(string)UYVY, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709 ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to allocate required memory. Additional debug info: /usr/src/debug/gstreamer1.0-plugins-good/1.22.12/sys/v4l2/gstv4l2src.c(950): gst_v4l2src_decide_allocation (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Buffer pool activation failed Execution ended after 0:00:00.065207955 Setting pipeline to NULL ... ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error. Additional debug info: /usr/src/debug/gstreamer1.0/1.22.12/libs/gst/base/gstbasesrc.c(3134): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: streaming stopped, reason not-negotiated (-4) Freeing pipeline ... APP: Deinit ... !!! REMOTE_SERVICE: Deinit ... !!! REMOTE_SERVICE: Deinit ... Done !!! 173.074086 s: IPC: Deinit ... !!! 173.074615 s: IPC: DeInit ... Done !!! 173.074656 s: MEM: Deinit ... !!! 173.074676 s: DDR_SHARED_MEM: Alloc's: 4 alloc's of 7536696 bytes 173.074689 s: DDR_SHARED_MEM: Free's : 4 free's of 7536696 bytes 173.074698 s: DDR_SHARED_MEM: Open's : 0 allocs of 0 bytes 173.074714 s: MEM: Deinit ... Done !!! APP: Deinit ... Done !!!
How can I get the system to display the output at 30 FPS?
Thank you!