summaryrefslogtreecommitdiff
path: root/debian/tests
diff options
context:
space:
mode:
Diffstat (limited to 'debian/tests')
-rw-r--r--debian/tests/control8
-rwxr-xr-xdebian/tests/encdec443
-rwxr-xr-xdebian/tests/encdec-extra7
-rw-r--r--debian/tests/encdec-extra_list.txt13
-rw-r--r--debian/tests/encdec_list.txt59
-rwxr-xr-xdebian/tests/examples19
6 files changed, 549 insertions, 0 deletions
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644
index 0000000..96c4a03
--- /dev/null
+++ b/debian/tests/control
@@ -0,0 +1,8 @@
+Tests: examples
+Depends: build-essential, ffmpeg-doc, libavdevice-dev, libavformat-dev, libavfilter-dev, libavcodec-dev, libswresample-dev, libswscale-dev, libavutil-dev, pkg-config
+
+Tests: encdec
+Depends: ffmpeg
+
+Tests: encdec-extra
+Depends: ffmpeg, libavcodec-extra
diff --git a/debian/tests/encdec b/debian/tests/encdec
new file mode 100755
index 0000000..c480742
--- /dev/null
+++ b/debian/tests/encdec
@@ -0,0 +1,443 @@
+#!/bin/bash
+
+set -e
+
+# test encoders and decoders
+
+SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+TEST_NAME="$1"
+[ ! -z $TEST_NAME ] || TEST_NAME=${BASH_SOURCE[0]##*/}
+ENCDECLIST="$SCRIPT_DIR/${TEST_NAME}"_list.txt
+TEST_DIR="$ADTTMP/test"
+
+encode_file() {
+ test=$1
+ dir=$2
+ mux=${test%%;*}
+ tenc=${test##*;}
+ type=${tenc%%=*}
+ enc=${tenc##*=}
+ codec=${enc%%:*}
+ encoder=${enc##*:}
+ file_name="$dir/$encoder.$mux"
+ opts=
+ # some codecs require extra options
+ if [ "$codec" == "avui" ]; then
+ opts="-s 720x486"
+ elif [ "$codec" == "dnxhd" ]; then
+ opts="-s 1280x720 -b:v 90M"
+ elif [ "$codec" == "dvvideo" ]; then
+ opts="-s 720x480 -pix_fmt yuv411p"
+ elif [ "$codec" == "h261" ]; then
+ opts="-s 176x144"
+ elif [ "$codec" == "h263" ]; then
+ opts="-s 128x96"
+ elif [ "$codec" == "hevc" ]; then
+ opts="-s 64x64"
+ elif [ "$codec" == "roq" ]; then
+ opts="-s 128x128"
+ elif [ "$codec" == "xface" ]; then
+ opts="-s 48x48"
+ elif [ "$codec" == "g723_1" ]; then
+ opts="-ar 8000 -b:a 6300"
+ elif [ "$codec" == "gsm" ]; then
+ opts="-ar 8000 -b:a 13000"
+ elif [ "$codec" == "gsm_ms" ]; then
+ opts="-ar 8000 -b:a 13000"
+ elif [ "$codec" == "roq_dpcm" ]; then
+ opts="-ar 22050"
+ elif [ "$codec" == "s302m" ]; then
+ opts="-ac 2"
+ elif [ "$codec" == "vorbis" ]; then
+ opts="-ac 2"
+ fi
+ src=
+ if [ "$type" = "v" ]; then
+ src=testsrc=s=32x32:d=0.1
+ elif [ "$type" = "a" ]; then
+ src=sine=d=0.1
+ else
+ # unknown codec type
+ return 10
+ fi
+ echo -e "trying muxer '$mux' with '$type' encoder '$encoder' for codec '$codec'\n"
+ ret=0
+ CMD="ffmpeg -f lavfi -i $src -strict -2 $opts -c:$type $encoder -f $mux $file_name -y -hide_banner -nostdin"
+ echo $CMD
+ $CMD 2>&1 || ret=$?
+ return $ret
+}
+
+probe_file() {
+ file_name=$1
+ test=$2
+ mux=${test%%;*}
+ tenc=${test##*;}
+ enc=${tenc##*=}
+ codec=${enc%%:*}
+
+ # determine the codec/format
+ ret=0
+ info=$(ffprobe -hide_banner -strict -2 "$file_name" 2>&1) || ret=$?
+ if [ "$ret" != 0 ]; then
+ echo "probing failed: $ret"
+ return "$ret"
+ fi
+ # file formats can be a comma-separated list, e.g. matroska,webm
+ file_formats=$(echo "$info" | grep "Input #" | sed "s/.*Input #[0-9]*, \([^ ]*\), from.*/\1/")
+ file_formats=${file_formats//,/ }
+ # there can be multiple streams, thus multiple codecs
+ file_codecs=$(echo "$info" | grep "Stream #" | sed "s/.*Stream #.*:.*:.*: \([^ ,]*\).*/\1/")
+ same_format=
+ same_codec=
+
+ # test if the file has the correct codec/format
+ for file_format in $file_formats; do
+ if [ "$mux" == "$file_format" ]; then
+ same_format="$file_format"
+ fi
+ done
+ if [ ! "$same_format" ]; then
+ # wrong format
+ echo "file has the wrong format: $file_formats"
+ return 10
+ fi
+ for file_codec in $file_codecs; do
+ if [ "$codec" == "$file_codec" ]; then
+ same_codec="$file_codec"
+ fi
+ done
+ if [ ! "$same_codec" ]; then
+ # wrong codec
+ echo "file has the wrong codec: $file_codecs"
+ return 11
+ fi
+ return 0
+}
+
+decode_file() {
+ file_name=$1
+ ret=0
+ # The option '-t 1' is necessary, because the comfortnoise decoder never stops producing noise.
+ CMD="ffmpeg -strict -2 -i $file_name -t 1 -c:v rawvideo -c:a pcm_s32le -f nut /dev/null -y -hide_banner -nostdin"
+ echo $CMD
+ $CMD 2>&1 || ret=$?
+ return $ret
+}
+
+streamcopy_file() {
+ file_name=$1
+ test=$2
+ mux=${test%%;*}
+ file_name_copy="$file_name.copy.$mux"
+ ret=0
+ # The option '-t 1' is necessary, because the comfortnoise decoder never stops producing noise.
+ CMD="ffmpeg -strict -2 -i $file_name -t 1 -c copy -f $mux $file_name_copy -y -hide_banner -nostdin"
+ echo $CMD
+ $CMD 2>&1 || ret=$?
+ return $ret
+}
+
+list_formats() {
+ match="$1"
+ old_IFS=$IFS
+ # Set the field seperator to a newline
+ IFS="
+"
+ # Get the raw list
+ lines=$(ffmpeg -hide_banner -formats | grep "^ $match")
+ for line in $lines; do
+ item=$(echo "$line" | sed "s/^ [D ][E ] \([^ ]*\) .*/\1/")
+ item=${item%%,*}
+ echo "$item"
+ done
+ IFS=$old_IFS
+}
+
+list_codecs() {
+ what=$1
+ match="$2"
+ type="$3"
+ old_IFS=$IFS
+ # Set the field seperator to a newline
+ IFS="
+"
+ # Get the raw list
+ lines=$(ffmpeg -hide_banner -codecs | grep "^ $match$type")
+ for line in $lines; do
+ items=$(echo "$line" | grep "($what:")
+ codec=$(echo "$line" | sed "s/^ [^ ]* \([^ ]*\) .*/\1/")
+ if [ -z "$items" ]; then
+ echo "${type,,}=$codec"
+ else
+ # de/encoder(s) name(s) differ from codec name
+ items=$(echo "$items" | sed "s/.*($what: \([^)]*\) ).*/\1/")
+ IFS=" "
+ for item in $items; do
+ echo "${type,,}=$codec:$item"
+ done
+ IFS="
+"
+ fi
+ done
+ IFS=$old_IFS
+}
+
+list_muxers() {
+ muxs=$(list_formats ".E [^=]")
+ echo $muxs
+}
+
+list_demuxers() {
+ dems=$(list_formats "D. [^=]")
+ echo $dems
+}
+
+list_video_encoders() {
+ vencs=$(list_codecs encoders ".E" "V")
+ echo $vencs
+}
+
+list_video_decoders() {
+ vdecs=$(list_codecs decoders "D." "V")
+ echo $vdecs
+}
+
+list_audio_encoders() {
+ aencs=$(list_codecs encoders ".E" "A")
+ echo $aencs
+}
+
+list_audio_decoders() {
+ adecs=$(list_codecs decoders "D." "A")
+ echo $adecs
+}
+
+read_tests() {
+ filename=$1
+ old_IFS=$IFS
+ # Set the field seperator to a newline
+ IFS="
+"
+ # Get the raw list
+ lines=$(cat "$filename")
+ for line in $lines; do
+ muxer=${line%%;*}
+ tencs=${line##*;}
+ if [ "$tencs" ]; then
+ IFS=" "
+ for tenc in $tencs; do
+ echo "$muxer;$tenc"
+ done
+ IFS="
+"
+ fi
+ done
+ IFS=$old_IFS
+}
+
+echo "TEST: $TEST_NAME"
+echo -e "ADTTMP directory: $ADTTMP\n\n"
+
+mkdir -p "$TEST_DIR"
+
+ffmpeg -version 2>&1
+
+echo -e "\n"
+
+# determine the supported muxers and encoders
+echo "muxers:"
+muxs=$(list_muxers)
+echo "$muxs"
+echo -e "\n"
+
+vencs=$(list_video_encoders)
+aencs=$(list_audio_encoders)
+echo "encoders:"
+encs="$vencs $aencs"
+echo "$encs"
+echo -e "\n"
+
+for mux in $muxs; do
+ mux_tests=
+ for tenc in $encs; do
+ mux_tests="$mux_tests $mux;$tenc "
+ done
+ possible_tests="$possible_tests$mux_tests"
+done
+
+if [ -f $ENCDECLIST ]; then
+ tests=$(read_tests $ENCDECLIST)
+else
+ # create the list of working tests if it doesn't exist
+ update="true"
+ tests=$possible_tests
+fi
+
+num_tests=$(echo $tests | wc -w)
+echo -e "$num_tests tests\n"
+
+crashes=
+failures=
+skipped=
+
+num_test=0
+num_success=0
+
+for test in $tests; do
+ num_test=$((num_test + 1))
+ echo "Test $num_test:"
+ streamcopy=${test##*|}
+ if [ "$update" ]; then
+ streamcopy=1
+ fi
+ test=${test%%|*}
+ # skip the test, if the muxer/encoder is not available
+ available=$(echo "$possible_tests" | grep " $test ") || true
+ if [ ! "$available" ]; then
+ skipped="${skipped}${test}\n"
+ echo -e "SKIPPED: $test\n\n"
+ continue
+ fi
+ mux=${test%%;*}
+ tenc=${test##*;}
+ ret=0
+ # try encoding a file
+ # this also sets the file_name variable
+ encode_file $test $TEST_DIR || ret=$?
+ echo -e "\n"
+ if [ "$ret" != "0" ]; then
+ errmsg="$test; encoding return code: $ret"
+ if [ "$ret" -gt 128 ]; then
+ crashes="${crashes}${errmsg}\n"
+ else
+ failures="${failures}${errmsg}\n"
+ fi
+ echo -e "\nFAILED: $errmsg\n\n"
+ continue
+ fi
+ ret=0
+ # test if the file has the correct format/codec
+ err=$(probe_file "$file_name" $test) || ret=$?
+ if [ "$ret" != "0" ]; then
+ errmsg="$test; $err"
+ if [ "$ret" -gt 128 ]; then
+ crashes="${crashes}${errmsg}\n"
+ else
+ failures="${failures}${errmsg}\n"
+ fi
+ echo -e "\nFAILED: $errmsg\n\n"
+ continue
+ fi
+ ret=0
+ # test decoding the file
+ decode_file "$file_name" || ret=$?
+ if [ "$ret" != "0" ]; then
+ errmsg="$test; decoding return code: $ret"
+ if [ "$ret" -gt 128 ]; then
+ crashes="${crashes}${errmsg}\n"
+ else
+ failures="${failures}${errmsg}\n"
+ fi
+ echo -e "\nFAILED: $errmsg\n\n"
+ continue
+ fi
+ streamcopy_orig="$streamcopy"
+ if [ "$streamcopy" == "1" ]; then
+ ret=0
+ # test streamcopying the file
+ # this also sets the file_name_copy variable
+ echo -e "\n"
+ streamcopy_file "$file_name" "$test" || ret=$?
+ if [ "$ret" != "0" ]; then
+ errmsg="$test; streamcopy return code: $ret"
+ if [ "$ret" -gt 128 ]; then
+ crashes="${crashes}${errmsg}\n"
+ else
+ failures="${failures}${errmsg}\n"
+ fi
+ echo -e "\nFAILED: $errmsg\n\n"
+ streamcopy=0
+ fi
+ fi
+ if [ "$streamcopy" == "1" ]; then
+ ret=0
+ # test if the file has the correct format/codec
+ err=$(probe_file "$file_name_copy" $test) || ret=$?
+ if [ "$ret" != "0" ]; then
+ errmsg="$test; streamcopy: $err"
+ if [ "$ret" -gt 128 ]; then
+ crashes="${crashes}${errmsg}\n"
+ else
+ failures="${failures}${errmsg}\n"
+ fi
+ echo -e "\nFAILED: $errmsg\n\n"
+ streamcopy=0
+ fi
+ fi
+ works=$([ "$streamcopy" = "1" ] && echo works || echo fails)
+ if [ "$streamcopy_orig" = "$streamcopy" ]; then
+ echo -e "\nSUCCESS: correctly created file with format '$mux' and codec '$tenc'; streamcopying $works\n\n"
+ num_success=$((num_success + 1))
+ fi
+ if [ "$update" ]; then
+ if [ "x$last_mux" != "x$mux" ]; then
+ if [ "$last_mux" ]; then
+ # newline
+ echo "" >> $ENCDECLIST
+ fi
+ echo -n "$mux;" >> $ENCDECLIST
+ fi
+ last_mux=$mux
+ echo -n " $tenc|$streamcopy" >> $ENCDECLIST
+ fi
+done
+
+
+echo "done!"
+
+
+ret=0
+
+num_crashes=0
+num_failures=0
+num_skipped=0
+
+if [ "$crashes" ]; then
+ num_crashes=$(echo -e "$crashes" | wc -l)
+ num_crashes=$((num_crashes - 1))
+fi
+if [ "$failures" ]; then
+ num_failures=$(echo -e "$failures" | wc -l)
+ num_failures=$((num_failures - 1))
+fi
+if [ "$skipped" ]; then
+ num_skipped=$(echo -e "$skipped" | wc -l)
+ num_skipped=$((num_skipped - 1))
+fi
+
+if [ "$num_crashes" != "0" ]; then
+ ret=1
+ echo -e "\n\ncrashes: $num_crashes\n"
+ echo -e "$crashes"
+fi
+
+if [ "$num_failures" != "0" ]; then
+ ret=1
+ echo -e "\n\nfailures: $num_failures\n"
+ echo -e "$failures"
+fi
+
+if [ "$num_skipped" != "0" ]; then
+ echo -e "\n\nskipped: $num_skipped\n"
+ echo -e "$skipped"
+fi
+
+if [ "$num_success" != "0" ]; then
+ echo -e "\n\nsuccess: $num_success\n"
+else
+ ret=1
+ echo -e "\n\nno single success: something is definitely wrong\n"
+fi
+
+exit $ret
diff --git a/debian/tests/encdec-extra b/debian/tests/encdec-extra
new file mode 100755
index 0000000..be80c74
--- /dev/null
+++ b/debian/tests/encdec-extra
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+set -e
+
+SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+
+"$SCRIPT_DIR"/encdec encdec-extra
diff --git a/debian/tests/encdec-extra_list.txt b/debian/tests/encdec-extra_list.txt
new file mode 100644
index 0000000..85be0e3
--- /dev/null
+++ b/debian/tests/encdec-extra_list.txt
@@ -0,0 +1,13 @@
+3g2; a=amr_nb:libopencore_amrnb|1 a=amr_wb:libvo_amrwbenc|1
+3gp; a=amr_nb:libopencore_amrnb|1 a=amr_wb:libvo_amrwbenc|1
+amr; a=amr_nb:libopencore_amrnb|1 a=amr_wb:libvo_amrwbenc|1
+asf; a=amr_nb:libopencore_amrnb|1 a=amr_wb:libvo_amrwbenc|1
+avi; a=amr_nb:libopencore_amrnb|1 a=amr_wb:libvo_amrwbenc|1
+caf; a=amr_nb:libopencore_amrnb|1
+ffm; a=amr_nb:libopencore_amrnb|0 a=amr_wb:libvo_amrwbenc|0
+matroska; a=amr_nb:libopencore_amrnb|1 a=amr_wb:libvo_amrwbenc|1
+mov; a=amr_nb:libopencore_amrnb|1 a=amr_wb:libvo_amrwbenc|1
+nut; a=amr_nb:libopencore_amrnb|1 a=amr_wb:libvo_amrwbenc|1
+w64; a=amr_nb:libopencore_amrnb|1 a=amr_wb:libvo_amrwbenc|1
+wav; a=amr_nb:libopencore_amrnb|1 a=amr_wb:libvo_amrwbenc|1
+wtv; a=amr_nb:libopencore_amrnb|1 a=amr_wb:libvo_amrwbenc|1
diff --git a/debian/tests/encdec_list.txt b/debian/tests/encdec_list.txt
new file mode 100644
index 0000000..13f2335
--- /dev/null
+++ b/debian/tests/encdec_list.txt
@@ -0,0 +1,59 @@
+3g2; v=h263|1 v=h264:libx264|1 v=h264:libx264rgb|1 v=mpeg4:mpeg4|1 v=mpeg4:libxvid|1 a=aac|1
+3gp; v=h263|1 v=h264:libx264|1 v=h264:libx264rgb|1 v=mpeg4:mpeg4|1 v=mpeg4:libxvid|1 a=aac|1
+ac3; a=ac3:ac3|1
+adx; a=adpcm_adx|0
+aiff; a=adpcm_ima_qt|1 a=pcm_alaw|1 a=pcm_f32be|1 a=pcm_f64be|1 a=pcm_mulaw|1 a=pcm_s16be|1 a=pcm_s16le|1 a=pcm_s24be|1 a=pcm_s32be|1 a=pcm_s8|1 a=pcm_u8|1
+apng; v=apng|1
+asf; v=amv|1 v=asv1|1 v=asv2|1 v=ayuv|1 v=cinepak|1 v=cljr|1 v=dirac:vc2|1 v=dpx|1 v=dvvideo|1 v=ffv1|1 v=ffvhuff|1 v=flashsv|1 v=flv1:flv|1 v=h261|1 v=h263|1 v=h264:libx264|1 v=h264:libx264rgb|1 v=huffyuv|1 v=jpeg2000:jpeg2000|1 v=jpeg2000:libopenjpeg|1 v=jpegls|1 v=mjpeg:mjpeg|1 v=mpeg1video|1 v=mpeg2video|1 v=mpeg4:mpeg4|1 v=mpeg4:libxvid|1 v=msmpeg4v2|1 v=msmpeg4v3:msmpeg4|1 v=msvideo1|1 v=png|1 v=r10k|1 v=r210|1 v=snow|1 v=svq1|1 v=targa|1 v=theora:libtheora|1 v=utvideo|1 v=v210|1 v=v308|1 v=v408|1 v=v410|1 v=vp8:libvpx|1 v=vp9:libvpx-vp9|1 v=wmv1|1 v=wmv2|1 v=y41p|1 v=yuv4|1 v=zlib|1 v=zmbv|1 a=aac|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=adpcm_g722:g722|1 a=adpcm_g726:g726|1 a=adpcm_ima_wav|1 a=adpcm_ms|1 a=adpcm_swf|1 a=adpcm_yamaha|1 a=dts:dca|1 a=eac3|1 a=flac|1 a=g723_1|1 a=gsm_ms:libgsm_ms|1 a=mp2:mp2|1 a=mp2:mp2fixed|1 a=mp2:libtwolame|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=pcm_alaw|1 a=pcm_f32le|1 a=pcm_f64le|1 a=pcm_mulaw|1 a=pcm_s16le|1 a=pcm_s24le|1 a=pcm_s32le|1 a=pcm_s64le|1 a=pcm_u8|1 a=sonic|1 a=speex:libspeex|1 a=vorbis:vorbis|1 a=vorbis:libvorbis|1 a=wmav1|1 a=wmav2|1
+ast; a=pcm_s16be_planar|1
+au; a=adpcm_g722:g722|1 a=pcm_alaw|1 a=pcm_f32be|1 a=pcm_f64be|1 a=pcm_mulaw|1 a=pcm_s16be|1 a=pcm_s24be|1 a=pcm_s32be|1 a=pcm_s8|1
+avi; v=amv|1 v=asv1|1 v=asv2|1 v=ayuv|1 v=cinepak|1 v=cljr|1 v=dirac:vc2|1 v=dpx|1 v=dvvideo|1 v=ffv1|1 v=ffvhuff|1 v=flashsv|1 v=flv1:flv|1 v=h261|1 v=h263|1 v=h264:libx264|1 v=h264:libx264rgb|1 v=hap|1 v=huffyuv|1 v=jpeg2000:jpeg2000|1 v=jpeg2000:libopenjpeg|1 v=jpegls|1 v=mjpeg:mjpeg|1 v=mpeg1video|1 v=mpeg2video|1 v=mpeg4:mpeg4|1 v=mpeg4:libxvid|1 v=msmpeg4v2|1 v=msmpeg4v3:msmpeg4|1 v=msvideo1|1 v=png|1 v=prores:prores|1 v=prores:prores_aw|1 v=prores:prores_ks|1 v=r10k|1 v=r210|1 v=snow|1 v=svq1|1 v=targa|1 v=theora:libtheora|1 v=utvideo|1 v=v210|1 v=v308|1 v=v408|1 v=v410|1 v=vp8:libvpx|1 v=vp9:libvpx-vp9|1 v=wmv1|1 v=wmv2|1 v=y41p|1 v=yuv4|1 v=zlib|1 v=zmbv|1 a=aac|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=adpcm_g722:g722|1 a=adpcm_g726:g726|1 a=adpcm_ima_wav|1 a=adpcm_ms|1 a=adpcm_swf|1 a=adpcm_yamaha|1 a=dts:dca|1 a=eac3|1 a=flac|1 a=g723_1|1 a=gsm_ms:libgsm_ms|1 a=mp2:mp2|1 a=mp2:mp2fixed|1 a=mp2:libtwolame|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=pcm_alaw|1 a=pcm_f32le|1 a=pcm_f64le|1 a=pcm_mulaw|1 a=pcm_s16le|1 a=pcm_s24le|1 a=pcm_s32le|1 a=pcm_s64le|1 a=pcm_u8|1 a=sonic|1 a=speex:libspeex|1 a=vorbis:vorbis|1 a=vorbis:libvorbis|1 a=wmav1|1 a=wmav2|1
+caf; a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=adpcm_ima_qt|1 a=adpcm_ima_wav|1 a=adpcm_ms|1 a=alac|1 a=gsm:libgsm|1 a=gsm_ms:libgsm_ms|1 a=mp2:mp2|1 a=mp2:mp2fixed|1 a=mp2:libtwolame|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=pcm_alaw|1 a=pcm_f32be|1 a=pcm_f32le|1 a=pcm_f64be|1 a=pcm_f64le|1 a=pcm_mulaw|1 a=pcm_s16be|1 a=pcm_s16le|1 a=pcm_s24be|1 a=pcm_s24le|1 a=pcm_s32be|1 a=pcm_s32le|1 a=pcm_s8|1
+dirac; v=dirac:vc2|1
+dnxhd; v=dnxhd|1
+dts; a=dts:dca|1
+dv; v=dvvideo|1
+eac3; a=eac3|1
+ffm; v=alias_pix|0 v=amv|0 v=asv1|0 v=asv2|0 v=avrp|0 v=ayuv|0 v=bmp|0 v=cinepak|0 v=cljr|0 v=dirac:vc2|0 v=dnxhd|0 v=dpx|0 v=dvvideo|0 v=ffv1|0 v=ffvhuff|0 v=flashsv|0 v=flashsv2|0 v=flv1:flv|0 v=h261|0 v=h263|0 v=h263p|0 v=h264:libx264|0 v=h264:libx264rgb|0 v=hap|0 v=hevc:libx265|0 v=huffyuv|0 v=jpeg2000:jpeg2000|0 v=jpeg2000:libopenjpeg|0 v=jpegls|0 v=mjpeg:mjpeg|0 v=mpeg1video|0 v=mpeg2video|0 v=mpeg4:mpeg4|0 v=mpeg4:libxvid|0 v=msmpeg4v2|0 v=msmpeg4v3:msmpeg4|0 v=msvideo1|0 v=pam|0 v=pbm|0 v=pcx|0 v=pgm|0 v=pgmyuv|0 v=png|0 v=ppm|0 v=prores:prores|0 v=prores:prores_aw|0 v=prores:prores_ks|0 v=qtrle|0 v=r10k|0 v=r210|0 v=rawvideo|0 v=roq:roqvideo|0 v=sgi|0 v=snow|0 v=sunrast|0 v=svq1|0 v=targa|0 v=tiff|0 v=v210|0 v=v308|0 v=v408|0 v=v410|0 v=vp8:libvpx|0 v=vp9:libvpx-vp9|0 v=webp:libwebp|0 v=wmv1|0 v=wmv2|0 v=xbm|0 v=xface|0 v=xwd|0 v=y41p|0 v=yuv4|0 v=zmbv|0 a=aac|0 a=ac3:ac3|0 a=ac3:ac3_fixed|0 a=adpcm_adx|0 a=adpcm_g722:g722|0 a=adpcm_g726:g726|0 a=adpcm_ima_qt|0 a=adpcm_ima_wav|0 a=adpcm_ms|0 a=adpcm_swf|0 a=adpcm_yamaha|0 a=comfortnoise|0 a=dts:dca|0 a=eac3|0 a=flac|0 a=g723_1|0 a=gsm:libgsm|0 a=gsm_ms:libgsm_ms|0 a=mlp|0 a=mp2:mp2|0 a=mp2:mp2fixed|0 a=mp2:libtwolame|0 a=mp3:libmp3lame|0 a=mp3:libshine|0 a=nellymoser|0 a=opus:libopus|0 a=pcm_alaw|0 a=pcm_f32be|0 a=pcm_f32le|0 a=pcm_f64be|0 a=pcm_f64le|0 a=pcm_mulaw|0 a=pcm_s16be|0 a=pcm_s16be_planar|0 a=pcm_s16le|0 a=pcm_s16le_planar|0 a=pcm_s24be|0 a=pcm_s24daud|0 a=pcm_s24le|0 a=pcm_s24le_planar|0 a=pcm_s32be|0 a=pcm_s32le|0 a=pcm_s32le_planar|0 a=pcm_s64be|0 a=pcm_s64le|0 a=pcm_s8|0 a=pcm_s8_planar|0 a=pcm_u16be|0 a=pcm_u16le|0 a=pcm_u24be|0 a=pcm_u24le|0 a=pcm_u32be|0 a=pcm_u32le|0 a=pcm_u8|0 a=ra_144:real_144|0 a=roq_dpcm|0 a=s302m|0 a=speex:libspeex|0 a=truehd|0 a=wavpack:wavpack|0 a=wavpack:libwavpack|0 a=wmav1|0 a=wmav2|0
+flac; a=flac|1
+flv; v=flashsv|1 v=flashsv2|1 v=flv1:flv|1 v=h263|0 v=h264:libx264|1 v=h264:libx264rgb|1 a=aac|1 a=adpcm_swf|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=nellymoser|1 a=pcm_alaw|1 a=pcm_mulaw|1 a=pcm_s16le|1 a=pcm_u8|1
+g722; a=adpcm_g722:g722|1
+g723_1; a=g723_1|1
+gif; v=gif|0
+gsm; a=gsm:libgsm|1
+gxf; v=dvvideo|1
+h261; v=h261|1
+h263; v=h263|1
+h264; v=h264:libx264|1 v=h264:libx264rgb|1
+hevc; v=hevc:libx265|1
+hls; v=dirac:vc2|1 v=h264:libx264|1 v=h264:libx264rgb|1 v=hevc:libx265|1 v=mpeg1video|1 v=mpeg2video|1 v=mpeg4:mpeg4|1 a=aac|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=dts:dca|1 a=eac3|1 a=mp2:mp2|1 a=mp2:mp2fixed|1 a=mp2:libtwolame|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=opus:libopus|1 a=s302m|1
+ircam; a=pcm_alaw|1 a=pcm_f32le|1 a=pcm_f64le|1 a=pcm_mulaw|1 a=pcm_s16le|1 a=pcm_s24le|1 a=pcm_s32le|1 a=pcm_s8|1
+ivf; v=vp8:libvpx|1 v=vp9:libvpx-vp9|1
+m4v; v=mpeg4:mpeg4|1 v=mpeg4:libxvid|1
+matroska; v=amv|1 v=asv1|1 v=asv2|1 v=avrp|1 v=ayuv|1 v=cinepak|1 v=cljr|1 v=dirac:vc2|1 v=dnxhd|1 v=dpx|1 v=dvvideo|1 v=ffv1|1 v=ffvhuff|1 v=flashsv|1 v=flv1:flv|1 v=h261|1 v=h263|1 v=h264:libx264|1 v=h264:libx264rgb|1 v=hap|1 v=hevc:libx265|1 v=huffyuv|1 v=jpeg2000:jpeg2000|1 v=jpeg2000:libopenjpeg|1 v=jpegls|1 v=mjpeg:mjpeg|1 v=mpeg1video|1 v=mpeg2video|1 v=mpeg4:mpeg4|1 v=mpeg4:libxvid|1 v=msmpeg4v2|1 v=msmpeg4v3:msmpeg4|1 v=msvideo1|1 v=png|1 v=prores:prores|1 v=prores:prores_aw|1 v=prores:prores_ks|1 v=r10k|1 v=r210|1 v=rawvideo|0 v=sgi|1 v=snow|1 v=svq1|1 v=targa|1 v=theora:libtheora|1 v=tiff|1 v=utvideo|1 v=v210|1 v=v308|1 v=v408|1 v=v410|1 v=vp8:libvpx|1 v=vp9:libvpx-vp9|1 v=wmv1|1 v=wmv2|1 v=y41p|1 v=yuv4|1 v=zlib|1 v=zmbv|1 a=aac|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=adpcm_g722:g722|1 a=adpcm_g726:g726|1 a=adpcm_ima_wav|1 a=adpcm_ms|1 a=adpcm_swf|1 a=adpcm_yamaha|1 a=alac|1 a=dts:dca|1 a=eac3|1 a=flac|1 a=g723_1|1 a=gsm_ms:libgsm_ms|1 a=mlp|1 a=mp2:mp2|1 a=mp2:mp2fixed|1 a=mp2:libtwolame|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=opus:libopus|1 a=pcm_alaw|1 a=pcm_f32le|1 a=pcm_f64le|1 a=pcm_mulaw|1 a=pcm_s16be|1 a=pcm_s16le|1 a=pcm_s24be|1 a=pcm_s24le|1 a=pcm_s32be|1 a=pcm_s32le|1 a=pcm_s64le|1 a=pcm_u8|1 a=ra_144:real_144|1 a=sonic|1 a=speex:libspeex|1 a=truehd|1 a=tta|1 a=vorbis:vorbis|1 a=vorbis:libvorbis|1 a=wavpack:wavpack|1 a=wavpack:libwavpack|1 a=wmav1|1 a=wmav2|1
+mjpeg; v=mjpeg:mjpeg|1
+mlp; a=mlp|1
+mmf; a=adpcm_yamaha|1
+mov; v=amv|1 v=asv1|1 v=asv2|1 v=avrp|1 v=avui|1 v=ayuv|1 v=cinepak|1 v=cljr|1 v=dirac:vc2|1 v=dnxhd|1 v=dpx|1 v=dvvideo|1 v=ffv1|1 v=ffvhuff|1 v=flashsv|1 v=flv1:flv|1 v=h261|1 v=h263|1 v=h264:libx264|1 v=h264:libx264rgb|1 v=hap|1 v=hevc:libx265|1 v=huffyuv|1 v=jpeg2000:jpeg2000|1 v=jpeg2000:libopenjpeg|1 v=jpegls|1 v=mjpeg:mjpeg|1 v=mpeg1video|1 v=mpeg2video|1 v=mpeg4:mpeg4|1 v=mpeg4:libxvid|1 v=msmpeg4v2|1 v=msmpeg4v3:msmpeg4|1 v=msvideo1|1 v=png|1 v=prores:prores|1 v=prores:prores_aw|1 v=prores:prores_ks|1 v=qtrle|1 v=r10k|1 v=r210|1 v=sgi|1 v=snow|1 v=svq1|1 v=targa|1 v=theora:libtheora|1 v=tiff|1 v=utvideo|1 v=v210|1 v=v308|1 v=v408|1 v=v410|1 v=vp8:libvpx|1 v=vp9:libvpx-vp9|1 v=wmv1|1 v=wmv2|1 v=y41p|1 v=yuv4|1 v=zlib|1 v=zmbv|0 a=aac|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=adpcm_g722:g722|1 a=adpcm_g726:g726|1 a=adpcm_ima_qt|1 a=adpcm_ima_wav|0 a=adpcm_ms|0 a=adpcm_swf|1 a=adpcm_yamaha|1 a=alac|1 a=dts:dca|1 a=eac3|1 a=flac|1 a=g723_1|1 a=gsm:libgsm|1 a=gsm_ms:libgsm_ms|1 a=mp2:mp2|1 a=mp2:mp2fixed|1 a=mp2:libtwolame|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=nellymoser|1 a=pcm_alaw|1 a=pcm_f32be|1 a=pcm_f32le|1 a=pcm_f64be|1 a=pcm_f64le|1 a=pcm_mulaw|1 a=pcm_s16be|1 a=pcm_s16le|1 a=pcm_s24be|1 a=pcm_s24le|1 a=pcm_s32be|1 a=pcm_s32le|1 a=pcm_s8|1 a=pcm_u8|1 a=sonic|1 a=speex:libspeex|1 a=vorbis:vorbis|1 a=vorbis:libvorbis|1
+mp3; a=mp3:libmp3lame|1 a=mp3:libshine|1
+mp4; v=dirac:vc2|1 v=h264:libx264|1 v=h264:libx264rgb|1 v=hevc:libx265|1 v=jpeg2000:jpeg2000|1 v=jpeg2000:libopenjpeg|1 v=mjpeg:mjpeg|1 v=mpeg1video|1 v=mpeg2video|1 v=mpeg4:mpeg4|1 v=mpeg4:libxvid|1 v=png|1 v=vp9:libvpx-vp9|0 a=aac|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=dts:dca|1 a=eac3|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=vorbis:vorbis|1 a=vorbis:libvorbis|1
+mpeg; v=h264:libx264|1 v=h264:libx264rgb|1 v=hevc:libx265|1 v=mpeg1video|1 v=mpeg2video|1 v=mpeg4:mpeg4|1 v=mpeg4:libxvid|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=dts:dca|1 a=mp2:mp2|1 a=mp2:mp2fixed|1 a=mp2:libtwolame|1 a=mp3:libmp3lame|1 a=mp3:libshine|1
+mpegts; v=dirac:vc2|1 v=h264:libx264|1 v=h264:libx264rgb|1 v=hevc:libx265|1 v=mpeg1video|1 v=mpeg2video|1 v=mpeg4:mpeg4|1 a=aac|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=dts:dca|1 a=eac3|1 a=mp2:mp2|1 a=mp2:mp2fixed|1 a=mp2:libtwolame|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=opus:libopus|1 a=s302m|1
+mpjpeg; v=mjpeg:mjpeg|1
+mxf; v=dnxhd|1 v=dvvideo|1 v=jpeg2000:jpeg2000|1 v=jpeg2000:libopenjpeg|1 v=mpeg2video|1
+nut; v=amv|1 v=asv1|1 v=asv2|1 v=ayuv|1 v=cinepak|1 v=cljr|1 v=dirac:vc2|0 v=dpx|1 v=dvvideo|1 v=ffv1|1 v=ffvhuff|1 v=flashsv|1 v=flv1:flv|1 v=h261|1 v=h263|1 v=h264:libx264|1 v=h264:libx264rgb|1 v=hap|1 v=huffyuv|1 v=jpeg2000:jpeg2000|1 v=jpeg2000:libopenjpeg|1 v=jpegls|1 v=mjpeg:mjpeg|1 v=mpeg1video|1 v=mpeg2video|1 v=mpeg4:mpeg4|1 v=mpeg4:libxvid|1 v=msmpeg4v2|1 v=msmpeg4v3:msmpeg4|1 v=msvideo1|1 v=png|1 v=prores:prores|1 v=prores:prores_aw|1 v=prores:prores_ks|1 v=r10k|1 v=r210|1 v=rawvideo|1 v=snow|1 v=svq1|1 v=targa|1 v=theora:libtheora|1 v=utvideo|1 v=v210|1 v=v308|1 v=v408|1 v=v410|1 v=vp8:libvpx|1 v=vp9:libvpx-vp9|1 v=wmv1|1 v=wmv2|1 v=xface|1 v=y41p|1 v=yuv4|1 v=zlib|1 v=zmbv|1 a=aac|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=adpcm_g722:g722|1 a=adpcm_ms|1 a=adpcm_swf|1 a=adpcm_yamaha|1 a=comfortnoise|1 a=dts:dca|1 a=flac|1 a=g723_1|1 a=gsm_ms:libgsm_ms|1 a=mp2:mp2|1 a=mp2:mp2fixed|1 a=mp2:libtwolame|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=pcm_alaw|1 a=pcm_f32be|1 a=pcm_f32le|1 a=pcm_f64be|1 a=pcm_f64le|1 a=pcm_mulaw|1 a=pcm_s16be|1 a=pcm_s16be_planar|1 a=pcm_s16le|1 a=pcm_s16le_planar|1 a=pcm_s24be|1 a=pcm_s24le|1 a=pcm_s24le_planar|1 a=pcm_s32be|1 a=pcm_s32le|1 a=pcm_s32le_planar|1 a=pcm_s8|1 a=pcm_s8_planar|1 a=pcm_u16be|1 a=pcm_u16le|1 a=pcm_u24be|1 a=pcm_u24le|1 a=pcm_u32be|1 a=pcm_u32le|1 a=pcm_u8|1 a=sonic|1 a=speex:libspeex|1 a=vorbis:vorbis|1 a=vorbis:libvorbis|1 a=wavpack:wavpack|1 a=wavpack:libwavpack|1
+ogg; v=theora:libtheora|1 v=vp8:libvpx|1 a=flac|1 a=opus:libopus|1 a=speex:libspeex|1 a=vorbis:vorbis|1 a=vorbis:libvorbis|1
+rm; v=rv10|1 v=rv20|1 a=aac|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=ra_144:real_144|1
+roq; v=roq:roqvideo|0 a=roq_dpcm|1
+rso; a=pcm_u8|1
+smjpeg; v=mjpeg:mjpeg|1 a=pcm_s16le|1
+sox; a=pcm_s32be|1 a=pcm_s32le|1
+spdif; a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=mp3:libmp3lame|1 a=mp3:libshine|1
+swf; v=flv1:flv|0 v=mjpeg:mjpeg|1 a=mp3:libmp3lame|1 a=mp3:libshine|1
+tta; a=tta|1
+voc; a=pcm_alaw|1 a=pcm_mulaw|1 a=pcm_s16le|1 a=pcm_u8|1
+w64; a=aac|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=adpcm_g722:g722|1 a=adpcm_g726:g726|1 a=adpcm_ima_wav|1 a=adpcm_ms|1 a=adpcm_swf|1 a=adpcm_yamaha|1 a=dts:dca|1 a=eac3|1 a=flac|1 a=g723_1|1 a=gsm_ms:libgsm_ms|1 a=mp2:mp2|1 a=mp2:mp2fixed|1 a=mp2:libtwolame|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=pcm_alaw|1 a=pcm_f32le|1 a=pcm_f64le|1 a=pcm_mulaw|1 a=pcm_s16le|1 a=pcm_s24le|1 a=pcm_s32le|1 a=pcm_s64le|1 a=pcm_u8|1 a=sonic|1 a=speex:libspeex|1 a=vorbis:vorbis|1 a=vorbis:libvorbis|1 a=wmav1|1 a=wmav2|1
+wav; a=aac|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=adpcm_g722:g722|1 a=adpcm_g726:g726|1 a=adpcm_ima_wav|1 a=adpcm_ms|1 a=adpcm_swf|1 a=adpcm_yamaha|1 a=dts:dca|1 a=eac3|1 a=flac|1 a=g723_1|1 a=gsm_ms:libgsm_ms|1 a=mp2:mp2|1 a=mp2:mp2fixed|1 a=mp2:libtwolame|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=pcm_alaw|1 a=pcm_f32le|1 a=pcm_f64le|1 a=pcm_mulaw|1 a=pcm_s16le|1 a=pcm_s24le|1 a=pcm_s32le|1 a=pcm_s64le|1 a=pcm_u8|1 a=sonic|1 a=speex:libspeex|1 a=vorbis:vorbis|1 a=vorbis:libvorbis|1 a=wmav1|1 a=wmav2|1
+webm; v=vp8:libvpx|1 v=vp9:libvpx-vp9|1 a=opus:libopus|1 a=vorbis:vorbis|1 a=vorbis:libvorbis|1
+wtv; v=amv|1 v=asv1|1 v=asv2|1 v=ayuv|1 v=cinepak|0 v=cljr|1 v=dirac:vc2|1 v=dpx|1 v=dvvideo|1 v=ffv1|0 v=ffvhuff|1 v=flashsv|0 v=flv1:flv|0 v=h261|1 v=h263|1 v=h264:libx264|1 v=h264:libx264rgb|1 v=huffyuv|1 v=jpeg2000:jpeg2000|1 v=jpeg2000:libopenjpeg|1 v=jpegls|1 v=mpeg1video|1 v=mpeg2video|1 v=mpeg4:mpeg4|1 v=mpeg4:libxvid|1 v=msmpeg4v2|0 v=msmpeg4v3:msmpeg4|0 v=msvideo1|0 v=png|0 v=r10k|1 v=r210|1 v=snow|0 v=svq1|0 v=targa|1 v=v210|1 v=v308|1 v=v408|1 v=v410|1 v=vp8:libvpx|1 v=vp9:libvpx-vp9|1 v=wmv1|0 v=wmv2|0 v=y41p|1 v=yuv4|1 v=zmbv|0 a=aac|1 a=ac3:ac3|1 a=ac3:ac3_fixed|1 a=adpcm_g722:g722|1 a=adpcm_g726:g726|1 a=adpcm_ima_wav|1 a=adpcm_ms|1 a=adpcm_swf|1 a=adpcm_yamaha|1 a=dts:dca|1 a=eac3|1 a=flac|1 a=g723_1|1 a=gsm_ms:libgsm_ms|1 a=mp2:mp2|1 a=mp2:mp2fixed|1 a=mp2:libtwolame|1 a=mp3:libmp3lame|1 a=mp3:libshine|1 a=pcm_alaw|1 a=pcm_f32le|1 a=pcm_f64le|1 a=pcm_mulaw|1 a=pcm_s16le|1 a=pcm_s24le|1 a=pcm_s32le|1 a=pcm_s64le|1 a=pcm_u8|1 a=sonic|1 a=speex:libspeex|1 a=vorbis:vorbis|1 a=vorbis:libvorbis|1 a=wmav1|1 a=wmav2|1
+wv; a=wavpack:wavpack|1 a=wavpack:libwavpack|1 \ No newline at end of file
diff --git a/debian/tests/examples b/debian/tests/examples
new file mode 100755
index 0000000..06b5d2e
--- /dev/null
+++ b/debian/tests/examples
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+set -e
+
+# build the examples
+
+echo "ADTTMP directory: $ADTTMP"
+cd "$ADTTMP"
+
+cp -r /usr/share/doc/ffmpeg/examples ./
+cd examples
+
+echo "building the examples..."
+ret=0
+make -k all 2>&1
+ret=$?
+echo "done!"
+
+exit $ret