Tried to apply a patch, didn’t get much progress on it. But If I try to run a similar pipeline from a file, there are some issues with nvv4l2decoder
.
The pipeline is used looks like this one:
gst-launch-1.0 -v multifilesrc location=test.mp4 loop=true ! h265parse ! queue max-size-buffers=30 max-size-bytes=0 leaky=downstream ! nvv4l2decoder drop-frame-interval=0 num-extra-surfaces=1 ! nvvidconv ! "video/x-raw(memory:NVMM),width=(int)1920,height=(int)1080" ! nvvidconv ! "video/x-raw(memory:NVMM),format=(string)RGBA" ! queue max-size-buffers=30 leaky=downstream ! fakesink
And the error message I got is next:
Setting pipeline to PAUSED ...
Opening in BLOCKING MODE
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstH265Parse:h265parse0.GstPad:src: caps = video/x-h265, width=(int)1920, height=(int)1080, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)main, tier=(string)main, level=(string)4
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-h265, width=(int)1920, height=(int)1080, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)main, tier=(string)main, level=(string)4
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-h265, width=(int)1920, height=(int)1080, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)main, tier=(string)main, level=(string)4
NvMMLiteOpen : Block : BlockType = 279
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 279
/GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0.GstPad:sink: caps = video/x-h265, width=(int)1920, height=(int)1080, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)main, tier=(string)main, level=(string)4
ERROR: from element /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0: Failed to process frame.
Additional debug info:
gstv4l2videodec.c(1609): gst_v4l2_video_dec_handle_frame (): /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0:
Maybe be due to not enough memory or failing driver
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
- The issue disappears if the queue before
nvv4l2decoder
is removed. But for us this is not a solution, because we need queuing in our decoding pipeline
- If I run this command in the loop like
while true; do gst-launch-1.0 ... ; done
finally I get my file playing, but with a bunch of artifacts.
- If I try to use the patch above - nothings happens, there is just a frozen pipeline. Probably because I use Jetpack older that mention in the patch thread.
Any suggestions how this issue can be solved?