diff --git a/subprojects/gst-devtools/validate/data/gstvalidate.supp b/subprojects/gst-devtools/validate/data/gstvalidate.supp index a3d01bfb04..9ab0482431 100644 --- a/subprojects/gst-devtools/validate/data/gstvalidate.supp +++ b/subprojects/gst-devtools/validate/data/gstvalidate.supp @@ -26,6 +26,17 @@ fun:glXQueryVersion } +{ + This use of uninitialized memory is fixed in latest GLib + Memcheck:Value8 + fun:UnknownInlinedFun + fun:UnknownInlinedFun + fun:UnknownInlinedFun + fun:g_checksum_get_string + fun:g_compute_checksum_for_data + ... +} + { Leak in mesa fixed with http://lists.freedesktop.org/archives/mesa-dev/2015-April/082100.html Memcheck:Leak diff --git a/subprojects/gst-plugins-base/tests/validate/fakevideodec/encoded.validatetest b/subprojects/gst-plugins-base/tests/validate/fakevideodec/encoded.validatetest new file mode 100644 index 0000000000..0836a7e890 --- /dev/null +++ b/subprojects/gst-plugins-base/tests/validate/fakevideodec/encoded.validatetest @@ -0,0 +1,21 @@ +# Check that `fakevideodec` works in "encoded video" mode +meta, + handles-states=true, + args = { + "appsrc name=src format=time ! fakevideodec name=dec ! videoconvert ! $(videosink)", + }, + configs = { + "$(validateflow), pad=dec:sink, buffers-checksum=as-id, ignored-event-types={ tag, stream-start }", + "$(validateflow), pad=dec:src, buffers-checksum=as-id, ignored-event-types={ tag, stream-start }", + } + +foreach, + i=[0, 20], + actions={ + [appsrc-push, target-element-name=src, fill-mode=counter, pts="$(i)/20", duration=1.0, size=8, + caps=(GstCaps)[video/x-h264,framerate=20/1,width=640,height=480,parsed=true]], + } + +appsrc-eos, target-element-name=src + +play diff --git a/subprojects/gst-plugins-base/tests/validate/fakevideodec/encoded/flow-expectations/log-dec-sink-expected b/subprojects/gst-plugins-base/tests/validate/fakevideodec/encoded/flow-expectations/log-dec-sink-expected new file mode 100644 index 0000000000..1159797dfa --- /dev/null +++ b/subprojects/gst-plugins-base/tests/validate/fakevideodec/encoded/flow-expectations/log-dec-sink-expected @@ -0,0 +1,23 @@ +event caps: video/x-h264, framerate=(fraction)20/1, height=(int)480, parsed=(boolean)true, width=(int)640; +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:01.000000000, flags=discont +buffer: content-id=2, pts=0:00:00.050000000, dur=0:00:01.000000000 +buffer: content-id=4, pts=0:00:00.100000000, dur=0:00:01.000000000 +buffer: content-id=6, pts=0:00:00.150000000, dur=0:00:01.000000000 +buffer: content-id=8, pts=0:00:00.200000000, dur=0:00:01.000000000 +buffer: content-id=10, pts=0:00:00.250000000, dur=0:00:01.000000000 +buffer: content-id=12, pts=0:00:00.300000000, dur=0:00:01.000000000 +buffer: content-id=14, pts=0:00:00.350000000, dur=0:00:01.000000000 +buffer: content-id=16, pts=0:00:00.400000000, dur=0:00:01.000000000 +buffer: content-id=18, pts=0:00:00.450000000, dur=0:00:01.000000000 +buffer: content-id=20, pts=0:00:00.500000000, dur=0:00:01.000000000 +buffer: content-id=22, pts=0:00:00.550000000, dur=0:00:01.000000000 +buffer: content-id=24, pts=0:00:00.600000000, dur=0:00:01.000000000 +buffer: content-id=26, pts=0:00:00.650000000, dur=0:00:01.000000000 +buffer: content-id=28, pts=0:00:00.700000000, dur=0:00:01.000000000 +buffer: content-id=30, pts=0:00:00.750000000, dur=0:00:01.000000000 +buffer: content-id=32, pts=0:00:00.800000000, dur=0:00:01.000000000 +buffer: content-id=34, pts=0:00:00.850000000, dur=0:00:01.000000000 +buffer: content-id=36, pts=0:00:00.900000000, dur=0:00:01.000000000 +buffer: content-id=38, pts=0:00:00.950000000, dur=0:00:01.000000000 +event eos: (no structure) diff --git a/subprojects/gst-plugins-base/tests/validate/fakevideodec/encoded/flow-expectations/log-dec-src-expected b/subprojects/gst-plugins-base/tests/validate/fakevideodec/encoded/flow-expectations/log-dec-src-expected new file mode 100644 index 0000000000..b04ecea214 --- /dev/null +++ b/subprojects/gst-plugins-base/tests/validate/fakevideodec/encoded/flow-expectations/log-dec-src-expected @@ -0,0 +1,23 @@ +event caps: video/x-raw, colorimetry=(string)0:1:0:0, format=(string)RGBA, framerate=(fraction)20/1, height=(int)480, 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)640; +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=1, pts=0:00:00.000000000, dur=0:00:01.000000000, flags=discont, meta=GstVideoMeta +buffer: content-id=3, pts=0:00:00.050000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=5, pts=0:00:00.100000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=7, pts=0:00:00.150000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=9, pts=0:00:00.200000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=11, pts=0:00:00.250000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=13, pts=0:00:00.300000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=15, pts=0:00:00.350000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=17, pts=0:00:00.400000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=19, pts=0:00:00.450000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=21, pts=0:00:00.500000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=23, pts=0:00:00.550000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=25, pts=0:00:00.600000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=27, pts=0:00:00.650000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=29, pts=0:00:00.700000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=31, pts=0:00:00.750000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=33, pts=0:00:00.800000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=35, pts=0:00:00.850000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=37, pts=0:00:00.900000000, dur=0:00:01.000000000, meta=GstVideoMeta +buffer: content-id=39, pts=0:00:00.950000000, dur=0:00:01.000000000, meta=GstVideoMeta +event eos: (no structure) diff --git a/subprojects/gst-plugins-base/tests/validate/fakevideodec/simple.validatetest b/subprojects/gst-plugins-base/tests/validate/fakevideodec/simple.validatetest new file mode 100644 index 0000000000..9e9d794a22 --- /dev/null +++ b/subprojects/gst-plugins-base/tests/validate/fakevideodec/simple.validatetest @@ -0,0 +1,9 @@ +# Check that `fakevideodec` works in "raw video" mode +meta, + args = { + "videotestsrc num-buffers=5 ! video/x-raw,format=RGBA ! fakevideodec name=dec ! videoconvert ! $(videosink)", + }, + configs = { + "$(validateflow), pad=dec:sink, buffers-checksum=as-id, ignored-event-types={ tag, stream-start }", + "$(validateflow), pad=dec:src, buffers-checksum=as-id, ignored-event-types={ tag, stream-start }", + } diff --git a/subprojects/gst-plugins-base/tests/validate/fakevideodec/simple/flow-expectations/log-dec-sink-expected b/subprojects/gst-plugins-base/tests/validate/fakevideodec/simple/flow-expectations/log-dec-sink-expected new file mode 100644 index 0000000000..9419c17f65 --- /dev/null +++ b/subprojects/gst-plugins-base/tests/validate/fakevideodec/simple/flow-expectations/log-dec-sink-expected @@ -0,0 +1,8 @@ +event caps: video/x-raw, format=(string)RGBA, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, 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 +event eos: (no structure) diff --git a/subprojects/gst-plugins-base/tests/validate/fakevideodec/simple/flow-expectations/log-dec-src-expected b/subprojects/gst-plugins-base/tests/validate/fakevideodec/simple/flow-expectations/log-dec-src-expected new file mode 100644 index 0000000000..4529fba7c3 --- /dev/null +++ b/subprojects/gst-plugins-base/tests/validate/fakevideodec/simple/flow-expectations/log-dec-src-expected @@ -0,0 +1,8 @@ +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 +event eos: (no structure) diff --git a/subprojects/gst-plugins-base/tests/validate/meson.build b/subprojects/gst-plugins-base/tests/validate/meson.build index 6da821cc68..1385a85847 100644 --- a/subprojects/gst-plugins-base/tests/validate/meson.build +++ b/subprojects/gst-plugins-base/tests/validate/meson.build @@ -25,6 +25,8 @@ tests = [ 'giosrc/read-growing-file', 'encodebin/set-encoder-properties', 'uridecodebin/expose_raw_pad_caps', + 'fakevideodec/encoded', + 'fakevideodec/simple' ] env = environment()