When using the sample I’ve posted for processing NVMM frames with opencv on cuda, I’ve been using nvcamerasrc https://devtalk.nvidia.com/default/topic/1022543/jetson-tx2/gstreamer-nvmm-lt-gt-opencv-gpumat/post/5208232/#5208232. I’m using standard R28.1.
It works fine by launching:
GST_DEBUG=nvivafilter:4 gst-launch-1.0 -ev nvcamerasrc ! 'video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=120/1' ! nvivafilter customer-lib-name=./lib-gst-custom-opencv_cudaprocess.so cuda-process=true ! 'video/x-raw(memory:NVMM),format=RGBA' ! nvegltransform ! nveglglessink
but on first launch, and only first one after boot [EDIT: it may happen on other launch], I get this message:
WARNING: from element /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2854): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0:
There may be a timestamping problem, or this computer is too slow.
Seems to work anyway, but when I type Ctrl-C in the shell for stopping, I get this from gst-launch-1.0:
^Chandling interrupt.
Interrupt: Stopping pipeline ...
EOS on shutdown enabled -- Forcing EOS on the pipeline
Waiting for EOS...
Got EOS from element "pipeline0".
EOS received - stopping pipeline...
Execution ended after 0:00:08.065689353
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
<b>Socket read error. Camera Daemon stopped functioning.....</b>
Setting pipeline to NULL ...
Freeing pipeline ...
At the same time, I see this in dmesg:
[ 268.302530] PiecewiseLinear[3609]: unhandled level 3 translation fault (11) at 0x7f78644000, esr 0x92000007
[ 268.312364] pgd = ffffffc076caa000
[ 268.315758] [7f78644000] *pgd=000000025594b003, *pud=000000025594b003, *pmd=000000025594c003, *pte=0000000000000000
[ 268.327886] CPU: 3 PID: 3609 Comm: PiecewiseLinear Not tainted 4.4.38-tegra #1
[ 268.335152] Hardware name: quill (DT)
[ 268.338856] task: ffffffc1a5583e80 ti: ffffffc19a788000 task.ti: ffffffc19a788000
[ 268.346422] PC is at 0x7f76c30130
[ 268.346423] LR is at 0x7f76c29a3c
[ 268.346425] pc : [<0000007f76c30130>] lr : [<0000007f76c29a3c>] pstate: 60000000
[ 268.346426] sp : 0000007f54ffe4a0
[ 268.346431] x29: 0000007f54ffe9d0 x28: 0000007f54fff1e0
[ 268.346433] x27: 0000007f54ffe630 x26: 0000000000000000
[ 268.346435] x25: 0000007f764238d0 x24: 0000007f7735f000
[ 268.346437] x23: 0000000000000001 x22: 0000007f70fe7ba8
[ 268.346439] x21: 0000007f70c4bde0 x20: 0000000000000000
[ 268.346441] x19: 0000000000000000 x18: 0000007f71c1ed58
[ 268.346442] x17: 0000007f77c94760 x16: 0000007f77297ce0
[ 268.346444] x15: 0000000000000028 x14: 0000000000000000
[ 268.346446] x13: 0000000000000000 x12: 0000000000000001
[ 268.346447] x11: 0000007f771d3fe0 x10: 0000007f54ffe680
[ 268.346449] x9 : 0000000000000001 x8 : 0000000000000000
[ 268.346451] x7 : 0000000000000020 x6 : 0000000000000000
[ 268.346452] x5 : 0000007f54fff8d0 x4 : 0000000000000000
[ 268.346454] x3 : 0000000000000000 x2 : 0000007f78644000
[ 268.346455] x1 : 0000007f54ffe4b0 x0 : 0000007f70c6d770
[ 268.346462] Library at 0x7f76c30130: 0x7f769be000 /usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1.1
[ 268.346463] Library at 0x7f76c29a3c: 0x7f769be000 /usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1.1
[ 268.346464] vdso base = 0x7f78693000
It works anyway, next times it has no longer this error.
Boosting the jeston makes no difference, as far as I can see.
I’ve copied my custom lib into eMMC, seems not related to external disk access time.
Any idea what going wrong ?