Error message of "imxvideoconver_ipu" plughin

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Error message of "imxvideoconver_ipu" plughin

1,044件の閲覧回数
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,

ラベル(4)
2 返答(返信)

920件の閲覧回数
maetaro9876
Contributor II

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

Best regard,

0 件の賞賛

920件の閲覧回数
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