Hi,
We are trying to acquire images from an imx390 sensor using an am62a board. When building the GStreamer pipeline, we encountered the following issues:
0:00:01.154106150 1389 0xffff4800b000 INFO GST_EVENT gstevent.c:820:gst_event_new_caps: creating caps event video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)120/1, colorimetry=(string)bt709, interlace-mode=(string)progressive 0:00:01.154396205 1389 0xffff4800b000 INFO basetransform gstbasetransform.c:1317:gst_base_transform_setcaps:<capsfilter0> reuse caps 0:00:01.154536985 1389 0xffff4800b000 INFO GST_EVENT gstevent.c:820:gst_event_new_caps: creating caps event video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)120/1, colorimetry=(string)bt709, interlace-mode=(string)progressive 0:00:01.154664885 1389 0xffff4800b000 INFO GST_EVENT gstevent.c:820:gst_event_new_caps: creating caps event video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)120/1, colorimetry=(string)bt709, interlace-mode=(string)progressive 0:00:01.154891530 1389 0xffff4800b000 INFO v4l2 gstv4l2object.c:3077:gst_v4l2_object_setup_pool:<v4l2src1:src> accessing buffers via mode 5 0:00:01.155457415 1389 0xffff4800b000 INFO v4l2bufferpool gstv4l2bufferpool.c:568:gst_v4l2_buffer_pool_set_config:<v4l2src1:pool:src> increasing minimum buffers to 2 0:00:01.155515335 1389 0xffff4800b000 INFO v4l2bufferpool gstv4l2bufferpool.c:581:gst_v4l2_buffer_pool_set_config:<v4l2src1:pool:src> reducing maximum buffers to 32 0:00:01.155709795 1389 0xffff4800b000 WARN v4l2 gstv4l2object.c:4694:gst_v4l2_object_decide_allocation:<v4l2src1> error: No downstream pool to import from. 0:00:01.155751445 1389 0xffff4800b000 WARN v4l2 gstv4l2object.c:4694:gst_v4l2_object_decide_allocation:<v4l2src1> error: When importing DMABUF or USERPTR, we need a pool to import from 0:00:01.155818325 1389 0xffff4800b000 INFO GST_ERROR_SYSTEM gstelement.c:2153:gst_element_message_full_with_details:<v4l2src1> posting message: No downstream pool to import from. 0:00:01.155953310 1389 0xffff4800b000 INFO GST_ERROR_SYSTEM gstelement.c:2180:gst_element_message_full_with_details:<v4l2src1> posted error message: No downstream pool to import from.
and here is how we build the pipeline.
capture->v4l2 = gst_element_factory_make("v4l2src", "v4l2src1");
capture->pipeline = gst_pipeline_new("pipeline");
capture->appsink = gst_element_factory_make("appsink", "appsink");
capture->v4l2Caps = gst_caps_new_simple(
"video/x-raw", "format", G_TYPE_STRING, "UYVY", "width", G_TYPE_INT,
CAMERA_WIDTH, "height", G_TYPE_INT, CAMERA_HEIGHT, NULL);
NM_DEBUG("create element done!\n");
if ((NULL == capture->v4l2) || (NULL == capture->pipeline) ||
(NULL == capture->appsink) || (NULL == capture->v4l2Caps)) {
NM_ERROR("init faild!\n");
return -1;
}
capture->bus = gst_pipeline_get_bus(GST_PIPELINE(capture->pipeline));
capture->loop = g_main_loop_new(NULL, FALSE);
capture->bus_watch_id =
gst_bus_add_watch(capture->bus, onBusCall, capture->loop);
g_object_set(capture->v4l2, "device", "/dev/video2", "io-mode", 5, NULL);
g_object_set(capture->appsink, "emit-signals", TRUE, NULL);
by the way, the pipeline worked when we set io-mode to 0, but it cost 80% cpu, which is unacceptable for us.
Could you tell me how to solve this problem?
Kind regards,
Lou