validate: videorate: Update tests to use fakevideodec and fix race condition
There was a case where we could end up having more buffers on the sinkpads than what was expected, depending on timings. This ensure that we have a fixed number of buffers produced by the testsrc, and we play until EOS. Replace theora encoder/decoder chain with fakevideodec for testing QoS handling in videorate rate property tests. This simplifies the test pipeline and removes dependency on theora codecs. Also adjust test expectations to match RGBA format output from fakevideodec instead of I420 from theoradec, and limit buffer counts to make tests more deterministic. This also fixes the rate we set for 2.0 test as we were actually testing 0.5 there. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9013>
This commit is contained in:
parent
efdc9b1aea
commit
fac2d62054
@ -8,7 +8,7 @@
|
||||
|
||||
meta,
|
||||
args = {
|
||||
"videotestsrc pattern=ball animation-mode=frames ! video/x-raw,format=I420,framerate=30/1,width=320,height=240 $(decoder) videorate name=videorate rate=$(rate) ! fakesink sync=true qos=true",
|
||||
"videotestsrc pattern=ball animation-mode=frames num-buffers=$(num_buffers) ! video/x-raw,format=RGBA,framerate=30/1,width=320,height=240 ! fakevideodec ! videorate name=videorate rate=$(rate) ! fakesink sync=true qos=true",
|
||||
},
|
||||
configs = {
|
||||
"$(validateflow), pad=videorate:sink, buffers-checksum=as-id, ignored-event-types={ tag }",
|
||||
@ -19,4 +19,4 @@ crank-clock, expected-time=0.0
|
||||
crank-clock, repeat=9
|
||||
wait, on-clock=true
|
||||
check-position, expected-position=300000000
|
||||
stop
|
||||
crank-clock, repeat="$(n_cranks_to_eos)"
|
||||
|
@ -1,5 +1,4 @@
|
||||
# Using an encoder/decoder to test QoS handling
|
||||
# FIXME: Use a fakevideodec once merged!
|
||||
set-globals, rate=(string)"0.5", decoder="! theoraenc ! theoradec !"
|
||||
set-globals, rate=(string)"0.5", num_buffers=(string)5, n_cranks_to_eos=(string)1
|
||||
|
||||
include, location="check-rate-prop-with-decoder.meta"
|
||||
include, location="check-rate-prop-with-decoder.meta"
|
||||
|
@ -1,9 +1,9 @@
|
||||
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
|
||||
event caps: video/x-raw, chroma-site=(string)jpeg, colorimetry=(string)2:4:5:0, format=(string)I420, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320;
|
||||
event caps: video/x-raw, colorimetry=(string)sRGB, format=(string)RGBA, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320;
|
||||
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
|
||||
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
|
||||
buffer: content-id=1, pts=0:00:00.033333333, dur=0:00:00.033333333
|
||||
buffer: content-id=2, pts=0:00:00.066666666, dur=0:00:00.033333334
|
||||
buffer: content-id=3, pts=0:00:00.100000000, dur=0:00:00.033333333
|
||||
buffer: content-id=4, pts=0:00:00.133333333, dur=0:00:00.033333333
|
||||
buffer: content-id=5, pts=0:00:00.166666666, dur=0:00:00.033333334
|
||||
event eos: (no structure)
|
||||
|
@ -1,5 +1,5 @@
|
||||
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
|
||||
event caps: video/x-raw, chroma-site=(string)jpeg, colorimetry=(string)2:4:5:0, format=(string)I420, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320;
|
||||
event caps: video/x-raw, colorimetry=(string)sRGB, format=(string)RGBA, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320;
|
||||
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
|
||||
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
|
||||
buffer: content-id=0, pts=0:00:00.033333333, dur=0:00:00.033333333, flags=gap
|
||||
@ -10,5 +10,5 @@ buffer: content-id=2, pts=0:00:00.166666666, dur=0:00:00.033333334, flags=gap
|
||||
buffer: content-id=3, pts=0:00:00.200000000, dur=0:00:00.033333333
|
||||
buffer: content-id=3, pts=0:00:00.233333333, dur=0:00:00.033333333, flags=gap
|
||||
buffer: content-id=4, pts=0:00:00.266666666, dur=0:00:00.033333334
|
||||
buffer: content-id=4, pts=0:00:00.300000000, dur=0:00:00.033333333, flags=gap
|
||||
buffer: content-id=5, pts=0:00:00.333333333, dur=0:00:00.033333333
|
||||
buffer: content-id=4, pts=0:00:00.300000000, dur=0:00:00.033333333
|
||||
event eos: (no structure)
|
||||
|
@ -1,5 +1,4 @@
|
||||
# Using an encoder/decoder to test QoS handling
|
||||
# FIXME: Use a fakevideodec once merged!
|
||||
set-globals, rate=(string)"0.5", decoder="! theoraenc ! theoradec !"
|
||||
set-globals, rate=(string)"2.0", num_buffers=(string)"20", n_cranks_to_eos=(string)"2"
|
||||
|
||||
include, location="check-rate-prop-with-decoder.meta"
|
||||
include, location="check-rate-prop-with-decoder.meta"
|
||||
|
@ -1,5 +1,5 @@
|
||||
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
|
||||
event caps: video/x-raw, chroma-site=(string)jpeg, colorimetry=(string)2:4:5:0, format=(string)I420, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320;
|
||||
event caps: video/x-raw, colorimetry=(string)sRGB, format=(string)RGBA, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320;
|
||||
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
|
||||
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
|
||||
buffer: content-id=1, pts=0:00:00.033333333, dur=0:00:00.033333333
|
||||
@ -7,3 +7,18 @@ buffer: content-id=2, pts=0:00:00.066666666, dur=0:00:00.033333334
|
||||
buffer: content-id=3, pts=0:00:00.100000000, dur=0:00:00.033333333
|
||||
buffer: content-id=4, pts=0:00:00.133333333, dur=0:00:00.033333333
|
||||
buffer: content-id=5, pts=0:00:00.166666666, dur=0:00:00.033333334
|
||||
buffer: content-id=6, pts=0:00:00.200000000, dur=0:00:00.033333333
|
||||
buffer: content-id=7, pts=0:00:00.233333333, dur=0:00:00.033333333
|
||||
buffer: content-id=8, pts=0:00:00.266666666, dur=0:00:00.033333334
|
||||
buffer: content-id=9, pts=0:00:00.300000000, dur=0:00:00.033333333
|
||||
buffer: content-id=10, pts=0:00:00.333333333, dur=0:00:00.033333333
|
||||
buffer: content-id=11, pts=0:00:00.366666666, dur=0:00:00.033333334
|
||||
buffer: content-id=12, pts=0:00:00.400000000, dur=0:00:00.033333333
|
||||
buffer: content-id=13, pts=0:00:00.433333333, dur=0:00:00.033333333
|
||||
buffer: content-id=14, pts=0:00:00.466666666, dur=0:00:00.033333334
|
||||
buffer: content-id=15, pts=0:00:00.500000000, dur=0:00:00.033333333
|
||||
buffer: content-id=16, pts=0:00:00.533333333, dur=0:00:00.033333333
|
||||
buffer: content-id=17, pts=0:00:00.566666666, dur=0:00:00.033333334
|
||||
buffer: content-id=18, pts=0:00:00.600000000, dur=0:00:00.033333333
|
||||
buffer: content-id=19, pts=0:00:00.633333333, dur=0:00:00.033333333
|
||||
event eos: (no structure)
|
||||
|
@ -1,14 +1,15 @@
|
||||
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;
|
||||
event caps: video/x-raw, chroma-site=(string)jpeg, colorimetry=(string)2:4:5:0, format=(string)I420, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320;
|
||||
event caps: video/x-raw, colorimetry=(string)sRGB, format=(string)RGBA, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320;
|
||||
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000
|
||||
buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont
|
||||
buffer: content-id=0, pts=0:00:00.033333333, dur=0:00:00.033333333, flags=gap
|
||||
buffer: content-id=1, pts=0:00:00.066666666, dur=0:00:00.033333334
|
||||
buffer: content-id=1, pts=0:00:00.100000000, dur=0:00:00.033333333, flags=gap
|
||||
buffer: content-id=2, pts=0:00:00.133333333, dur=0:00:00.033333333
|
||||
buffer: content-id=2, pts=0:00:00.166666666, dur=0:00:00.033333334, flags=gap
|
||||
buffer: content-id=3, pts=0:00:00.200000000, dur=0:00:00.033333333
|
||||
buffer: content-id=3, pts=0:00:00.233333333, dur=0:00:00.033333333, flags=gap
|
||||
buffer: content-id=4, pts=0:00:00.266666666, dur=0:00:00.033333334
|
||||
buffer: content-id=4, pts=0:00:00.300000000, dur=0:00:00.033333333, flags=gap
|
||||
buffer: content-id=5, pts=0:00:00.333333333, dur=0:00:00.033333333
|
||||
buffer: content-id=2, pts=0:00:00.033333333, dur=0:00:00.033333333
|
||||
buffer: content-id=4, pts=0:00:00.066666666, dur=0:00:00.033333334
|
||||
buffer: content-id=6, pts=0:00:00.100000000, dur=0:00:00.033333333
|
||||
buffer: content-id=8, pts=0:00:00.133333333, dur=0:00:00.033333333
|
||||
buffer: content-id=10, pts=0:00:00.166666666, dur=0:00:00.033333334
|
||||
buffer: content-id=12, pts=0:00:00.200000000, dur=0:00:00.033333333
|
||||
buffer: content-id=14, pts=0:00:00.233333333, dur=0:00:00.033333333
|
||||
buffer: content-id=16, pts=0:00:00.266666666, dur=0:00:00.033333334
|
||||
buffer: content-id=18, pts=0:00:00.300000000, dur=0:00:00.033333333
|
||||
buffer: content-id=19, pts=0:00:00.333333333, dur=0:00:00.033333333
|
||||
event eos: (no structure)
|
||||
|
Loading…
x
Reference in New Issue
Block a user