I am using this Gstreamer pipeline in QT5. EGLFS platform plugin is used (no Wayland/weston):
descr = g_strdup_printf ("v4l2src name=video_source device=/dev/v4l/by-path/platform-vvcam-video.0-video-index0 ! video/x-raw, width=3840,height=2160 ! "
"videocrop name=video_crop ! imxvideoconvert_g2d ! interpipesink name=src_1 sync=false ");
I am dynamically zooming by setting videocrop parameters (left_crop, right_crop etc.)
I eventually get this type of CMA related error and video stops playing:
[10337.440327] alloc_contig_range: [6d900, 6da77) PFNs busy
When searching for "alloc_contig_range: PFNs busy" issue, one finds it is related to CMA. here we find some more details about CMA:
Further investigation show the actual issue seems to be located in imxvideoconvert_g2d (G2D GPU Accelerator) element.
When I check this command, videocrop plug-in doesn't crop image buffer itself. It's just set crop metadata and pass this information to imxvideoconvert_g2d. And imxvideoconvert_g2d plug-in check crop metadata about input image buffer and if it's not null, it crop image buffer.
The reason why videocrop plug-in doesn't crop image itself, it's running as in-place mode.
Thus, something must still be buggy in imxvideoconvert_g2d but I could not figure out what it is. Checking source code and fixes did not help either:
Which processor are you working on?
Sorry, I am on imx8m-plus platform using Kernel 5.4.70