Hi,
I have been trying to see this issues at OpenCV application, but without success.
However, I did the tests using GStreamer directly, and I am not seeing any dropped frame:
Waylandsink:
root@imx8mmevk:~# gst-launch-1.0 -v v4l2src device=/dev/video0 num-buffers=120 ! "video/x-raw, width=320, height=240, framerate=(fraction)30/1" ! fpsdisplaysink sync=false video-sink="waylandsink"
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstWaylandSink:waylandsink0: sync = false
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, width=(int)320, height=(int)240
, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt7
09, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, width=(int)320, height=(i
nt)240, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(stri
ng)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = vi
deo/x-raw, width=(int)320, height=(int)240, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-ra
tio=(fraction)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay.GstPad:sr
c: caps = video/x-raw, width=(int)320, height=(int)240, format=(string)YUY2, framerate=(fraction)30/1, pix
el-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstWaylandSink:waylandsink0.GstPad:sink: caps = v
ideo/x-raw, width=(int)320, height=(int)240, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-r
atio=(fraction)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay.GstPad:vi
deo_sink: caps = video/x-raw, width=(int)320, height=(int)240, format=(string)YUY2, framerate=(fraction)30
/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw, width=(int)
320, height=(int)240, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, col
orimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, width=(int)320, height=(
int)240, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(str
ing)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstWaylandSink:waylandsink0: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 17, dropped: 0, current: 31.74, average: 31.74
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 17, dropped: 0, current
: 31.74, average: 31.74
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 32, dropped: 0, current: 29.98, average: 30.89
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 32, dropped: 0, current
: 29.98, average: 30.89
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 47, dropped: 0, current: 30.00, average: 30.60
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 47, dropped: 0, current
: 30.00, average: 30.60
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 63, dropped: 0, current: 30.11, average: 30.47
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 63, dropped: 0, current
: 30.11, average: 30.47
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 78, dropped: 0, current: 30.00, average: 30.38
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 78, dropped: 0, current
: 30.00, average: 30.38
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 94, dropped: 0, current: 30.03, average: 30.32
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 94, dropped: 0, current
: 30.03, average: 30.32
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 109, dropped: 0, current: 30.00, average: 30.28
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 109, dropped: 0, curren
t: 30.00, average: 30.28
Got EOS from element "pipeline0".
Execution ended after 0:00:04.251347925
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Total showed frames (121), playing for (0:00:04.251560180), fps (28.460).
Freeing pipeline ...
Appsink:
root@imx8mmevk:~# gst-launch-1.0 -v v4l2src device=/dev/video0 num-buffers=120 ! "video/x-raw, width=320, height=240, framerate=(fraction)30/1" ! fpsdisplaysink sync=false video-sink="appsink"
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...sync=false video-sink="wayland
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstAppSink:appsink0: sync = false
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, width=(int)320, height=(int)240
, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt7
09, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, width=(int)320, height=(i
nt)240, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(stri
ng)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = vi
deo/x-raw, width=(int)320, height=(int)240, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-ra
tio=(fraction)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay.GstPad:sr
c: caps = video/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition), width=(int)320, height=(int)2
40, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)b
t709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstAppSink:appsink0.GstPad:sink: caps = video/x-r
aw(memory:SystemMemory, meta:GstVideoOverlayComposition), width=(int)320, height=(int)240, format=(string)
YUY2, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709, interlace-mod
e=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay.GstPad:sr
c: caps = video/x-raw, width=(int)320, height=(int)240, format=(string)YUY2, framerate=(fraction)30/1, pix
el-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstAppSink:appsink0.GstPad:sink: caps = video/x-r
aw, width=(int)320, height=(int)240, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-ratio=(fr
action)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay.GstPad:vi
deo_sink: caps = video/x-raw, width=(int)320, height=(int)240, format=(string)YUY2, framerate=(fraction)30
/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw, width=(int)
320, height=(int)240, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, col
orimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, width=(int)320, height=(
int)240, format=(string)YUY2, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(str
ing)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstAppSink:appsink0: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 16, dropped: 0, current: 31.99, average: 31.99
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 16, dropped: 0, current
: 31.99, average: 31.99
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 31, dropped: 0, current: 29.98, average: 30.98
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 31, dropped: 0, current
: 29.98, average: 30.98
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 46, dropped: 0, current: 29.99, average: 30.65
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 46, dropped: 0, current
: 29.99, average: 30.65
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 61, dropped: 0, current: 30.00, average: 30.49
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 61, dropped: 0, current
: 30.00, average: 30.49
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 77, dropped: 0, current: 30.07, average: 30.40
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 77, dropped: 0, current
: 30.07, average: 30.40
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 93, dropped: 0, current: 30.07, average: 30.34
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 93, dropped: 0, current
: 30.07, average: 30.34
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstTextOverlay:fps-display-text-overlay: text = r
endered: 108, dropped: 0, current: 30.00, average: 30.30
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 108, dropped: 0, curren
t: 30.00, average: 30.30
^Chandling interrupt. (IT DOES NOT STOP ALONE!)
Interrupt: Stopping pipeline ...
Execution ended after 0:00:11.726109829
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
We do not have the same results than waylandsink, but note that every fdpdisplaysink print contains: dropped: 0.
So please, can you share the OpenCV application?
Plus, what is the camera used here? Note that 320x240 is a very low resolution, and it should not required the sync=false usage.
Regards