ffv1enc: Make ffv1.3 non experimental

The fate tests change as they used 1.2 previously
The increased size is due to:
32bit CRCs per slice by default (can be disabled),
it adds slice headers to allow decoding one slice without the others
an additional slice size field is added to make it possible to find
slices within corrupted surroundings.

these add up to about 57bit per slice more
at 50 frames and 4 slices thats 1425 byte

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/37/head
Michael Niedermayer 11 years ago
parent 185fc52f19
commit abe76b851c
  1. 4
      libavcodec/ffv1enc.c
  2. 2
      tests/fate/vcodec.mak
  3. 40
      tests/ref/seek/vsynth2-ffv1
  4. 4
      tests/ref/vsynth/vsynth1-ffv1
  5. 4
      tests/ref/vsynth/vsynth2-ffv1

@ -651,7 +651,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
if ((avctx->flags & (CODEC_FLAG_PASS1|CODEC_FLAG_PASS2)) || avctx->slices>1)
s->version = FFMAX(s->version, 2);
if (avctx->level == 3 || (s->version==2 && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL)) {
if (avctx->level == 3 || (avctx->level <= 0 && s->version == 2)) {
s->version = 3;
}
@ -659,7 +659,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
s->ec = (s->version >= 3);
}
if (s->version >= 2 && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) {
if ((s->version == 2 || s->version>3) && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) {
av_log(avctx, AV_LOG_ERROR, "Version 2 needed for requested features but version 2 is experimental and not enabled\n");
return AVERROR_INVALIDDATA;
}

@ -55,7 +55,7 @@ fate-vsynth%-dv-50: DECOPTS = -sws_flags neighbor
fate-vsynth%-dv-50: FMT = dv
FATE_VCODEC-$(call ENCDEC, FFV1, AVI) += ffv1 ffv1.0
fate-vsynth%-ffv1: ENCOPTS = -slices 4 -strict -2
fate-vsynth%-ffv1: ENCOPTS = -slices 4
fate-vsynth%-ffv1.0: CODEC = ffv1
FATE_VCODEC-$(call ENCDEC, FFVHUFF, AVI) += ffvhuff

@ -1,46 +1,46 @@
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5688 size: 71679
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5690 size: 71707
ret: 0 st:-1 flags:0 ts:-1.000000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5688 size: 71679
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5690 size: 71707
ret: 0 st:-1 flags:1 ts: 1.894167
ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2498334 size: 75937
ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2499438 size: 75965
ret: 0 st: 0 flags:0 ts: 0.800000
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:1630830 size: 72682
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:1631570 size: 72710
ret:-1 st: 0 flags:1 ts:-0.320000
ret:-1 st:-1 flags:0 ts: 2.576668
ret: 0 st:-1 flags:1 ts: 1.470835
ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2498334 size: 75937
ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2499438 size: 75965
ret: 0 st: 0 flags:0 ts: 0.360000
ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 801262 size: 69457
ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 801634 size: 69485
ret:-1 st: 0 flags:1 ts:-0.760000
ret:-1 st:-1 flags:0 ts: 2.153336
ret: 0 st:-1 flags:1 ts: 1.047503
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:1630830 size: 72682
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:1631570 size: 72710
ret: 0 st: 0 flags:0 ts:-0.040000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5688 size: 71679
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5690 size: 71707
ret: 0 st: 0 flags:1 ts: 2.840000
ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3392418 size: 77461
ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3393890 size: 77489
ret: 0 st:-1 flags:0 ts: 1.730004
ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3392418 size: 77461
ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3393890 size: 77489
ret: 0 st:-1 flags:1 ts: 0.624171
ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 801262 size: 69457
ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 801634 size: 69485
ret: 0 st: 0 flags:0 ts:-0.480000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5688 size: 71679
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5690 size: 71707
ret: 0 st: 0 flags:1 ts: 2.400000
ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3392418 size: 77461
ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3393890 size: 77489
ret: 0 st:-1 flags:0 ts: 1.306672
ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2498334 size: 75937
ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2499438 size: 75965
ret: 0 st:-1 flags:1 ts: 0.200839
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5688 size: 71679
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5690 size: 71707
ret: 0 st: 0 flags:0 ts:-0.920000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5688 size: 71679
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 5690 size: 71707
ret: 0 st: 0 flags:1 ts: 2.000000
ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3392418 size: 77461
ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3393890 size: 77489
ret: 0 st:-1 flags:0 ts: 0.883340
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:1630830 size: 72682
ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:1631570 size: 72710
ret:-1 st:-1 flags:1 ts:-0.222493
ret:-1 st: 0 flags:0 ts: 2.680000
ret: 0 st: 0 flags:1 ts: 1.560000
ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2498334 size: 75937
ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2499438 size: 75965
ret: 0 st:-1 flags:0 ts: 0.460008
ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 801262 size: 69457
ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 801634 size: 69485
ret:-1 st:-1 flags:1 ts:-0.645825

@ -1,4 +1,4 @@
d236e8441d7e04e24d882bb97faccd36 *tests/data/fate/vsynth1-ffv1.avi
2689718 tests/data/fate/vsynth1-ffv1.avi
394aa2d2ee50abbc2372e6d126c7eb5a *tests/data/fate/vsynth1-ffv1.avi
2691264 tests/data/fate/vsynth1-ffv1.avi
c5ccac874dbf808e9088bc3107860042 *tests/data/fate/vsynth1-ffv1.out.rawvideo
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 7603200/ 7603200

@ -1,4 +1,4 @@
9d8486fc8a260204d8ee3212d95915b5 *tests/data/fate/vsynth2-ffv1.avi
3546258 tests/data/fate/vsynth2-ffv1.avi
0837dc7e6f625e2f6ac16140562c079d *tests/data/fate/vsynth2-ffv1.avi
3547788 tests/data/fate/vsynth2-ffv1.avi
dde5895817ad9d219f79a52d0bdfb001 *tests/data/fate/vsynth2-ffv1.out.rawvideo
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 7603200/ 7603200

Loading…
Cancel
Save