Hello,
I'm developing an application for the IMX8M Mini using opencv videocapture with a GStreamer backend. So far, I have the following pipeline, which works and outputs video in YUV format:
cv::VideoCapture("filesrc location=<filename>.mp4 ! video/quicktime,systemstream=true ! aiurdemux name=demux demux. ! queue ! vpudec ! queue ! appsink", cv::CAP_GSTREAMER));
However, I would like to have the video in RGB, as later on in the program I need to use the video input as an OpenGL texture. My approach for this has been to add the imxvideoconvert_g2d to the GStreamer pipeline.
When I run the following pipeline from the command line, I get video output as expected:
gst-launch-1.0 filesrc location=<filename> ! video/quicktime,systemstream=true ! aiurdemux name=demux demux.video_0 ! vpudec ! imxvideoconvert_g2d ! video/x-raw,format=RGB16 ! waylandsink
However, when I try to use this pipeline in the application, I get GStreamer linking errors with aiurdemx:
Pipeline:
cv::VideoCapture("filesrc location=/media/1080_grapes.mp4 ! video/quicktime,systemstream=true ! aiurdemux name=demux demux.video_0 ! vpudec ! imxvideoconvert_g2d ! video/x-raw,format=RGB16 ! appsink", cv::CAP_GSTREAMER));
Linking Errors:
0:00:00.078805339 1474 0xffffb418a8a0 WARN default grammar.y:506:gst_parse_no_more_pads:<demux> warning: Delayed linking failed.
0:00:00.078868090 1474 0xffffb418a8a0 WARN default grammar.y:506:gst_parse_no_more_pads:<demux> warning: failed delayed linking pad video_0 of GstAiurDemux named demux to some pad of GstVpuDec named vpudec0
Thank you in advance for any help with this.