diff --git a/gst/videorate/gstvideorate.c b/gst/videorate/gstvideorate.c index b2510e6062..6421c431bf 100644 --- a/gst/videorate/gstvideorate.c +++ b/gst/videorate/gstvideorate.c @@ -879,9 +879,8 @@ gst_video_rate_sink_event (GstBaseTransform * trans, GstEvent * event) && GST_CLOCK_TIME_IS_VALID (videorate->next_ts) && videorate->next_ts - videorate->segment.base >= videorate->segment.start) - || count < 1)) { - res = - gst_video_rate_flush_prev (videorate, count > 0, + )) { + res = gst_video_rate_flush_prev (videorate, count > 0, GST_CLOCK_TIME_NONE); count++; } @@ -914,7 +913,8 @@ gst_video_rate_sink_event (GstBaseTransform * trans, GstEvent * event) videorate->dup += count - 1; if (!videorate->silent) gst_video_rate_notify_duplicate (videorate); - } else if (count == 0) { + } else if (count == 0 + && !GST_CLOCK_TIME_IS_VALID (videorate->segment.stop)) { videorate->drop++; if (!videorate->silent) gst_video_rate_notify_drop (videorate); @@ -1451,7 +1451,7 @@ gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer) } else { GstClockTime prevtime; gint count = 0; - gint64 diff1, diff2; + gint64 diff1 = 0, diff2 = 0; prevtime = videorate->prev_ts; @@ -1558,6 +1558,12 @@ gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer) next_ts = videorate->next_ts; + if (!GST_CLOCK_TIME_IS_VALID (next_ts)) { + GST_DEBUG_OBJECT (videorate, "Already reached segment start," + "ignoring buffer"); + break; + } + prev_endtime = MAX (prevtime + GST_BUFFER_DURATION (videorate->prevbuf), videorate->segment.stop); diff --git a/tests/validate/meson.build b/tests/validate/meson.build index 9d7d065e47..218b05369e 100644 --- a/tests/validate/meson.build +++ b/tests/validate/meson.build @@ -9,6 +9,8 @@ endif tests = [ 'audiotestsrc/reverse', + 'videorate/10_to_1fps', + 'videorate/reverse.10_to_1fps', ] env = environment() diff --git a/tests/validate/videorate/10_to_1fps.validatetest b/tests/validate/videorate/10_to_1fps.validatetest new file mode 100644 index 0000000000..c0474bfbde --- /dev/null +++ b/tests/validate/videorate/10_to_1fps.validatetest @@ -0,0 +1,10 @@ +set-globals, in_framerate="(GstFraction)10/1", out_framerate="(GstFraction)1/1" + +include, location="videorate-test.meta" + +play +seek, start=0.0, stop=5.0, flags=accurate+flush, rate=1.0 +crank-clock, expected-elapsed-time=0.0 +crank-clock, repeat=4, expected-elapsed-time=1.0 +crank-clock, expected-elapsed-time=1.0 +stop, on-message=eos \ No newline at end of file diff --git a/tests/validate/videorate/10_to_1fps/flow-expectations/log-videorate-sink-expected b/tests/validate/videorate/10_to_1fps/flow-expectations/log-videorate-sink-expected new file mode 100644 index 0000000000..ce2082d41c --- /dev/null +++ b/tests/validate/videorate/10_to_1fps/flow-expectations/log-videorate-sink-expected @@ -0,0 +1,59 @@ +event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1; +event caps: video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)10/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive; +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: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.100000000, dur=0:00:00.100000000, meta=GstVideoMeta +event flush-start: (no structure) +event flush-stop: GstEventFlushStop, reset-time=(boolean)true; +event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:05.000000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000 +buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.100000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.200000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.300000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.400000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.500000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.600000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.700000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.800000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.900000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=b001027646a88bd2f45818b12ce73b0f04046b06, pts=0:00:01.000000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=ba9212a73c0b0fb0e1572b4bcc48c3240b617166, pts=0:00:01.100000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=e9424eca5674294ba9ba8ee81714f7c6cb45f480, pts=0:00:01.200000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=7bb5452dd5d28b6a62f3307b1e6f20a3c34ae0c4, pts=0:00:01.300000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=e33a1e17ee1d97ca396956dcc5bace77bcf40698, pts=0:00:01.400000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=997ee2608af57157beeba316c6e4058d904af854, pts=0:00:01.500000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=724428f9800b53136cd85e1b28bf89454dce5b17, pts=0:00:01.600000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=a5b575e2fe65bb0862438f1689a1259612c3451b, pts=0:00:01.700000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=1e677a53b1ce72bf11b301041c7cd62602f57cea, pts=0:00:01.800000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=2bd35f37780e5c7bf173bc1c29598ab7f110e168, pts=0:00:01.900000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:02.000000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=1b8c20d6b674124d076db71daa1854de266b0365, pts=0:00:02.100000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=f54b1beaf9a9709c87b9f2a0e2a509aaa0343b98, pts=0:00:02.200000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=4c87c8b594e77448cffb8da079544060fa513829, pts=0:00:02.300000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=58936846a7314b141f0bc1d1ff1e9d46db961633, pts=0:00:02.400000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=8969ea732a2692c1e437b901c12dc083c1ba137b, pts=0:00:02.500000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=4838df67beb6ceadbde9fa4ae633b343962eb4cc, pts=0:00:02.600000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=31aabb7c75b036bbbd9495a84647959b336d484b, pts=0:00:02.700000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=3d9ed200fc9ae13a398482ada9957fe5429f4808, pts=0:00:02.800000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:02.900000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=0d65174db0fc96dbeaaa2488d013b8935f363330, pts=0:00:03.000000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=cb91b143e223d44733177fca79708fb3199aabf8, pts=0:00:03.100000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=7acbad9ec0b798679d22ac1cf8bb0526a2a066d3, pts=0:00:03.200000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=f0f7021ee092b8f273ca5cec2d1acefebfb53356, pts=0:00:03.300000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=1f33bf94492ba7dbe2bf72e57bd12cee8f090079, pts=0:00:03.400000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=9238cea5dc4855b286e4a1459ca4f8e177dfb96f, pts=0:00:03.500000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=8eed8ee03cf63e698bfa301fa0b304addffed4bc, pts=0:00:03.600000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=ab9217e0ca61c7ae0a8d298d36d0ce97eed482cd, pts=0:00:03.700000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=950bd00b2a08dc4fb6e0a2b06d38cf14a40780ac, pts=0:00:03.800000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=e1d19911a0a9b7a6a97dceedc96c66f81d187591, pts=0:00:03.900000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=a01cd9172bd2387002e8f9b3003a9becc2938c16, pts=0:00:04.000000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=e07dcddf3c18d51c51d1914588a2b61327cfa139, pts=0:00:04.100000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=33710a6238592d081550f74836533f8caf51cc0f, pts=0:00:04.200000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=f05561e3039ed26e3082bd7b049bad9356545149, pts=0:00:04.300000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=ea498a2e840c9528f90f1154f72d4b204739b947, pts=0:00:04.400000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=e085fff613289df868f63ca7142ce0d342ab3d4c, pts=0:00:04.500000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=302581fc1fdd332a6702cc3b4d6a3f3f87d0c78f, pts=0:00:04.600000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=87c6573e1f3cc6a14bca871f675ff66822e2863e, pts=0:00:04.700000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=6f2d5d8f9551083a65889a7d7b87e25348612604, pts=0:00:04.800000000, dur=0:00:00.100000000, meta=GstVideoMeta +buffer: checksum=1d2741e8fc312f50417c99f6deecb6220c75efaa, pts=0:00:04.900000000, dur=0:00:00.100000000, meta=GstVideoMeta +event eos: (no structure) diff --git a/tests/validate/videorate/10_to_1fps/flow-expectations/log-videorate-src-expected b/tests/validate/videorate/10_to_1fps/flow-expectations/log-videorate-src-expected new file mode 100644 index 0000000000..9441690721 --- /dev/null +++ b/tests/validate/videorate/10_to_1fps/flow-expectations/log-videorate-src-expected @@ -0,0 +1,13 @@ +event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1; +event caps: video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)1/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive; +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: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:01.000000000, flags=discont, meta=GstVideoMeta +event flush-start: (no structure) +event flush-stop: GstEventFlushStop, reset-time=(boolean)true; +event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:05.000000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000 +buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:01.000000000, flags=discont, meta=GstVideoMeta +buffer: checksum=b001027646a88bd2f45818b12ce73b0f04046b06, pts=0:00:01.000000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:02.000000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: checksum=0d65174db0fc96dbeaaa2488d013b8935f363330, pts=0:00:03.000000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: checksum=a01cd9172bd2387002e8f9b3003a9becc2938c16, pts=0:00:04.000000000, dur=0:00:01.000000000, meta=GstVideoMeta +event eos: (no structure) diff --git a/tests/validate/videorate/reverse.10_to_1fps.validatetest b/tests/validate/videorate/reverse.10_to_1fps.validatetest new file mode 100644 index 0000000000..5c5828560e --- /dev/null +++ b/tests/validate/videorate/reverse.10_to_1fps.validatetest @@ -0,0 +1,14 @@ +set-globals, in_framerate="(GstFraction)10/1", out_framerate="(GstFraction)1/1" + +include, location="videorate-test.meta" + +play +seek, start=0.0, stop=5.0, flags=accurate+flush, rate=-1.0 + +# First buffer is display as fast as possible +crank-clock, expected-elapsed-time=0.0 +crank-clock, repeat=4, expected-elapsed-time=1.0 + +# Waiting 1 second on EOS +crank-clock, expected-elapsed-time=1.0 +stop, on-message=eos diff --git a/tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-sink-expected b/tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-sink-expected new file mode 100644 index 0000000000..ff33c38f03 --- /dev/null +++ b/tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-sink-expected @@ -0,0 +1,60 @@ +event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1; +event caps: video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)10/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive; +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: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.100000000, dur=0:00:00.100000000, meta=GstVideoMeta +event flush-start: (no structure) +event flush-stop: GstEventFlushStop, reset-time=(boolean)true; +event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:05.000000000, rate=-1.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:05.000000000 +buffer: checksum=bff0c69020b2ffb3f3ceda63353620854cdd6b73, pts=0:00:05.000000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=1d2741e8fc312f50417c99f6deecb6220c75efaa, pts=0:00:04.900000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=6f2d5d8f9551083a65889a7d7b87e25348612604, pts=0:00:04.800000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=87c6573e1f3cc6a14bca871f675ff66822e2863e, pts=0:00:04.700000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=302581fc1fdd332a6702cc3b4d6a3f3f87d0c78f, pts=0:00:04.600000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=e085fff613289df868f63ca7142ce0d342ab3d4c, pts=0:00:04.500000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=ea498a2e840c9528f90f1154f72d4b204739b947, pts=0:00:04.400000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=f05561e3039ed26e3082bd7b049bad9356545149, pts=0:00:04.300000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=33710a6238592d081550f74836533f8caf51cc0f, pts=0:00:04.200000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=e07dcddf3c18d51c51d1914588a2b61327cfa139, pts=0:00:04.100000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=a01cd9172bd2387002e8f9b3003a9becc2938c16, pts=0:00:04.000000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=e1d19911a0a9b7a6a97dceedc96c66f81d187591, pts=0:00:03.900000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=950bd00b2a08dc4fb6e0a2b06d38cf14a40780ac, pts=0:00:03.800000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=ab9217e0ca61c7ae0a8d298d36d0ce97eed482cd, pts=0:00:03.700000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=8eed8ee03cf63e698bfa301fa0b304addffed4bc, pts=0:00:03.600000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=9238cea5dc4855b286e4a1459ca4f8e177dfb96f, pts=0:00:03.500000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=1f33bf94492ba7dbe2bf72e57bd12cee8f090079, pts=0:00:03.400000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=f0f7021ee092b8f273ca5cec2d1acefebfb53356, pts=0:00:03.300000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=7acbad9ec0b798679d22ac1cf8bb0526a2a066d3, pts=0:00:03.200000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=cb91b143e223d44733177fca79708fb3199aabf8, pts=0:00:03.100000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=0d65174db0fc96dbeaaa2488d013b8935f363330, pts=0:00:03.000000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=012c04214b70c28c823991e5502c0dde653e576e, pts=0:00:02.900000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=3d9ed200fc9ae13a398482ada9957fe5429f4808, pts=0:00:02.800000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=31aabb7c75b036bbbd9495a84647959b336d484b, pts=0:00:02.700000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=4838df67beb6ceadbde9fa4ae633b343962eb4cc, pts=0:00:02.600000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=8969ea732a2692c1e437b901c12dc083c1ba137b, pts=0:00:02.500000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=58936846a7314b141f0bc1d1ff1e9d46db961633, pts=0:00:02.400000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=4c87c8b594e77448cffb8da079544060fa513829, pts=0:00:02.300000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=f54b1beaf9a9709c87b9f2a0e2a509aaa0343b98, pts=0:00:02.200000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=1b8c20d6b674124d076db71daa1854de266b0365, pts=0:00:02.100000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=b235367d19b4a8eedcca178a5919dc0bbbaeabca, pts=0:00:02.000000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=2bd35f37780e5c7bf173bc1c29598ab7f110e168, pts=0:00:01.900000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=1e677a53b1ce72bf11b301041c7cd62602f57cea, pts=0:00:01.800000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=a5b575e2fe65bb0862438f1689a1259612c3451b, pts=0:00:01.700000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=724428f9800b53136cd85e1b28bf89454dce5b17, pts=0:00:01.600000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=997ee2608af57157beeba316c6e4058d904af854, pts=0:00:01.500000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=e33a1e17ee1d97ca396956dcc5bace77bcf40698, pts=0:00:01.400000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=7bb5452dd5d28b6a62f3307b1e6f20a3c34ae0c4, pts=0:00:01.300000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=e9424eca5674294ba9ba8ee81714f7c6cb45f480, pts=0:00:01.200000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=ba9212a73c0b0fb0e1572b4bcc48c3240b617166, pts=0:00:01.100000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=b001027646a88bd2f45818b12ce73b0f04046b06, pts=0:00:01.000000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=d0a85177ea2e35014a69c6290895090c9cdd6af4, pts=0:00:00.900000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=29b39a0c9759a8860ab54f70cc3f2d8901902662, pts=0:00:00.800000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=cf699c4e8340bdae7e5ca8fe155ca1ecd1d565cd, pts=0:00:00.700000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=9667d1b1eb52d9463353a8cb854546b9e9c5fc32, pts=0:00:00.600000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=faa402360b8808220fa8ba7f29246edc52826335, pts=0:00:00.500000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=f5dd66e2339c5ff8db32b3dc717ff867912aceff, pts=0:00:00.400000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=1f55031a355611378b894de9e91f15b7aadb9762, pts=0:00:00.300000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=61f960fb1f82031de8557270b198f528cc319bb5, pts=0:00:00.200000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:00.100000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:00.100000000, flags=discont, meta=GstVideoMeta +event eos: (no structure) diff --git a/tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-src-expected b/tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-src-expected new file mode 100644 index 0000000000..9de3d3f1c6 --- /dev/null +++ b/tests/validate/videorate/reverse.10_to_1fps/flow-expectations/log-videorate-src-expected @@ -0,0 +1,13 @@ +event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1; +event caps: video/x-raw, format=(string)I420, width=(int)320, height=(int)240, framerate=(fraction)1/1, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive; +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: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:01.000000000, flags=discont, meta=GstVideoMeta +event flush-start: (no structure) +event flush-stop: GstEventFlushStop, reset-time=(boolean)true; +event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:05.000000000, rate=-1.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:05.000000000 +buffer: checksum=1d2741e8fc312f50417c99f6deecb6220c75efaa, pts=0:00:04.000000000, dur=0:00:01.000000000, flags=discont, meta=GstVideoMeta +buffer: checksum=6f2d5d8f9551083a65889a7d7b87e25348612604, pts=0:00:03.000000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: checksum=87c6573e1f3cc6a14bca871f675ff66822e2863e, pts=0:00:02.000000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: checksum=302581fc1fdd332a6702cc3b4d6a3f3f87d0c78f, pts=0:00:01.000000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: checksum=e085fff613289df868f63ca7142ce0d342ab3d4c, pts=0:00:00.000000000, dur=0:00:01.000000000, meta=GstVideoMeta +event eos: (no structure) diff --git a/tests/validate/videorate/videorate-test.meta b/tests/validate/videorate/videorate-test.meta new file mode 100644 index 0000000000..74b86797d7 --- /dev/null +++ b/tests/validate/videorate/videorate-test.meta @@ -0,0 +1,17 @@ +# Common metadatas to check the videorate element behavior with different +# framerate specified by previously setting variables with: +# ``` +# set-global, in_framerate=, out_framerate= +# ``` +# and then `include, location="videorate-test.meta" to setup the test with this +# file +meta, + handles-states=true, + ignore-eos=true, + args = { + "videotestsrc pattern=ball animation-mode=frames ! video/x-raw,format=I420,framerate=$(in_framerate) ! videorate name=videorate ! video/x-raw,format=I420,framerate=$(out_framerate) ! $(videosink) allocation-meta-flags=0", + }, + configs = { + "$(validateflow), pad=videorate:sink, buffers-checksum=true", + "$(validateflow), pad=videorate:src, buffers-checksum=true", + }