1 include $(top_srcdir)/common/check.mak
3 CHECK_REGISTRY = $(top_builddir)/tests/check/test-registry.reg
4 TEST_FILES_DIRECTORY = $(top_srcdir)/tests/files
6 GST_TOOLS_DIR = $(top_builddir)/tools
8 REGISTRY_ENVIRONMENT = \
9 GST_REGISTRY_1_0=$(CHECK_REGISTRY)
11 # GST_PLUGINS_XYZ_DIR is only set in an uninstalled setup
12 AM_TESTS_ENVIRONMENT += \
13 $(REGISTRY_ENVIRONMENT) \
14 GST_PLUGIN_SYSTEM_PATH_1_0= \
15 GST_PLUGIN_PATH_1_0=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(GST_PLUGINS_LIBAV_DIR):$(GST_PLUGINS_UGLY_DIR):$(GST_PLUGINS_GOOD_DIR):$(GST_PLUGINS_BASE_DIR):$(GST_PLUGINS_DIR) \
16 GST_PLUGIN_LOADING_WHITELIST="gstreamer@$(GST_PLUGINS_DIR):gst-plugins-base@$(GSTPB_PLUGINS_DIR):gst-plugins-good:gst-plugins-ugly:gst-libav:gst-plugins-bad@$(top_builddir)" \
17 GST_STATE_IGNORE_ELEMENTS="avdtpsrc camerabin dc1394src \
19 decklinksink dtlssrtpdec dtlssrtpenc dvbsrc dvbbasebin dfbvideosink festival fluidsynth \
21 rsndvdbin vcdsrc rfbsrc vdpauyuvvideo vdpauvideoyuv \
22 vdpaumpegdec vdpaumpeg4dec vdpauh264dec vdpauvideopostprocess vdpausink neonhttpsrc waylandsink"
24 plugindir = $(libdir)/gstreamer-@GST_API_VERSION@
26 # override to _not_ install the test plugins
27 install-pluginLTLIBRARIES:
29 # the core dumps of some machines have PIDs appended
30 CLEANFILES = core.* test-registry.*
32 SUPPRESSIONS = $(top_srcdir)/common/gst.supp $(srcdir)/gst-plugins-bad.supp
34 clean-local: clean-local-check
35 distclean-local: distclean-local-orc
38 check_assrender = elements/assrender
44 check_dash = elements/dash_mpd
45 check_dash_demux = elements/dash_demux
52 check_faac = elements/faac
58 check_faad = elements/faad
64 check_voaacenc = elements/voaacenc
70 check_voamrwbenc = elements/voamrwbenc
76 check_jifmux = elements/jifmux
82 check_mpeg2enc = elements/mpeg2enc
88 check_mplex = elements/mplex
93 if USE_SMOOTHSTREAMING
94 check_mssdemux = elements/mssdemux
100 check_neon = elements/neonhttpsrc
106 check_ofa = elements/ofa
112 check_schro=elements/schroenc
118 check_x265enc=elements/x265enc
124 check_kate=elements/kate
130 check_orc = orc/bayer orc/audiomixer orc/compositor
136 check_zbar = elements/zbar
142 check_opencv = elements/templatematch
148 check_curl_sftp = elements/curlsftpsink
154 check_hlsdemux_m3u8 = elements/hlsdemux_m3u8
155 check_hlsdemux = elements/hls_demux
157 check_hlsdemux_m3u8 =
162 check_srtp = elements/srtp
167 if WITH_GST_PLAYER_TESTS
168 check_player = libs/player
174 check_curl = elements/curlhttpsink \
175 elements/curlfilesink \
176 elements/curlftpsink \
178 elements/curlsmtpsink
184 check_uvch264=elements/uvch264demux
188 uvch264_dist_data = elements/uvch264demux_data/valid_h264_jpg.mjpg \
189 elements/uvch264demux_data/valid_h264_jpg.jpg \
190 elements/uvch264demux_data/valid_h264_jpg.h264 \
191 elements/uvch264demux_data/valid_h264_yuy2.mjpg \
192 elements/uvch264demux_data/valid_h264_yuy2.h264 \
193 elements/uvch264demux_data/valid_h264_yuy2.yuy2
196 check_shm=elements/shm
202 check_ipcpipeline=pipelines/ipcpipeline
213 VALGRIND_TESTS_DISABLE = \
216 # these tests don't even pass
217 # neon: too flaky (almost always fails 'the first time')
218 # ipcpipeline: too flaky (always fails on the build bot)
219 # dashdemux: fails because it uses random data streams but dashdemux nowadays
220 # actually looks at the data and doesn't like randomness
222 pipelines/streamheader \
223 $(check_dash_demux) \
224 $(check_ipcpipeline) \
234 $(check_voamrwbenc) \
244 elements/videoframe-audiolevel \
245 elements/autoconvert \
246 elements/autovideoconvert \
247 elements/audiointerleave \
248 elements/audiomixer \
253 elements/compositor \
259 elements/mpegvideoparse \
260 elements/mpeg4videoparse \
266 elements/rtponvifparse \
267 elements/rtponviftimestamp \
271 libs/mpegvideoparser \
279 elements/viewfinderbin \
283 $(check_hlsdemux_m3u8) \
287 $(EXPERIMENTAL_CHECKS)
289 noinst_HEADERS = elements/mxfdemux.h libs/isoff.h
291 TESTS = $(check_PROGRAMS)
293 AM_CFLAGS = $(GST_CFLAGS) $(GST_CHECK_CFLAGS) $(GST_OPTION_CFLAGS) \
294 -DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_PLUGIN_LOADING_WHITELIST\"" \
295 -DGST_TEST_FILES_PATH="\"$(TEST_FILES_DIRECTORY)\"" \
296 -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS $(PTHREAD_CFLAGS)
297 LDADD = $(GST_CHECK_LIBS)
299 generic_states_CFLAGS = $(AM_CFLAGS) $(GLIB_CFLAGS)
300 generic_states_LDADD = $(LDADD) $(GLIB_LIBS)
302 elements_audiomixer_LDADD = $(GST_BASE_LIBS) $(GST_CONTROLLER_LIBS) -lgstbase-@GST_API_VERSION@ $(LDADD)
303 elements_audiomixer_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CONTROLLER_CFLAGS) $(AM_CFLAGS)
305 elements_audiointerleave_LDADD = $(GST_BASE_LIBS) -lgstbase-@GST_API_VERSION@ $(GST_AUDIO_LIBS) $(LDADD)
306 elements_audiointerleave_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
308 elements_pnm_CFLAGS = \
309 $(GST_PLUGINS_BASE_CFLAGS) \
310 $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
311 elements_pnm_LDADD = \
312 $(GST_PLUGINS_BASE_LIBS) -lgstapp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
314 # parser unit test convenience lib
315 noinst_LTLIBRARIES = libparser.la
316 libparser_la_SOURCES = elements/parser.c elements/parser.h
317 libparser_la_CFLAGS = \
318 -I$(top_srcdir)/tests/check \
319 $(GST_CFLAGS) $(GST_CHECK_CFLAGS) $(GST_OPTION_CFLAGS)
321 elements_mpegvideoparse_LDADD = libparser.la $(LDADD)
323 elements_mpeg4videoparse_LDADD = libparser.la $(LDADD)
325 elements_h263parse_LDADD = libparser.la $(LDADD)
327 elements_h264parse_LDADD = libparser.la $(LDADD)
329 elements_pcapparse_LDADD = libparser.la $(LDADD)
331 libs_isoff_CFLAGS = $(AM_CFLAGS) $(GST_BASE_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS)
332 libs_isoff_LDADD = $(LDADD) $(GST_BASE_LIBS) \
333 $(top_builddir)/gst-libs/gst/isoff/libgstisoff-@GST_API_VERSION@.la
334 libs_isoff_SOURCES = libs/isoff.c
336 libs_mpegvideoparser_CFLAGS = \
337 $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \
338 -DGST_USE_UNSTABLE_API \
339 $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
341 libs_mpegvideoparser_LDADD = \
342 $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_API_VERSION@.la \
343 $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
345 libs_mpegts_CFLAGS = \
346 $(GST_PLUGINS_BAD_CFLAGS) \
347 -DGST_USE_UNSTABLE_API \
351 libs_mpegts_LDADD = \
352 $(top_builddir)/gst-libs/gst/mpegts/libgstmpegts-@GST_API_VERSION@.la \
356 libs_h264parser_CFLAGS = \
357 $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \
358 -DGST_USE_UNSTABLE_API \
359 $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
361 libs_h264parser_LDADD = \
362 $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_API_VERSION@.la \
363 $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
365 libs_vc1parser_CFLAGS = \
366 $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \
367 -DGST_USE_UNSTABLE_API \
368 $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
370 libs_vc1parser_LDADD = \
371 $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_API_VERSION@.la \
372 $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
374 libs_vp8parser_CFLAGS = \
375 $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \
376 -DGST_USE_UNSTABLE_API \
377 $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
379 libs_vp8parser_LDADD = \
380 $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_API_VERSION@.la \
381 $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
383 elements_videoframe_audiolevel_CFLAGS = \
384 $(GST_PLUGINS_BASE_CFLAGS) \
385 $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
386 elements_videoframe_audiolevel_LDADD = \
387 $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) \
390 elements_faad_CFLAGS = \
391 $(GST_PLUGINS_BASE_CFLAGS) \
392 $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
393 elements_faad_LDADD = \
394 $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) \
397 elements_faac_CFLAGS = \
398 $(GST_PLUGINS_BASE_CFLAGS) \
399 $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
400 elements_faac_LDADD = \
401 $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) \
404 elements_gdppay_CFLAGS = \
405 $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
406 elements_gdppay_LDADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
408 elements_gdpdepay_CFLAGS = \
409 $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
410 elements_gdpdepay_LDADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
412 elements_voaacenc_CFLAGS = \
413 $(GST_PLUGINS_BASE_CFLAGS) \
414 $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
415 elements_voaacenc_LDADD = \
416 $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD) \
419 elements_camerabin_CFLAGS = \
420 $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \
421 $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) -DGST_USE_UNSTABLE_API
422 elements_camerabin_LDADD = \
423 $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_API_VERSION@.la \
424 $(top_builddir)/gst-libs/gst/basecamerabinsrc/libgstbasecamerabinsrc-@GST_API_VERSION@.la \
425 $(GST_PLUGINS_BASE_LIBS) -lgstpbutils-$(GST_API_VERSION) \
426 $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
427 elements_camerabin_SOURCES = elements/camerabin.c
429 elements_jifmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(EXIF_CFLAGS) $(AM_CFLAGS)
430 elements_jifmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_API_VERSION) $(GST_CHECK_LIBS) $(EXIF_LIBS) $(LDADD)
431 elements_jifmux_SOURCES = elements/jifmux.c
433 elements_kate_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
434 elements_kate_LDADD = $(GST_BASE_LIBS) $(LDADD)
436 elements_assrender_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
437 elements_assrender_LDADD = $(GST_PLUGINS_BASE_LIBS) $(GST_VIDEO_LIBS) -lgstapp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
439 elements_mpegtsmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
440 elements_mpegtsmux_LDADD = $(GST_PLUGINS_BASE_LIBS) $(GST_VIDEO_LIBS) $(GST_BASE_LIBS) $(LDADD)
442 elements_uvch264demux_CFLAGS = -DUVCH264DEMUX_DATADIR="$(srcdir)/elements/uvch264demux_data" \
445 elements_dash_mpd_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS) $(GST_PLUGINS_BAD_CFLAGS) $(LIBXML2_CFLAGS) \
446 -DDASH_MPD_DATADIR="$(srcdir)/elements/dash_mpd_data"
447 elements_dash_mpd_LDADD = $(GST_BASE_LIBS) $(LDADD) $(LIBXML2_LIBS) \
448 $(top_builddir)/gst-libs/gst/uridownloader/libgsturidownloader-@GST_API_VERSION@.la
449 elements_dash_mpd_SOURCES = elements/dash_mpd.c
452 elements_dash_demux_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(AM_CFLAGS) $(LIBXML2_CFLAGS)
453 elements_dash_demux_LDADD = \
454 $(top_builddir)/gst-libs/gst/uridownloader/libgsturidownloader-$(GST_API_VERSION).la \
455 $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \
456 $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_API_VERSION) -lgstapp-$(GST_API_VERSION) \
457 $(GST_BASE_LIBS) $(LIBXML2_LIBS) $(LDADD)
459 elements_dash_demux_SOURCES = elements/test_http_src.c elements/test_http_src.h elements/adaptive_demux_engine.c elements/adaptive_demux_engine.h elements/adaptive_demux_common.c elements/adaptive_demux_common.h elements/dash_demux.c
461 elements_neonhttpsrc_CFLAGS = $(AM_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS)
463 elements_mssdemux_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(AM_CFLAGS) $(LIBXML2_CFLAGS)
464 elements_mssdemux_LDADD = \
465 $(top_builddir)/gst-libs/gst/uridownloader/libgsturidownloader-$(GST_API_VERSION).la \
466 $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \
467 $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_API_VERSION) -lgstapp-$(GST_API_VERSION) \
468 $(GST_BASE_LIBS) $(LIBXML2_LIBS) $(LDADD)
470 elements_mssdemux_SOURCES = elements/test_http_src.c elements/test_http_src.h elements/adaptive_demux_engine.c elements/adaptive_demux_engine.h elements/adaptive_demux_common.c elements/adaptive_demux_common.h elements/mssdemux.c
472 pipelines_streamheader_CFLAGS = $(GIO_CFLAGS) $(AM_CFLAGS)
473 pipelines_streamheader_LDADD = $(GIO_LIBS) $(LDADD)
475 pipelines_ipcpipeline_CFLAGS = $(GST_VALIDATE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS) $(AM_CFLAGS)
476 pipelines_ipcpipeline_LDADD = $(GST_VALIDATE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS) $(LDADD)
478 libs_insertbin_LDADD = \
479 $(top_builddir)/gst-libs/gst/insertbin/libgstinsertbin-@GST_API_VERSION@.la \
480 $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(LDADD)
481 libs_insertbin_CFLAGS = \
482 $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS)
484 libs_player_SOURCES = libs/player.c
486 libs_player_LDADD = \
487 $(top_builddir)/gst-libs/gst/player/libgstplayer-@GST_API_VERSION@.la \
488 $(GST_VIDEO_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) \
490 libs_player_CFLAGS = \
491 $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(AM_CFLAGS) \
492 -DTEST_PATH=\"$(builddir)/media\"
494 if WITH_GST_PLAYER_TESTS
495 PLAYER_MEDIA_FILES = \
497 media/audio-video.ogg \
498 media/audio-short.ogg \
499 media/audio-video-short.ogg \
503 $(PLAYER_MEDIA_FILES):
505 $(WGET) -c http://gstreamer.freedesktop.org/data/media/small/$(subst media/,,$@) -O media/$(subst media/,,$@)
507 libs/player_dummy.c: $(PLAYER_MEDIA_FILES)
508 touch libs/player_dummy.c
510 nodist_libs_player_SOURCES = libs/player_dummy.c
512 CLEANFILES += $(PLAYER_MEDIA_FILES) libs/player_dummy.c
515 elements_rtponvifparse_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
516 elements_rtponvifparse_LDADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD)
518 elements_rtponviftimestamp_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
519 elements_rtponviftimestamp_LDADD = $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD)
521 EXTRA_DIST = gst-plugins-bad.supp $(uvch264_dist_data)
523 orc_bayer_CFLAGS = $(ORC_CFLAGS)
524 orc_bayer_LDADD = $(ORC_LIBS) -lorc-test-0.4
525 nodist_orc_bayer_SOURCES = orc/bayer.c
527 orc/bayer.c: $(top_srcdir)/gst/bayer/gstbayerorc.orc
529 $(ORCC) --test -o $@ $<
531 orc_audiomixer_CFLAGS = $(ORC_CFLAGS)
532 orc_audiomixer_LDADD = $(ORC_LIBS) -lorc-test-0.4
533 nodist_orc_audiomixer_SOURCES = orc/audiomixer.c
535 orc/audiomixer.c: $(top_srcdir)/gst/audiomixer/gstaudiomixerorc.orc
537 $(ORCC) --test -o $@ $<
539 elements_compositor_LDADD = \
540 $(GST_PLUGINS_BASE_LIBS) $(GST_VIDEO_LIBS) $(GST_BASE_LIBS) $(LDADD)
541 elements_compositor_CFLAGS = \
542 $(GST_PLUGINS_BASE_CFLAGS) \
543 $(GST_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
545 elements_hlsdemux_m3u8_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS) -I$(top_srcdir)/ext/hls
546 elements_hlsdemux_m3u8_LDADD = $(GST_BASE_LIBS) $(LDADD)
547 elements_hlsdemux_m3u8_SOURCES = elements/hlsdemux_m3u8.c
549 elements_hls_demux_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
550 elements_hls_demux_LDADD = \
551 $(top_builddir)/gst-libs/gst/adaptivedemux/libgstadaptivedemux-@GST_API_VERSION@.la \
552 $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_API_VERSION) -lgstapp-$(GST_API_VERSION) \
553 $(GST_BASE_LIBS) $(LDADD)
554 elements_hls_demux_SOURCES = elements/test_http_src.c elements/test_http_src.h elements/adaptive_demux_engine.c elements/adaptive_demux_engine.h elements/adaptive_demux_common.c elements/adaptive_demux_common.h elements/hls_demux.c
556 orc_compositor_CFLAGS = $(ORC_CFLAGS)
557 orc_compositor_LDADD = $(ORC_LIBS) -lorc-test-0.4
558 nodist_orc_compositor_SOURCES = orc/compositor.c
559 orc_videobox_CFLAGS = $(ORC_CFLAGS)
561 orc/compositor.c: $(top_srcdir)/gst/compositor/compositororc.orc
563 $(ORCC) --test -o $@ $<