Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 16 May 2012 20:29:04 +0000 (22:29 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 16 May 2012 20:32:05 +0000 (22:32 +0200)
* qatar/master:
  fate: Work around non-standard wc implementations at more places
  fate: work around non-standard wc implementations
  x86: rv40: Mark rv40_weight functions as MMX2; they use MMX2 instructions.
  ac3dsp: simplify x86 versions of ac3_max_msb_abs_int16
  fate: use standard diff options
  tta: Fix comment about channel number; TTA supports >2 channels.
  avfilter: Move ff_get_ref_perms_string() to where it is used.
  build: Add 'check' target to run all compile and test targets.
  indeo3: validate new frame size before resetting decoder
  indeo3: when freeing buffers, set pointers referencing them to NULL as well
  indeo3: initialise pixel planes on allocation
  indeo3: ensure that decoded cell data is in 7-bit range as presumed by decoder
  fate: rename psx-str-v3-mdec to mdec-v3
  fate: convert psx-str to a demuxer test
  lavf: add mdec to is_intra_only() list

Conflicts:
doc/developer.texi
libavcodec/indeo3.c
libavfilter/video.c
libavformat/utils.c
tests/fate/demux.mak
tests/fate/video.mak
tests/lavf-regression.sh
tests/ref/vsynth1/cljr
tests/ref/vsynth1/ffvhuff
tests/ref/vsynth2/cljr
tests/ref/vsynth2/ffvhuff

Merged-by: Michael Niedermayer <michaelni@gmx.at>
25 files changed:
1  2 
Makefile
libavcodec/indeo3.c
libavcodec/tta.c
libavcodec/x86/ac3dsp.asm
libavcodec/x86/ac3dsp_mmx.c
libavcodec/x86/rv40dsp.asm
libavformat/utils.c
tests/fate-run.sh
tests/fate/demux.mak
tests/fate/video.mak
tests/lavf-regression.sh
tests/ref/lavf/ts
tests/ref/vsynth1/cljr
tests/ref/vsynth1/ffvhuff
tests/ref/vsynth1/r210
tests/ref/vsynth1/v308
tests/ref/vsynth1/y41p
tests/ref/vsynth1/yuv4
tests/ref/vsynth2/cljr
tests/ref/vsynth2/ffvhuff
tests/ref/vsynth2/r210
tests/ref/vsynth2/v308
tests/ref/vsynth2/y41p
tests/ref/vsynth2/yuv4
tests/regression-funcs.sh

diff --cc Makefile
+++ b/Makefile
@@@ -150,17 -182,10 +150,19 @@@ distclean:
        $(RM) config.* .version version.h libavutil/avconfig.h
  
  config:
 -      $(SRC_PATH)/configure $(value LIBAV_CONFIGURATION)
 +      $(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION)
 +
 +# Without the sed genthml thinks "libavutil" and "./libavutil" are two different things
 +coverage.info: $(wildcard *.gcda *.gcno */*.gcda */*.gcno */*/*.gcda */*/*.gcno)
 +      $(Q)lcov -c -d . -b . | sed -e 's#/./#/#g' > $@
 +
 +coverage-html: coverage.info
 +      $(Q)mkdir -p $@
 +      $(Q)genhtml -o $@ $<
 +      $(Q)touch $@
  
+ check: all alltools checkheaders examples testprogs fate
  include $(SRC_PATH)/doc/Makefile
  include $(SRC_PATH)/tests/Makefile
  
@@@ -931,8 -900,19 +936,15 @@@ static int decode_frame_headers(Indeo3D
  
          av_dlog(avctx, "Frame dimensions changed!\n");
  
 -
 -        ctx->width  = width;
 -        ctx->height = height;
 -
+         if (width  < 16 || width  > 640 ||
+             height < 16 || height > 480 ||
+             width  &  3 || height &   3) {
+             av_log(avctx, AV_LOG_ERROR,
+                    "Invalid picture dimensions: %d x %d!\n", width, height);
+             return AVERROR_INVALIDDATA;
+         }
          free_frame_buffers(ctx);
 -        if ((res = allocate_frame_buffers(ctx, avctx)) < 0)
 +        if ((res = allocate_frame_buffers(ctx, avctx, width, height)) < 0)
               return res;
          avcodec_set_dimensions(avctx, width, height);
      }
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -875,7 -791,7 +875,8 @@@ static int is_intra_only(AVCodecContex
          case CODEC_ID_VCR1:
          case CODEC_ID_DNXHD:
          case CODEC_ID_JPEG2000:
+         case CODEC_ID_MDEC:
 +        case CODEC_ID_UTVIDEO:
              return 1;
          default: break;
          }
Simple merge
@@@ -1,80 -1,71 +1,77 @@@
 -FATE_AVCONV += fate-adts-demux
 +FATE_DEMUX += fate-avio-direct
 +fate-avio-direct: CMD = framecrc -avioflags direct -i $(SAMPLES)/fraps/fraps-v5-bouncing-balls-partial.avi -avioflags direct
 +
 +FATE_DEMUX += fate-adts-demux
  fate-adts-demux: CMD = crc -i $(SAMPLES)/aac/ct_faac-adts.aac -acodec copy
  
 -FATE_AVCONV += fate-aea-demux
 +FATE_DEMUX += fate-aea-demux
  fate-aea-demux: CMD = crc -i $(SAMPLES)/aea/chirp.aea -acodec copy
  
 -FATE_AVCONV += fate-bink-demux
 +FATE_DEMUX += fate-bink-demux
  fate-bink-demux: CMD = crc -i $(SAMPLES)/bink/Snd0a7d9b58.dee -vn -acodec copy
  
 -FATE_AVCONV += fate-caf
 +FATE_DEMUX += fate-caf
  fate-caf: CMD = crc -i $(SAMPLES)/caf/caf-pcm16.caf -c copy
  
 -FATE_AVCONV += fate-cdxl-demux
 +FATE_DEMUX += fate-cdxl-demux
  fate-cdxl-demux: CMD = framecrc -i $(SAMPLES)/cdxl/mirage.cdxl -vcodec copy -acodec copy
  
 -FATE_AVCONV += fate-d-cinema-demux
 +FATE_DEMUX += fate-d-cinema-demux
  fate-d-cinema-demux: CMD = framecrc -i $(SAMPLES)/d-cinema/THX_Science_FLT_1920-partial.302 -acodec copy
  
 -FATE_AVCONV += fate-iv8-demux
 +FATE_DEMUX += fate-iv8-demux
  fate-iv8-demux: CMD = framecrc -i $(SAMPLES)/iv8/zzz-partial.mpg -vcodec copy
  
 -FATE_AVCONV += fate-lmlm4-demux
 +FATE_DEMUX += fate-lmlm4-demux
  fate-lmlm4-demux: CMD = framecrc -i $(SAMPLES)/lmlm4/LMLM4_CIFat30fps.divx -t 3 -acodec copy -vcodec copy
  
 -FATE_AVCONV += fate-maxis-xa
 +FATE_DEMUX += fate-maxis-xa
  fate-maxis-xa: CMD = framecrc -i $(SAMPLES)/maxis-xa/SC2KBUG.XA -frames:a 30 -c:a copy
  
 -FATE_AVCONV += fate-mtv
 +FATE_DEMUX += fate-mtv
  fate-mtv: CMD = framecrc -i $(SAMPLES)/mtv/comedian_auto-partial.mtv -c copy
  
 -FATE_AVCONV += fate-mxf-demux
 +FATE_DEMUX += fate-mxf-demux
  fate-mxf-demux: CMD = framecrc -i $(SAMPLES)/mxf/C0023S01.mxf -acodec copy -vcodec copy
  
 -FATE_AVCONV += fate-nc-demux
 +FATE_DEMUX += fate-nc-demux
  fate-nc-demux: CMD = framecrc -i $(SAMPLES)/nc-camera/nc-sample-partial -vcodec copy
  
 -FATE_AVCONV += fate-nsv-demux
 +FATE_DEMUX += fate-nsv-demux
  fate-nsv-demux: CMD = framecrc -i $(SAMPLES)/nsv/witchblade-51kbps.nsv -t 6 -vcodec copy -acodec copy
  
 -FATE_AVCONV += fate-oma-demux
 +FATE_DEMUX += fate-oma-demux
  fate-oma-demux: CMD = crc -i $(SAMPLES)/oma/01-Untitled-partial.oma -acodec copy
  
- FATE_DEMUX += fate-psx-str
- fate-psx-str: CMD = framecrc -i $(SAMPLES)/psx-str/descent-partial.str
- FATE_DEMUX += fate-psx-str-v3-mdec
- fate-psx-str-v3-mdec: CMD = framecrc -i $(SAMPLES)/psx-str/abc000_cut.str -an
 -FATE_AVCONV += fate-psx-str-demux
++FATE_DEMUX += fate-psx-str-demux
+ fate-psx-str-demux: CMD = framecrc -i $(SAMPLES)/psx-str/descent-partial.str -c copy
  
 -FATE_AVCONV += fate-pva-demux
 -fate-pva-demux: CMD = framecrc -idct simple -i $(SAMPLES)/pva/PVA_test-partial.pva -t 0.6 -acodec copy -vn
 +FATE_DEMUX += fate-pva-demux
 +fate-pva-demux: CMD = framecrc -idct simple -i $(SAMPLES)/pva/PVA_test-partial.pva -t 0.6 -acodec copy
  
 -FATE_AVCONV += fate-qcp-demux
 +FATE_DEMUX += fate-qcp-demux
  fate-qcp-demux: CMD = crc -i $(SAMPLES)/qcp/0036580847.QCP -acodec copy
  
 -FATE_AVCONV += fate-redcode-demux
 +FATE_DEMUX += fate-redcode-demux
  fate-redcode-demux: CMD = framecrc -i $(SAMPLES)/r3d/4MB-sample.r3d -vcodec copy -acodec copy
  
 -FATE_AVCONV += fate-siff
 +FATE_DEMUX += fate-siff
  fate-siff: CMD = framecrc -i $(SAMPLES)/SIFF/INTRO_B.VB -t 3 -pix_fmt rgb24
  
 -FATE_AVCONV += fate-smjpeg-demux
 +FATE_DEMUX += fate-smjpeg-demux
  fate-smjpeg-demux: CMD = framecrc -i $(SAMPLES)/smjpeg/scenwin.mjpg -c copy
  
 -FATE_AVCONV += fate-westwood-aud
 +FATE_DEMUX += fate-westwood-aud
  fate-westwood-aud: CMD = framecrc -i $(SAMPLES)/westwood-aud/excellent.aud -c copy
  
 -FATE_AVCONV += fate-wtv-demux
 +FATE_DEMUX += fate-wtv-demux
  fate-wtv-demux: CMD = framecrc -i $(SAMPLES)/wtv/law-and-order-partial.wtv -vcodec copy -acodec copy
  
 -FATE_AVCONV += fate-xmv-demux
 +FATE_DEMUX += fate-xmv-demux
  fate-xmv-demux: CMD = framecrc -i $(SAMPLES)/xmv/logos1p.fmv -vcodec copy -acodec copy
  
 -FATE_AVCONV += fate-xwma-demux
 +FATE_DEMUX += fate-xwma-demux
  fate-xwma-demux: CMD = crc -i $(SAMPLES)/xwma/ergon.xwma -acodec copy
 +
 +FATE_FFMPEG += $(FATE_DEMUX)
 +fate-demux: $(FATE_DEMUX)
@@@ -130,34 -130,37 +130,37 @@@ fate-iff-fibonacci: CMD = md5 -i $(SAMP
  FATE_IFF += fate-iff-ilbm
  fate-iff-ilbm: CMD = framecrc -i $(SAMPLES)/iff/lms-matriks.ilbm -pix_fmt rgb24
  
 -FATE_AVCONV += $(FATE_IFF)
 +FATE_VIDEO += $(FATE_IFF)
  fate-iff: $(FATE_IFF)
  
 -FATE_AVCONV += fate-interplay-mve-8bit
 +FATE_VIDEO += fate-interplay-mve-8bit
  fate-interplay-mve-8bit: CMD = framecrc -i $(SAMPLES)/interplay-mve/interplay-logo-2MB.mve -pix_fmt rgb24 -an
  
 -FATE_AVCONV += fate-interplay-mve-16bit
 +FATE_VIDEO += fate-interplay-mve-16bit
  fate-interplay-mve-16bit: CMD = framecrc -i $(SAMPLES)/interplay-mve/descent3-level5-16bit-partial.mve -pix_fmt rgb24 -an
  
 -FATE_AVCONV += fate-kgv1
 +FATE_VIDEO += fate-kgv1
  fate-kgv1: CMD = framecrc -i $(SAMPLES)/kega/kgv1.avi -pix_fmt rgb555le -an
  
 -FATE_AVCONV += fate-kmvc
 +FATE_VIDEO += fate-kmvc
  fate-kmvc: CMD = framecrc -i $(SAMPLES)/KMVC/LOGO1.AVI -an -t 3 -pix_fmt rgb24
  
 -FATE_AVCONV += fate-mdec
 +FATE_VIDEO += fate-mdec
  fate-mdec: CMD = framecrc -idct simple -i $(SAMPLES)/ea-dct/NFS2Esprit-partial.dct -an
  
 -FATE_AVCONV += fate-mdec-v3
++FATE_VIDEO += fate-mdec-v3
+ fate-mdec-v3: CMD = framecrc -idct simple -i $(SAMPLES)/psx-str/abc000_cut.str -an
 -FATE_AVCONV += fate-mimic
 +FATE_VIDEO += fate-mimic
  fate-mimic: CMD = framecrc -idct simple -i $(SAMPLES)/mimic/mimic2-womanloveffmpeg.cam
  
 -FATE_AVCONV += fate-mjpegb
 +FATE_VIDEO += fate-mjpegb
  fate-mjpegb: CMD = framecrc -idct simple -flags +bitexact -i $(SAMPLES)/mjpegb/mjpegb_part.mov -an
  
 -FATE_AVCONV += fate-motionpixels
 +FATE_VIDEO += fate-motionpixels
  fate-motionpixels: CMD = framecrc -i $(SAMPLES)/motion-pixels/INTRO-partial.MVI -an -pix_fmt rgb24 -vframes 111
  
 -FATE_AVCONV += fate-mpeg2-field-enc
 +FATE_VIDEO += fate-mpeg2-field-enc
  fate-mpeg2-field-enc: CMD = framecrc -flags +bitexact -dct fastint -idct simple -i $(SAMPLES)/mpeg2/mpeg2_field_encoding.ts -an
  
  # FIXME dropped frames in this test because of coarse timebase
@@@ -50,10 -30,10 +50,10 @@@ do_image_formats(
      outfile="$datadir/images/$1/"
      mkdir -p "$outfile"
      file=${outfile}%02d.$1
 -    run_avconv $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $2 $ENC_OPTS $3 -t 0.5 -y -qscale 10 $target_path/$file
 +    run_avconv $DEC_OPTS -f image2 -vcodec pgmyuv -i $raw_src $2 $ENC_OPTS -t 0.5 -y -qscale 10 $target_path/$file
      do_md5sum ${outfile}02.$1
 -    do_avconv_crc $file $DEC_OPTS $3 -i $target_path/$file
 +    do_avconv_crc $file $DEC_OPTS -i $target_path/$file $3
-     wc -c ${outfile}02.$1
+     echo $(wc -c ${outfile}02.$1)
  }
  
  do_audio_only()
@@@ -1,3 -1,3 +1,3 @@@
 -ec8df9c78de8f7f20a3eb1ce8f863c02 *./tests/data/lavf/lavf.ts
 -406456 ./tests/data/lavf/lavf.ts
 -./tests/data/lavf/lavf.ts CRC=0x0fdeb4df
 +258a64dbc1724438e90560294be4be5c *./tests/data/lavf/lavf.ts
-   406644 ./tests/data/lavf/lavf.ts
++406644 ./tests/data/lavf/lavf.ts
 +./tests/data/lavf/lavf.ts CRC=0x133216c1
@@@ -1,4 -1,4 +1,4 @@@
 -b4d3d31da0b4b6873ad8239d113c91d2 *./tests/data/vsynth1/cljr.avi
 +041982e4fa83428c621a127647d47b3f *./tests/data/vsynth1/cljr.avi
 5075660 ./tests/data/vsynth1/cljr.avi
+ 5075660 ./tests/data/vsynth1/cljr.avi
 -4debaab994c2c7273bebaa0c5733017b *./tests/data/cljr.vsynth1.out.yuv
 -stddev:   30.75 PSNR: 18.37 MAXDIFF:  225 bytes:  7603200/  7603200
 +e1c4c96c74de3435d0f9f6118c5ed9b5 *./tests/data/cljr.vsynth1.out.yuv
 +stddev:   30.53 PSNR: 18.43 MAXDIFF:  225 bytes:  7603200/  7603200
@@@ -1,4 -1,4 +1,4 @@@
 -da0c0bd12ac141c976ffa6a71832ab4b *./tests/data/vsynth1/ffvhuff.avi
 +0632ffae6f1e06dd299bf41a845b9099 *./tests/data/vsynth1/ffvhuff.avi
 5987208 ./tests/data/vsynth1/ffvhuff.avi
+ 5987208 ./tests/data/vsynth1/ffvhuff.avi
  c5ccac874dbf808e9088bc3107860042 *./tests/data/ffvhuff.vsynth1.out.yuv
  stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  7603200/  7603200
index 9d5e37c,0000000..3d561ad
mode 100644,000000..100644
--- /dev/null
@@@ -1,4 -1,0 +1,4 @@@
-  22125260 ./tests/data/vsynth1/r210.avi
 +604a34c9f9151891c2d63d2652b75329 *./tests/data/vsynth1/r210.avi
++22125260 ./tests/data/vsynth1/r210.avi
 +ecaafa9eec11b5e1453a63ed6d194eed *./tests/data/r210.vsynth1.out.yuv
 +stddev:    3.23 PSNR: 37.94 MAXDIFF:   48 bytes:  7603200/  7603200
index 873d52a,0000000..4f293b8
mode 100644,000000..100644
--- /dev/null
@@@ -1,4 -1,0 +1,4 @@@
-  15213260 ./tests/data/vsynth1/v308.avi
 +8d5f2065ce6547acc51041a679b7d6c4 *./tests/data/vsynth1/v308.avi
++15213260 ./tests/data/vsynth1/v308.avi
 +10fb42f1abf40a289c3edafc0390482c *./tests/data/v308.vsynth1.out.yuv
 +stddev:    2.67 PSNR: 39.60 MAXDIFF:   43 bytes:  7603200/  7603200
index 36f45f1,0000000..3039813
mode 100644,000000..100644
--- /dev/null
@@@ -1,4 -1,0 +1,4 @@@
-  7610060 ./tests/data/vsynth1/y41p.avi
 +70bbcb52acac0a3cb3217719669a8242 *./tests/data/vsynth1/y41p.avi
++7610060 ./tests/data/vsynth1/y41p.avi
 +665f6045e3b3031f719fa4a44f63daba *./tests/data/y41p.vsynth1.out.yuv
 +stddev:   30.54 PSNR: 18.43 MAXDIFF:  222 bytes:  7603200/  7603200
index 63c1298,0000000..90293bf
mode 100644,000000..100644
--- /dev/null
@@@ -1,4 -1,0 +1,4 @@@
-  7610060 ./tests/data/vsynth1/yuv4.avi
 +e0d593eb635432f421b93224e425ee03 *./tests/data/vsynth1/yuv4.avi
++7610060 ./tests/data/vsynth1/yuv4.avi
 +c5ccac874dbf808e9088bc3107860042 *./tests/data/yuv4.vsynth1.out.yuv
 +stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  7603200/  7603200
@@@ -1,4 -1,4 +1,4 @@@
 -416ddcf73d2d993456f3c49f3eed4f1a *./tests/data/vsynth2/cljr.avi
 +fdc1926e0a599de94513f0a3472b598f *./tests/data/vsynth2/cljr.avi
 5075660 ./tests/data/vsynth2/cljr.avi
+ 5075660 ./tests/data/vsynth2/cljr.avi
 -3a70ba2a535ef9c7fc6478b27a2cb58a *./tests/data/cljr.vsynth2.out.yuv
 -stddev:   10.48 PSNR: 27.72 MAXDIFF:   64 bytes:  7603200/  7603200
 +7df03229ee6361ea11a0d83d4926cb10 *./tests/data/cljr.vsynth2.out.yuv
 +stddev:   10.30 PSNR: 27.87 MAXDIFF:   65 bytes:  7603200/  7603200
@@@ -1,4 -1,4 +1,4 @@@
 -d31aab445b24f738df45fdd7479d6dd7 *./tests/data/vsynth2/ffvhuff.avi
 +63926d8835dd5779dca0a4bc081ca8ae *./tests/data/vsynth2/ffvhuff.avi
 4988056 ./tests/data/vsynth2/ffvhuff.avi
+ 4988056 ./tests/data/vsynth2/ffvhuff.avi
  dde5895817ad9d219f79a52d0bdfb001 *./tests/data/ffvhuff.vsynth2.out.yuv
  stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  7603200/  7603200
index c7e1373,0000000..0ae6c81
mode 100644,000000..100644
--- /dev/null
@@@ -1,4 -1,0 +1,4 @@@
-   22125260 ./tests/data/vsynth2/r210.avi
 +d7a6f298e6869a74c0988fc3b30d0351 *./tests/data/vsynth2/r210.avi
++22125260 ./tests/data/vsynth2/r210.avi
 +6ea4fcd93fc83defc8770e85b64b60bb *./tests/data/r210.vsynth2.out.yuv
 +stddev:    0.70 PSNR: 51.12 MAXDIFF:   12 bytes:  7603200/  7603200
index 2c4f7e1,0000000..2cc2a4b
mode 100644,000000..100644
--- /dev/null
@@@ -1,4 -1,0 +1,4 @@@
-  15213260 ./tests/data/vsynth2/v308.avi
 +214671673e6c82bad8190d0329f01fdc *./tests/data/vsynth2/v308.avi
++15213260 ./tests/data/vsynth2/v308.avi
 +d43cb310c130c69214332d74f6ee5f9a *./tests/data/v308.vsynth2.out.yuv
 +stddev:    0.41 PSNR: 55.80 MAXDIFF:    7 bytes:  7603200/  7603200
index e603c6b,0000000..ce88b7f
mode 100644,000000..100644
--- /dev/null
@@@ -1,4 -1,0 +1,4 @@@
-  7610060 ./tests/data/vsynth2/y41p.avi
 +8e0139963e79180a0fc1c154e36cebe5 *./tests/data/vsynth2/y41p.avi
++7610060 ./tests/data/vsynth2/y41p.avi
 +0e0996e1d8b62f02af91fabb3c0a6f76 *./tests/data/y41p.vsynth2.out.yuv
 +stddev:    9.87 PSNR: 28.24 MAXDIFF:   61 bytes:  7603200/  7603200
index 99d7e82,0000000..026a876
mode 100644,000000..100644
--- /dev/null
@@@ -1,4 -1,0 +1,4 @@@
-  7610060 ./tests/data/vsynth2/yuv4.avi
 +3d24f1d320c4ead1efbf3c952a902379 *./tests/data/vsynth2/yuv4.avi
++7610060 ./tests/data/vsynth2/yuv4.avi
 +dde5895817ad9d219f79a52d0bdfb001 *./tests/data/yuv4.vsynth2.out.yuv
 +stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  7603200/  7603200
Simple merge