Browse code

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>

Michael Niedermayer authored on 2013/08/17 11:28:53
Showing 5 changed files
... ...
@@ -651,7 +651,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
651 651
     if ((avctx->flags & (CODEC_FLAG_PASS1|CODEC_FLAG_PASS2)) || avctx->slices>1)
652 652
         s->version = FFMAX(s->version, 2);
653 653
 
654
-    if (avctx->level == 3 || (s->version==2 && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL)) {
654
+    if (avctx->level == 3 || (avctx->level <= 0 && s->version == 2)) {
655 655
         s->version = 3;
656 656
     }
657 657
 
... ...
@@ -659,7 +659,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
659 659
         s->ec = (s->version >= 3);
660 660
     }
661 661
 
662
-    if (s->version >= 2 && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) {
662
+    if ((s->version == 2 || s->version>3) && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) {
663 663
         av_log(avctx, AV_LOG_ERROR, "Version 2 needed for requested features but version 2 is experimental and not enabled\n");
664 664
         return AVERROR_INVALIDDATA;
665 665
     }
... ...
@@ -55,7 +55,7 @@ fate-vsynth%-dv-50:              DECOPTS = -sws_flags neighbor
55 55
 fate-vsynth%-dv-50:              FMT     = dv
56 56
 
57 57
 FATE_VCODEC-$(call ENCDEC, FFV1, AVI)   += ffv1 ffv1.0
58
-fate-vsynth%-ffv1:               ENCOPTS = -slices 4 -strict -2
58
+fate-vsynth%-ffv1:               ENCOPTS = -slices 4
59 59
 fate-vsynth%-ffv1.0:             CODEC   = ffv1
60 60
 
61 61
 FATE_VCODEC-$(call ENCDEC, FFVHUFF, AVI) += ffvhuff
... ...
@@ -1,46 +1,46 @@
1
-ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   5688 size: 71679
1
+ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   5690 size: 71707
2 2
 ret: 0         st:-1 flags:0  ts:-1.000000
3
-ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   5688 size: 71679
3
+ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   5690 size: 71707
4 4
 ret: 0         st:-1 flags:1  ts: 1.894167
5
-ret: 0         st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2498334 size: 75937
5
+ret: 0         st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2499438 size: 75965
6 6
 ret: 0         st: 0 flags:0  ts: 0.800000
7
-ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:1630830 size: 72682
7
+ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:1631570 size: 72710
8 8
 ret:-1         st: 0 flags:1  ts:-0.320000
9 9
 ret:-1         st:-1 flags:0  ts: 2.576668
10 10
 ret: 0         st:-1 flags:1  ts: 1.470835
11
-ret: 0         st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2498334 size: 75937
11
+ret: 0         st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2499438 size: 75965
12 12
 ret: 0         st: 0 flags:0  ts: 0.360000
13
-ret: 0         st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 801262 size: 69457
13
+ret: 0         st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 801634 size: 69485
14 14
 ret:-1         st: 0 flags:1  ts:-0.760000
15 15
 ret:-1         st:-1 flags:0  ts: 2.153336
16 16
 ret: 0         st:-1 flags:1  ts: 1.047503
17
-ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:1630830 size: 72682
17
+ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:1631570 size: 72710
18 18
 ret: 0         st: 0 flags:0  ts:-0.040000
19
-ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   5688 size: 71679
19
+ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   5690 size: 71707
20 20
 ret: 0         st: 0 flags:1  ts: 2.840000
21
-ret: 0         st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3392418 size: 77461
21
+ret: 0         st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3393890 size: 77489
22 22
 ret: 0         st:-1 flags:0  ts: 1.730004
23
-ret: 0         st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3392418 size: 77461
23
+ret: 0         st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3393890 size: 77489
24 24
 ret: 0         st:-1 flags:1  ts: 0.624171
25
-ret: 0         st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 801262 size: 69457
25
+ret: 0         st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 801634 size: 69485
26 26
 ret: 0         st: 0 flags:0  ts:-0.480000
27
-ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   5688 size: 71679
27
+ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   5690 size: 71707
28 28
 ret: 0         st: 0 flags:1  ts: 2.400000
29
-ret: 0         st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3392418 size: 77461
29
+ret: 0         st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3393890 size: 77489
30 30
 ret: 0         st:-1 flags:0  ts: 1.306672
31
-ret: 0         st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2498334 size: 75937
31
+ret: 0         st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2499438 size: 75965
32 32
 ret: 0         st:-1 flags:1  ts: 0.200839
33
-ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   5688 size: 71679
33
+ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   5690 size: 71707
34 34
 ret: 0         st: 0 flags:0  ts:-0.920000
35
-ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   5688 size: 71679
35
+ret: 0         st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos:   5690 size: 71707
36 36
 ret: 0         st: 0 flags:1  ts: 2.000000
37
-ret: 0         st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3392418 size: 77461
37
+ret: 0         st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos:3393890 size: 77489
38 38
 ret: 0         st:-1 flags:0  ts: 0.883340
39
-ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:1630830 size: 72682
39
+ret: 0         st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos:1631570 size: 72710
40 40
 ret:-1         st:-1 flags:1  ts:-0.222493
41 41
 ret:-1         st: 0 flags:0  ts: 2.680000
42 42
 ret: 0         st: 0 flags:1  ts: 1.560000
43
-ret: 0         st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2498334 size: 75937
43
+ret: 0         st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos:2499438 size: 75965
44 44
 ret: 0         st:-1 flags:0  ts: 0.460008
45
-ret: 0         st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 801262 size: 69457
45
+ret: 0         st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 801634 size: 69485
46 46
 ret:-1         st:-1 flags:1  ts:-0.645825
... ...
@@ -1,4 +1,4 @@
1
-d236e8441d7e04e24d882bb97faccd36 *tests/data/fate/vsynth1-ffv1.avi
2
-2689718 tests/data/fate/vsynth1-ffv1.avi
1
+394aa2d2ee50abbc2372e6d126c7eb5a *tests/data/fate/vsynth1-ffv1.avi
2
+2691264 tests/data/fate/vsynth1-ffv1.avi
3 3
 c5ccac874dbf808e9088bc3107860042 *tests/data/fate/vsynth1-ffv1.out.rawvideo
4 4
 stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  7603200/  7603200
... ...
@@ -1,4 +1,4 @@
1
-9d8486fc8a260204d8ee3212d95915b5 *tests/data/fate/vsynth2-ffv1.avi
2
-3546258 tests/data/fate/vsynth2-ffv1.avi
1
+0837dc7e6f625e2f6ac16140562c079d *tests/data/fate/vsynth2-ffv1.avi
2
+3547788 tests/data/fate/vsynth2-ffv1.avi
3 3
 dde5895817ad9d219f79a52d0bdfb001 *tests/data/fate/vsynth2-ffv1.out.rawvideo
4 4
 stddev:    0.00 PSNR:999.99 MAXDIFF:    0 bytes:  7603200/  7603200