Gstreamer gst-nvivafilter

I try to use gst-nvivafilter according to the Tegra X1/Regra Linux Driver Package Multimedia User Guide. The pipeline is as below.

gst-launch-1.0 filesrc location='/home/ubuntu/Documents/WORK/testvideo.mp4' ! qtdemux ! h264parse ! omxh264dec ! nvivafilter cuda-process=true customer-lib-name="libsample_process.so" ! nvoverlaysink -e

But an error occurred.

Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ...
NvMMLiteOpen : Block : BlockType = 261 
TVMR: NvMMLiteTVMRDecBlockOpen: 7580: NvMMLiteBlockOpen 
NvMMLiteBlockCreate : Block : BlockType = 261 
TVMR: cbBeginSequence: 1166: BeginSequence  1280x720, bVPR = 0, fFrameRate = 23.976024
TVMR: LowCorner Frequency = 100000 
TVMR: cbBeginSequence: 1545: DecodeBuffers = 4, pnvsi->eCodec = 4, codec = 0 
TVMR: cbBeginSequence: 1606: Display Resolution : (1280x720) 
TVMR: cbBeginSequence: 1607: Display Aspect Ratio : (1280x720) 
TVMR: cbBeginSequence: 1649: ColorFormat : 5 
TVMR: cbBeginSequence:1660 ColorSpace = NvColorSpace_YCbCr709
TVMR: cbBeginSequence: 1790: SurfaceLayout = 3
TVMR: cbBeginSequence: 1868: NumOfSurfaces = 8, InteraceStream = 0, InterlaceEnabled = 0, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1, BitDepthForSurface = 8 LumaBitDepth = 8, ChromaBitDepth = 8, ChromaFormat = 5
Allocating new output: 1280x720 (x 10), ThumbnailMode = 0
ERROR: from element /GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0: Internal data stream error.
Additional debug info:
/dvs/git/dirty/git-master_linux/external/gstreamer/gst-omx/omx/gstomxvideodec.c(2845): gst_omx_video_dec_loop (): /GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0:
stream stopped, reason not-negotiated
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
TVMR: cbDisplayPicture: 3753: Retunred NULL Frame Buffer 
TVMR: cbDisplayPicture: 3753: Retunred NULL Frame Buffer 
TVMR: TVMRFrameStatusReporting: 6067: Closing TVMR Frame Status Thread -------------
TVMR: TVMRVPRFloorSizeSettingThread: 5885: Closing TVMRVPRFloorSizeSettingThread -------------
TVMR: TVMRFrameDelivery: 5917: Closing TVMR Frame Delivery Thread -------------
TVMR: NvMMLiteTVMRDecBlockClose: 7740: Done 
Freeing pipeline ...

Please refer to https://devtalk.nvidia.com/default/topic/963123/jetson-tx1/video-mapping-on-jetson-tx1/post/4979740/#4979740

Thanks for your help.

And I have another question.

I want to create a gst_plugin according to the website,

https://gstreamer.freedesktop.org/documentation/plugin-development/index.html

But it seems can not run on the TX1.
The pipeline as below.

gst-launch-1.0 filesrc location='/home/ubuntu/Documents/ZLC_WORK/testvideo.mp4' ! qtdemux name=demux ! queue ! h264parse ! omxh264dec ! nvvidconv  ! 'video/x-raw, format=(string)GRAY8' ! zhufilter ! videoconvert  ! xvimagesink -e

The error code is as below.

Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and MjstreamingPipeline is PREROLLING ...
NvMMLiteOpen : Block : BlockType = 261 
TVMR: NvMMLiteTVMRDecBlockOpen: 7580: NvMMLiteBlockOpen 
NvMMLiteBlockCreate : Block : BlockType = 261 
TVMR: cbBeginSequence: 1166: BeginSequence  1280x720, bVPR = 0, fFrameRate = 23.976024
TVMR: LowCorner Frequency = 100000 
TVMR: cbBeginSequence: 1545: DecodeBuffers = 4, pnvsi->eCodec = 4, codec = 0 
TVMR: cbBeginSequence: 1606: Display Resolution : (1280x720) 
TVMR: cbBeginSequence: 1607: Display Aspect Ratio : (1280x720) 
TVMR: cbBeginSequence: 1649: ColorFormat : 5 
TVMR: cbBeginSequence:1660 ColorSpace = NvColorSpace_YCbCr709
TVMR: cbBeginSequence: 1790: SurfaceLayout = 3
TVMR: cbBeginSequence: 1868: NumOfSurfaces = 8, InteraceStream = 0, InterlaceEnabled = 0, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1, BitDepthForSurface = 8 LumaBitDepth = 8, ChromaBitDepth = 8, ChromaFormat = 5
Allocating new output: 1280x720 (x 10), ThumbnailMode = 0
ERROR: from element /GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0: Internal data stream error.
Additional debug info:
/dvs/git/dirty/git-master_linux/external/gstreamer/gst-omx/omx/gstomxvideodec.c(2845): gst_omx_video_dec_loop (): /GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0:
stream stopped, reason not-negotiated
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
TVMR: cbDisplayPicture: 3753: Retunred NULL Frame Buffer 
TVMR: TVMRFrameStatusReporting: 6067: Closing TVMR Frame Status Thread -------------
TVMR: TVMRVPRFloorSizeSettingThread: 5885: Closing TVMRVPRFloorSizeSettingThread -------------
TVMR: TVMRFrameDelivery: 5917: Closing TVMR Frame Delivery Thread -------------
TVMR: NvMMLiteTVMRDecBlockClose: 7740: Done

Could you give me suggestion about the difference between GST-Plugin making on TX1 and Desktop.

Any suggestion will be appreciated. Thanks in advance.

It’s hard to know with so few details about your plugin.
It works without zhufilter in the pipeline, so I’d suspect it is the guilty.
You may try to set GST_DEBUG in order to get more informations:

# Set GST_DEBUG to level 3 for any plugin
GST_DEBUG=*:3 gst-launch-1.0 filesrc location='/home/ubuntu/Documents/ZLC_WORK/testvideo.mp4' ! qtdemux name=demux ! queue ! h264parse ! omxh264dec ! nvvidconv  ! 'video/x-raw, format=(string)GRAY8' ! zhufilter ! videoconvert  ! xvimagesink -e