2014-10-22 14:25:30 +00:00
language : c
2015-05-05 14:14:19 +00:00
env :
global :
2015-07-17 11:12:50 +00:00
- TEST_DIM=264x130
- TEST_FRAMES=10
2015-05-05 14:14:19 +00:00
2016-02-17 15:44:02 +00:00
# Use container based infrastructure
2015-07-17 11:12:50 +00:00
sudo : false
2015-05-05 14:14:19 +00:00
2016-02-17 15:44:02 +00:00
# Use this the global requirements list for valgrind tests, because those are the most numerous.
addons :
apt :
sources :
- ubuntu-toolchain-r-test
packages :
- autoconf
- libtool
- p7zip-full # to uncompress our own ffmpeg binary
- valgrind
- yasm
2015-05-05 14:14:19 +00:00
matrix :
fast_finish : true
2016-09-29 14:39:28 +00:00
allow_failures :
- os : osx # Don't know what's wrong. Something changed in the environment.
2015-05-11 10:27:36 +00:00
2015-05-05 14:14:19 +00:00
include :
- compiler : clang
2016-02-17 15:44:02 +00:00
addons :
apt :
sources :
- ubuntu-toolchain-r-test
packages :
- autoconf
- libtool
- yasm
2015-07-17 11:12:50 +00:00
- compiler : gcc-4.8
2016-02-17 15:44:02 +00:00
addons :
apt :
sources :
- ubuntu-toolchain-r-test
packages :
- autoconf
- gcc-4.8
- libtool
- yasm
2015-11-06 13:05:38 +00:00
2016-05-31 08:59:28 +00:00
# We have some Mac specific code and Mac sometimes has odd build issues.
2016-02-17 15:47:36 +00:00
- os : osx
2016-05-31 08:59:28 +00:00
compiler : clang # gcc is actually clang on Travis OS X
2016-02-17 15:47:36 +00:00
2015-11-06 13:05:38 +00:00
# Check for external symbols without kvz_ prefix.
2015-11-09 10:13:20 +00:00
- compiler : gcc-4.8
script :
2015-12-21 12:59:09 +00:00
- ./autogen.sh
- ./configure && make
2016-03-18 10:45:26 +00:00
- (! nm -go --defined-only src/.libs/libkvazaar.a | grep -v ' kvz_') || (echo 'ERROR Only symbols prefixed with kvz_ should be exported from libkvazaar.'; false)
2016-02-17 15:44:02 +00:00
addons :
apt :
sources :
- ubuntu-toolchain-r-test
packages :
- autoconf
- gcc-4.8
- libtool
- yasm
# Tests trying to use invalid input dimensions
- env : EXPECTED_STATUS=1 PARAMS="-i src/kvazaar --input-res=1x65 -o /dev/null"
addons :
apt :
sources :
- ubuntu-toolchain-r-test
packages :
- autoconf
- libtool
- yasm
2015-11-06 13:05:38 +00:00
2015-05-05 14:14:19 +00:00
# These valgrind tests are slow, so they are performed with the minimum
2015-07-17 11:12:50 +00:00
# number of small frames and fast settings.
2015-05-05 14:14:19 +00:00
2016-01-26 08:16:14 +00:00
# Tests for interlace
- env : VALGRIND_TEST="--source-scan-type=tff -p0 --preset=ultrafast --threads=2 --owf=1 --wpp"
2015-05-05 14:14:19 +00:00
# Tests for owf, wpp and tiles. There is lots of separate branches of
# code related to owf=0 and owf!=0, which is why all permutations are
# tried.
- env : VALGRIND_TEST="-p4 -r1 --owf=1 --threads=0 --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3"
- env : VALGRIND_TEST="-p4 -r1 --owf=0 --threads=0 --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3"
- env : VALGRIND_TEST="-p4 -r2 --owf=1 --threads=2 --wpp --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3"
- env : VALGRIND_TEST="-p4 -r2 --owf=0 --threads=2 --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3"
Disable WPP in Travis tile tests
Now that WPP is on by default, Valgrind is finding memory leaks on
these tests. It's not a priority so I'll just disable it for now.
==8120== Memcheck, a memory error detector
==8120== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==8120== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==8120== Command: /home/travis/build/Venti-/kvazaar/src/.libs/lt-kvazaar -i mandelbrot_264x130.yuv --input-res=264x130 -o test.265 -p4 -r2 --owf=1 --threads=2 --tiles-height-split=u2 --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3
==8120==
Disabling TMVP because tiles are used.
Compiled: INTEL, flags: MMX SSE SSE2
Detected: INTEL, flags: MMX SSE SSE2 SSE3 SSSE3 SSE41 SSE42
Available: sse2(2) sse41(1)
In use: sse2(1) sse41(1)
Input: mandelbrot_264x130.yuv, output: test.265
Video size: 264x136 (input=264x130)
==8120== Conditional jump or move depends on uninitialised value(s)
==8120== at 0x4E5FEE5: kvz_threadqueue_job_dep_add (threadqueue.c:616)
==8120== by 0x4E3DEAB: encoder_state_worker_encode_children (encoderstate.c:432)
==8120== by 0x4E3E219: encoder_state_encode (encoderstate.c:649)
==8120== by 0x4E3DE35: encoder_state_worker_encode_children (encoderstate.c:417)
==8120== by 0x4E3E219: encoder_state_encode (encoderstate.c:649)
==8120== by 0x4E3DE35: encoder_state_worker_encode_children (encoderstate.c:417)
==8120== by 0x4E3E219: encoder_state_encode (encoderstate.c:649)
==8120== by 0x4E3ECBD: kvz_encode_one_frame (encoderstate.c:941)
==8120== by 0x4E4DA22: kvazaar_encode (kvazaar.c:229)
==8120== by 0x4E4E228: kvazaar_field_encoding_adapter (kvazaar.c:280)
==8120== by 0x40137F: main (encmain.c:436)
==8120==
lt-kvazaar: threadqueue.c:618: kvz_threadqueue_job_dep_add: Assertion `job && depends_on' failed.
==8120==
==8120== HEAP SUMMARY:
==8120== in use at exit: 1,320,764 bytes in 568 blocks
==8120== total heap usage: 584 allocs, 16 frees, 1,330,691 bytes allocated
==8120==
==8120== 112 bytes in 1 blocks are definitely lost in loss record 27 of 88
==8120== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8120== by 0x4E46BA5: kvz_image_alloc (image.c:49)
==8120== by 0x401E12: input_read_thread (encmain.c:183)
==8120== by 0x55EDE99: start_thread (pthread_create.c:308)
==8120==
==8120== 272 bytes in 1 blocks are possibly lost in loss record 41 of 88
==8120== at 0x4C29DB4: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8120== by 0x4012034: _dl_allocate_tls (dl-tls.c:297)
==8120== by 0x55EEABC: pthread_create@@GLIBC_2.2.5 (allocatestack.c:571)
==8120== by 0x4012B9: main (encmain.c:404)
==8120==
==8120== 544 bytes in 2 blocks are possibly lost in loss record 45 of 88
==8120== at 0x4C29DB4: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8120== by 0x4012034: _dl_allocate_tls (dl-tls.c:297)
==8120== by 0x55EEABC: pthread_create@@GLIBC_2.2.5 (allocatestack.c:571)
==8120== by 0x4E5EF65: kvz_threadqueue_init (threadqueue.c:308)
==8120== by 0x4E3BD2F: kvz_encoder_control_init (encoder.c:173)
==8120== by 0x4E4DD7E: kvazaar_open (kvazaar.c:80)
==8120== by 0x401112: main (encmain.c:346)
==8120==
==8120== 53,856 bytes in 1 blocks are possibly lost in loss record 81 of 88
==8120== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==8120== by 0x4E46BEC: kvz_image_alloc (image.c:59)
==8120== by 0x401E12: input_read_thread (encmain.c:183)
==8120== by 0x55EDE99: start_thread (pthread_create.c:308)
==8120==
==8120== LEAK SUMMARY:
==8120== definitely lost: 112 bytes in 1 blocks
==8120== indirectly lost: 0 bytes in 0 blocks
==8120== possibly lost: 54,672 bytes in 4 blocks
==8120== still reachable: 1,265,980 bytes in 563 blocks
==8120== suppressed: 0 bytes in 0 blocks
==8120== Reachable blocks (those to which a pointer was found) are not shown.
==8120== To see them, rerun with: --leak-check=full --show-reachable=yes
==8120==
==8120== For counts of detected and suppressed errors, rerun with: -v
==8120== Use --track-origins=yes to see where uninitialised values come from
==8120== ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 2 from 2)
2016-09-28 21:21:03 +00:00
- env : VALGRIND_TEST="-p4 -r2 --owf=1 --threads=2 --tiles-height-split=u2 --no-wpp --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3"
- env : VALGRIND_TEST="-p4 -r2 --owf=0 --threads=2 --tiles-height-split=u2 --no-wpp --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3"
2015-05-05 14:14:19 +00:00
# Tests for rdoq, sao, deblock and signhide and subme.
- env : VALGRIND_TEST="-p0 -r1 --threads=2 --wpp --owf=1 --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=1 --pu-depth-intra=2-3"
- env : VALGRIND_TEST="-p0 -r1 --threads=2 --wpp --owf=1 --rd=0 --no-rdoq --no-signhide --subme=0"
- env : VALGRIND_TEST="-p0 -r1 --threads=2 --wpp --owf=1 --rd=0 --no-deblock --no-sao --subme=0"
# Tests for all-intra.
- env : VALGRIND_TEST="-p1 --threads=2 --owf=1 --rd=1 --no-rdoq --no-deblock --no-sao --no-signhide"
- env : VALGRIND_TEST="-p1 --threads=2 --owf=1 --rd=2 --no-rdoq --no-deblock --no-sao --no-signhide --no-transform-skip"
2015-12-15 09:20:17 +00:00
# Tests for SMP and AMP blocks.
2015-12-15 10:24:32 +00:00
- env : TEST_FRAMES=4 VALGRIND_TEST="--threads=2 --owf=1 --wpp --smp"
- env : TEST_FRAMES=4 VALGRIND_TEST="--threads=2 --owf=1 --wpp --amp"
- env : TEST_FRAMES=4 VALGRIND_TEST="--threads=2 --owf=1 --wpp --smp --amp"
2015-12-15 09:20:17 +00:00
2015-06-01 13:36:49 +00:00
# Tests for rate control
- env : VALGRIND_TEST="--bitrate=500000 -p0 -r1 --owf=1 --threads=2 --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3"
2015-05-11 10:27:36 +00:00
# Tests for GOP, with and without OWF.
- env : TEST_FRAMES=20 VALGRIND_TEST="--gop=8 -p0 --threads=2 --wpp --owf=1 --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3"
2015-09-07 12:29:59 +00:00
- env : TEST_FRAMES=10 VALGRIND_TEST="--gop=8 -p0 --threads=2 --wpp --owf=4 --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3"
2015-05-11 10:27:36 +00:00
- env : TEST_FRAMES=20 VALGRIND_TEST="--gop=8 -p0 --threads=2 --wpp --owf=0 --rd=0 --no-rdoq --no-deblock --no-sao --no-signhide --subme=0 --pu-depth-inter=1-3 --pu-depth-intra=2-3"
2017-01-26 07:43:08 +00:00
# Tests for --mv-constraint
- env : VALGRIND_TEST="--threads=2 --owf=1 --preset=ultrafast --pu-depth-inter=0-3 --mv-constraint=frametilemargin"
- env : VALGRIND_TEST="--threads=2 --owf=1 --preset=ultrafast --subme=4 --mv-constraint=frametilemargin"
2014-10-22 14:25:30 +00:00
2015-05-05 14:14:19 +00:00
install :
- source .travis-install.sh
script :
- source .travis-script.sh