When test gstreamer, I create a pipeline like this:
sudo gst-launch-1.0 filesrc location=tc10.264 ! h264parse ! omxh264dec ! nvhdmioverlaysink -e
And I got the error information:
NvxBaseWorkerFunction[2575] comp OMX.Nvidia.render.hdmi.overlay.yuv420 Error -2147479552
NvxBaseWorkerFunction[2575] comp OMX.Nvidia.render.hdmi.overlay.yuv420 Error -2147479552
nvdc: open: Too many open files
nvdc: failed to open '/dev/fb0'.
Then I change the sink, it works well.
sudo gst-launch-1.0 filesrc location=tc10.264 ! h264parse ! omxh264dec ! autovideosink -e
or this one:
sudo gst-launch-1.0 filesrc location=tc10.264 ! h264parse ! omxh264dec ! nvvidconv ! 'video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)RGBA' ! nvoverlaysink -e
I want to know why I can’t use nvhdmioverlaysink
I can see this on R28.1, too. Unlike you, I need to add qtdemux in the pipeline to get it working with autovideosink or nvoverlaysink from my sample file.
I cannot help much, but for additional debug, using:
GST_DEBUG=*:3 gst-launch-1.0 -e filesrc location=/home/ubuntu/Videos/Serenity-HD_DVD_Trailer.mp4 ! qtdemux ! h264parse ! omxh264dec ! nvvidconv ! 'video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, format=(string)RGBA' ! nvhdmioverlaysink
you will see the first error is:
0:00:00.104379823 27344 0x7f5800ff30 ERROR omx gstomx.c:504:EventHandler:<nvhdmioverlaysink-nvhdmioverlaysink0> yuv420 got error: Insufficient resources (0x80001000)
There is also a FIXME before:
0:00:00.067871023 27344 0x5af4f0 FIXME videodecoder gstvideodecoder.c:946:gst_video_decoder_drain_out:<omxh264dec-omxh264dec0> Sub-class should implement drain()
but not sure if this is related.
I can use fbdevsink in Command line interface:
gst-launch-1.0 filesrc location=tc10.264 ! h264parse ! omxh264dec ! nvvidconv ! videoscale ! 'video/x-raw,width=(int)1920,height=(int)1080' ! fbdevsink -e
VickNV
November 9, 2017, 5:13am
4