Error message of "imxvideoconver_ipu" plughin

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Error message of "imxvideoconver_ipu" plughin

939 Views
maetaro9876
Contributor II

Hi there.

I have a question about generated some warnings from "imxvideoconver_ipu" plughin in Gstreamer NXP implementation.

I have run gst-launch command like the following line(I execute this command from ssh console).

$ gst-launch-1.0 -v videotestsrc ! capsfilter caps=video/x-raw,width=1280,height=1024,format=UYVY ! imxvideoconvert_ipu ! capsfilter caps=video/x-raw,format=I420 ! vpuenc_jpeg ! testsink
$ Setting pipeline to PAUSED ...
$ [INFO] Product Info: i.MX6Q/D/S
$ ====== VPUENC: 4.4.5 build on Mar 16 2020 03:39:50. ======
$ wrapper: 3.0.0 (VPUWRAPPER_ARM_LINUX Build on Dec 13 2019 04:14:01)
$ vpulib: 5.4.38
$ firmware: 3.1.1.570363
$ Pipeline is PREROLLING ...
$ /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
$ /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
$ /GstPipeline:pipeline0/imxvideoconvert_ipu:imxvideoconvert_ipu0.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)I420
$ /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)I420
$ /GstPipeline:pipeline0/vpuenc_jpeg:vpuenc_jpeg0.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)I420
$ /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)I420
$ /GstPipeline:pipeline0/imxvideoconvert_ipu:imxvideoconvert_ipu0.GstPad:sink: caps = video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
$ /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
$ /GstPipeline:pipeline0/vpuenc_jpeg:vpuenc_jpeg0.GstPad:src: caps = image/jpeg, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono
$ /GstPipeline:pipeline0/GstTest:test0.GstPad:sink: caps = image/jpeg, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono
$ Pipeline is PREROLLED ...
$ Setting pipeline to PLAYING ...
$ New clock: GstSystemClock

OK, No error occurs, but the serial console have many messages (same as dmesg).

> imx-ipuv3 2800000.ipu: IDMAC21's U offset is not 8-byte aligned.
> imx-ipuv3 2800000.ipu: IDMAC21's V offset is not 8-byte aligned
> imx-ipuv3 2800000.ipu: IDMAC21's U offset is not 8-byte aligned
> imx-ipuv3 2800000.ipu: IDMAC21's V offset is not 8-byte aligned
> .... repeated ....

However, the following the line have no message in console.

$ gst-launch-1.0 -v videotestsrc ! capsfilter caps=video/x-raw,width=1280,height=1024,format=UYVY ! imxvideoconvert_ipu ! vpuenc_jpeg ! testsink
$ Setting pipeline to PAUSED ...
$ [INFO] Product Info: i.MX6Q/D/S
$ ====== VPUENC: 4.4.5 build on Mar 16 2020 03:39:50. ======
$ wrapper: 3.0.0 (VPUWRAPPER_ARM_LINUX Build on Dec 13 2019 04:14:01)
$ vpulib: 5.4.38
$ firmware: 3.1.1.570363
$ Pipeline is PREROLLING ...
$ /GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
$ /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
$ /GstPipeline:pipeline0/imxvideoconvert_ipu:imxvideoconvert_ipu0.GstPad:src: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, format=(string)NV12, multiview-mode=(string)mono, interlace-mode=(string)progressive
$ /GstPipeline:pipeline0/vpuenc_jpeg:vpuenc_jpeg0.GstPad:sink: caps = video/x-raw, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, format=(string)NV12, multiview-mode=(string)mono, interlace-mode=(string)progressive
$ /GstPipeline:pipeline0/imxvideoconvert_ipu:imxvideoconvert_ipu0.GstPad:sink: caps = video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
$ /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
$ /GstPipeline:pipeline0/vpuenc_jpeg:vpuenc_jpeg0.GstPad:src: caps = image/jpeg, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono
$ /GstPipeline:pipeline0/GstTest:test0.GstPad:sink: caps = image/jpeg, width=(int)1280, height=(int)1024, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono
$ Pipeline is PREROLLED ...
$ Setting pipeline to PLAYING ...
$ New clock: GstSystemClock

The difference from the line executed above is that the format is not specified in cpasfilter to imxvideoconvert.
In this case, format "NV12" seems to be selected automatically, since followd plugin "vpuenc_jpeg" in pipeline only

accept formats "I420" or "NV12".

Why is the combination of "imxvideoconvert_ipu" and "I420" bad?

My environment as followed.
I am using "SABRE Board SDB for i.MX6 (MCIMX6Q-SDB)" with SD Card Image which build from Yocto according to "i.MX Yocto Project User's Guide.pdf".
I use "Rev. L4.14.98-2.0.0_ga" environment, so the SD image version is "L4.14.98-2.0.0_ga".

$ gst-inspect-1.0 imxvideoconvert_ipu
$ Factory Details:
$ Rank primary + 1 (257)
$ Long-name IMX ipu Video Converter
$ Klass Filter/Converter/Video
$ Description Video CSC/Resize/Rotate/Deinterlace.
$ Author Multimedia Team <shmmmw@freescale.com>
$
$ Plugin Details:
$ Name imxvideoconvert
$ Description IMX Video Convert Plugins
$ Filename /usr/lib/gstreamer-1.0/libgstimxvideoconvert.so
$ Version 4.4.5
$ License LGPL
$ Source module imx-gst1.0-plugin
$ Binary package Freescle Gstreamer Multimedia Plugins
$ Origin URL http://www.freescale.com
$ ...

Best regard,

2 Replies

815 Views
maetaro9876
Contributor II

Hi Joan. Thanks for your reply. Yes. I fix the problem to use NV12 according to your advice.

Best regard,

0 Kudos

815 Views
joanxie
NXP TechSupport
NXP TechSupport

it seems this is buffer align issue, try to use NV12, in fact,  IPU treats both i420 and NV12 are YUV 4:2:0 format, so no performance difference, and for vpu, only support yuv420, so just use NV12