~siretart/ubuntu/utopic/libav/libav10

« back to all changes in this revision

Viewing changes to tests/lavfi-regression.sh

  • Committer: Package Import Robot
  • Author(s): Reinhard Tartler
  • Date: 2014-05-11 12:28:45 UTC
  • mfrom: (1.1.22) (2.1.38 experimental)
  • Revision ID: package-import@ubuntu.com-20140511122845-gxvpts83i958y0i5
Tags: 6:10.1-1
* New upstream release 10:
   - pcm-dvd: Fix 20bit decoding (bug/592)
   - avi: Improve non-interleaved detection (bug/666)
   - arm: hpeldsp: fix put_pixels8_y2_{,no_rnd_}armv6
   - arm: hpeldsp: prevent overreads in armv6 asm (bug/646)
   - avfilter: Add missing emms_c when needed
   - rtmpproto: Check the buffer sizes when copying app/playpath strings
   - swscale: Fix an undefined behaviour
   - vp9: Read the frame size as unsigned
   - dcadec: Use correct channel count in stereo downmix check
   - dcadec: Do not decode the XCh extension when downmixing to stereo
   - matroska: add the Opus mapping
   - matroskadec: read the CodecDelay element
   - rtmpproto: Make sure to pass on the error code if read_connect failed
   - lavr: allocate the resampling buffer with a positive size
   - mp3enc: Properly write bitrate value in XING header (Closes: #736088)
   - golomb: Fix the implementation of get_se_golomb_long
* Drop debian/libav-tools.maintscript. ffserver is no longer found in
  stable, and this seems to cause other problems today (Closes: #742676)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh
2
 
#
3
 
# automatic regression test for libavfilter
4
 
#
5
 
#
6
 
#set -x
7
 
 
8
 
set -e
9
 
 
10
 
. $(dirname $0)/regression-funcs.sh
11
 
 
12
 
eval do_$test=y
13
 
 
14
 
do_video_filter() {
15
 
    label=$1
16
 
    filters=$2
17
 
    shift 2
18
 
    printf '%-20s' $label
19
 
    run_avconv $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src    \
20
 
        $ENC_OPTS -vf "$filters" -vcodec rawvideo $* -f nut md5:
21
 
}
22
 
 
23
 
do_lavfi() {
24
 
    if [ $test = $1 ] ; then
25
 
        do_video_filter $test "$2"
26
 
    fi
27
 
}
28
 
 
29
 
do_lavfi "crop"               "crop=iw-100:ih-100:100:100"
30
 
do_lavfi "crop_scale"         "crop=iw-100:ih-100:100:100,scale=400:-1"
31
 
do_lavfi "crop_scale_vflip"   "null,null,crop=iw-200:ih-200:200:200,crop=iw-20:ih-20:20:20,scale=200:200,scale=250:250,vflip,vflip,null,scale=200:200,crop=iw-100:ih-100:100:100,vflip,scale=200:200,null,vflip,crop=iw-100:ih-100:100:100,null"
32
 
do_lavfi "crop_vflip"         "crop=iw-100:ih-100:100:100,vflip"
33
 
do_lavfi "null"               "null"
34
 
do_lavfi "scale200"           "scale=200:200"
35
 
do_lavfi "scale500"           "scale=500:500"
36
 
do_lavfi "vflip"              "vflip"
37
 
do_lavfi "vflip_crop"         "vflip,crop=iw-100:ih-100:100:100"
38
 
do_lavfi "vflip_vflip"        "vflip,vflip"
39
 
 
40
 
do_lavfi_pixfmts(){
41
 
    test ${test%_[bl]e} = pixfmts_$1 || return 0
42
 
    filter=$1
43
 
    filter_args=$2
44
 
 
45
 
    showfiltfmts="$target_exec $target_path/libavfilter/filtfmts-test"
46
 
    exclude_fmts=${outfile}${1}_exclude_fmts
47
 
    out_fmts=${outfile}${1}_out_fmts
48
 
 
49
 
    # exclude pixel formats which are not supported as input
50
 
    $avconv -pix_fmts list 2>/dev/null | awk 'NR > 8 && /^\..\./ { print $2 }' | sort >$exclude_fmts
51
 
    $showfiltfmts scale | awk -F '[ \r]' '/^OUTPUT/{ print $3 }' | sort | comm -23 - $exclude_fmts >$out_fmts
52
 
 
53
 
    pix_fmts=$($showfiltfmts $filter | awk -F '[ \r]' '/^INPUT/{ print $3 }' | sort | comm -12 - $out_fmts)
54
 
    for pix_fmt in $pix_fmts; do
55
 
        do_video_filter $pix_fmt "format=$pix_fmt,$filter=$filter_args" -pix_fmt $pix_fmt
56
 
    done
57
 
 
58
 
    rm $exclude_fmts $out_fmts
59
 
}
60
 
 
61
 
# all these filters have exactly one input and exactly one output
62
 
do_lavfi_pixfmts "copy"    ""
63
 
do_lavfi_pixfmts "crop"    "100:100:100:100"
64
 
do_lavfi_pixfmts "hflip"   ""
65
 
do_lavfi_pixfmts "null"    ""
66
 
do_lavfi_pixfmts "pad"     "500:400:20:20"
67
 
do_lavfi_pixfmts "scale"   "200:100"
68
 
do_lavfi_pixfmts "vflip"   ""
69
 
 
70
 
if [ -n "$do_pixdesc" ]; then
71
 
    pix_fmts="$($avconv -pix_fmts list 2>/dev/null | awk 'NR > 8 && /^IO/ { print $2 }' | sort)"
72
 
    for pix_fmt in $pix_fmts; do
73
 
        do_video_filter $pix_fmt "format=$pix_fmt,pixdesctest" -pix_fmt $pix_fmt
74
 
    done
75
 
fi
76
 
 
77
 
# TODO: add tests for
78
 
# direct rendering,
79
 
# chains with feedback loops