gstreamer/subprojects/gst-plugins-base/tests/validate/meson.build
Thibault Saunier 1c6adcab89 uridecodebin: Ensure that pads caps are set before exposing them
We are supposed to guarantee that pads that are exposed have the caps
set, but for sources that have pad with "all raw caps" templates, we end
up exposing pads that don't have caps set yet, which can break code (in
GES for example).

To avoid that we let uridecodebin plug a `decodebin` after such pads and
let decodebin to handle that for us. In the end the only thing that
decodebin does in those cases is to wait for pads to be ready and expose
them, after that `uridecodebin` will expose those pads.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3009>
2022-09-15 19:25:01 +00:00

45 lines
1.6 KiB
Meson

gst_tester = find_program('gst-tester-@0@'.format(api_version), required: get_option('tests'))
if not gst_tester.found()
subdir_done()
endif
tests = [
'audiotestsrc/reverse',
'videorate/10_to_1fps',
'videorate/reverse.10_to_1fps',
'videorate/reverse.10_to_30fps',
'videorate/reverse.1_to_10fps',
'videorate/reverse.30fps',
'videorate/reverse.variable_to_10fps',
'videorate/change_rate_while_playing',
'videorate/change_rate_reverse_playback',
'videorate/rate_0_5',
'videorate/rate_0_5_with_decoder',
'videorate/rate_2_0',
'videorate/rate_2_0_with_decoder',
'compositor/renogotiate_failing_unsupported_src_format',
'giosrc/read-growing-file',
'encodebin/set-encoder-properties',
'uridecodebin/expose_raw_pad_caps',
]
env = environment()
env.set('GST_PLUGIN_PATH_1_0', meson.global_build_root(), pluginsdirs)
env.set('GST_PLUGIN_SYSTEM_PATH_1_0', '')
env.set('GST_REGISTRY', '@0@/@1@.registry'.format(meson.current_build_dir(), 'validate'))
env.set('GST_PLUGIN_SCANNER_1_0', gst_plugin_scanner_path)
env.set('GST_PLUGIN_LOADING_WHITELIST', 'gstreamer', 'gst-validate',
'gst-plugins-base@' + meson.project_build_root())
foreach t: tests
test_dir_name = t.split('/')
test_name = 'validate'
foreach c: test_dir_name
test_name += '.' + c
endforeach
test_env = env
test_env.set('GST_VALIDATE_LOGSDIR', join_paths(meson.current_build_dir(), test_name))
test_file = join_paths(meson.current_source_dir(), t + '.validatetest')
test(test_name, gst_tester, args: [test_file, '--use-fakesinks'],
env: test_env, timeout : 3 * 60, protocol: 'tap')
endforeach