| OLD | NEW |
| 1 diff -rpu -N orig/ffpresets/libvpx-1080p.ffpreset ffmpeg-mt/ffpresets/libvpx-108
0p.ffpreset | 1 diff -wurp -N orig/ffpresets/libvpx-1080p.ffpreset ffmpeg-mt/ffpresets/libvpx-10
80p.ffpreset |
| 2 --- orig/ffpresets/libvpx-1080p.ffpreset 1969-12-31 16:00:00 -0800 | 2 --- orig/ffpresets/libvpx-1080p.ffpreset 1969-12-31 16:00:00 -0800 |
| 3 +++ ffmpeg-mt/ffpresets/libvpx-1080p.ffpreset» 2010-10-11 16:55:58 -0700 | 3 +++ ffmpeg-mt/ffpresets/libvpx-1080p.ffpreset» 2010-11-04 08:10:04 -0700 |
| 4 @@ -0,0 +1,13 @@ | 4 @@ -0,0 +1,13 @@ |
| 5 +vcodec=libvpx | 5 +vcodec=libvpx |
| 6 +g=120 | 6 +g=120 |
| 7 +rc_lookahead=16 | 7 +rc_lookahead=16 |
| 8 +level=216 | 8 +level=216 |
| 9 +profile=1 | 9 +profile=1 |
| 10 +qmax=51 | 10 +qmax=51 |
| 11 +qmin=11 | 11 +qmin=11 |
| 12 +token_partitions=4 | 12 +slices=4 |
| 13 +vb=2M | 13 +vb=2M |
| 14 + | 14 + |
| 15 +#ignored unless using -pass 2 | 15 +#ignored unless using -pass 2 |
| 16 +maxrate=24M | 16 +maxrate=24M |
| 17 +minrate=100k | 17 +minrate=100k |
| 18 diff -rpu -N orig/ffpresets/libvpx-1080p50_60.ffpreset ffmpeg-mt/ffpresets/libvp
x-1080p50_60.ffpreset | 18 diff -wurp -N orig/ffpresets/libvpx-1080p50_60.ffpreset ffmpeg-mt/ffpresets/libv
px-1080p50_60.ffpreset |
| 19 --- orig/ffpresets/libvpx-1080p50_60.ffpreset 1969-12-31 16:00:00 -0800 | 19 --- orig/ffpresets/libvpx-1080p50_60.ffpreset 1969-12-31 16:00:00 -0800 |
| 20 +++ ffmpeg-mt/ffpresets/libvpx-1080p50_60.ffpreset» 2010-10-11 16:55:58 -070
0 | 20 +++ ffmpeg-mt/ffpresets/libvpx-1080p50_60.ffpreset» 2010-11-04 08:10:04 -070
0 |
| 21 @@ -0,0 +1,13 @@ | 21 @@ -0,0 +1,13 @@ |
| 22 +vcodec=libvpx | 22 +vcodec=libvpx |
| 23 +g=120 | 23 +g=120 |
| 24 +rc_lookahead=25 | 24 +rc_lookahead=25 |
| 25 +level=216 | 25 +level=216 |
| 26 +profile=1 | 26 +profile=1 |
| 27 +qmax=51 | 27 +qmax=51 |
| 28 +qmin=11 | 28 +qmin=11 |
| 29 +token_partitions=4 | 29 +slices=4 |
| 30 +vb=2M | 30 +vb=2M |
| 31 + | 31 + |
| 32 +#ignored unless using -pass 2 | 32 +#ignored unless using -pass 2 |
| 33 +maxrate=24M | 33 +maxrate=24M |
| 34 +minrate=100k | 34 +minrate=100k |
| 35 diff -rpu -N orig/ffpresets/libvpx-360p.ffpreset ffmpeg-mt/ffpresets/libvpx-360p
.ffpreset | 35 diff -wurp -N orig/ffpresets/libvpx-360p.ffpreset ffmpeg-mt/ffpresets/libvpx-360
p.ffpreset |
| 36 --- orig/ffpresets/libvpx-360p.ffpreset 1969-12-31 16:00:00 -0800 | 36 --- orig/ffpresets/libvpx-360p.ffpreset 1969-12-31 16:00:00 -0800 |
| 37 +++ ffmpeg-mt/ffpresets/libvpx-360p.ffpreset» 2010-10-11 16:55:58 -0700 | 37 +++ ffmpeg-mt/ffpresets/libvpx-360p.ffpreset» 2010-11-04 08:10:04 -0700 |
| 38 @@ -0,0 +1,12 @@ | 38 @@ -0,0 +1,12 @@ |
| 39 +vcodec=libvpx | 39 +vcodec=libvpx |
| 40 +g=120 | 40 +g=120 |
| 41 +rc_lookahead=16 | 41 +rc_lookahead=16 |
| 42 +level=216 | 42 +level=216 |
| 43 +profile=0 | 43 +profile=0 |
| 44 +qmax=63 | 44 +qmax=63 |
| 45 +qmin=0 | 45 +qmin=0 |
| 46 +vb=768k | 46 +vb=768k |
| 47 + | 47 + |
| 48 +#ignored unless using -pass 2 | 48 +#ignored unless using -pass 2 |
| 49 +maxrate=1.5M | 49 +maxrate=1.5M |
| 50 +minrate=40k | 50 +minrate=40k |
| 51 diff -rpu -N orig/ffpresets/libvpx-720p.ffpreset ffmpeg-mt/ffpresets/libvpx-720p
.ffpreset | 51 diff -wurp -N orig/ffpresets/libvpx-720p.ffpreset ffmpeg-mt/ffpresets/libvpx-720
p.ffpreset |
| 52 --- orig/ffpresets/libvpx-720p.ffpreset 1969-12-31 16:00:00 -0800 | 52 --- orig/ffpresets/libvpx-720p.ffpreset 1969-12-31 16:00:00 -0800 |
| 53 +++ ffmpeg-mt/ffpresets/libvpx-720p.ffpreset» 2010-10-11 16:55:58 -0700 | 53 +++ ffmpeg-mt/ffpresets/libvpx-720p.ffpreset» 2010-11-04 08:10:04 -0700 |
| 54 @@ -0,0 +1,13 @@ | 54 @@ -0,0 +1,13 @@ |
| 55 +vcodec=libvpx | 55 +vcodec=libvpx |
| 56 +g=120 | 56 +g=120 |
| 57 +rc_lookahead=16 | 57 +rc_lookahead=16 |
| 58 +level=216 | 58 +level=216 |
| 59 +profile=0 | 59 +profile=0 |
| 60 +qmax=51 | 60 +qmax=51 |
| 61 +qmin=11 | 61 +qmin=11 |
| 62 +token_partitions=4 | 62 +slices=4 |
| 63 +vb=2M | 63 +vb=2M |
| 64 + | 64 + |
| 65 +#ignored unless using -pass 2 | 65 +#ignored unless using -pass 2 |
| 66 +maxrate=24M | 66 +maxrate=24M |
| 67 +minrate=100k | 67 +minrate=100k |
| 68 diff -rpu -N orig/ffpresets/libvpx-720p50_60.ffpreset ffmpeg-mt/ffpresets/libvpx
-720p50_60.ffpreset | 68 diff -wurp -N orig/ffpresets/libvpx-720p50_60.ffpreset ffmpeg-mt/ffpresets/libvp
x-720p50_60.ffpreset |
| 69 --- orig/ffpresets/libvpx-720p50_60.ffpreset 1969-12-31 16:00:00 -0800 | 69 --- orig/ffpresets/libvpx-720p50_60.ffpreset 1969-12-31 16:00:00 -0800 |
| 70 +++ ffmpeg-mt/ffpresets/libvpx-720p50_60.ffpreset» 2010-10-11 16:55:58 -070
0 | 70 +++ ffmpeg-mt/ffpresets/libvpx-720p50_60.ffpreset» 2010-11-04 08:10:04 -070
0 |
| 71 @@ -0,0 +1,13 @@ | 71 @@ -0,0 +1,13 @@ |
| 72 +vcodec=libvpx | 72 +vcodec=libvpx |
| 73 +g=120 | 73 +g=120 |
| 74 +rc_lookahead=25 | 74 +rc_lookahead=25 |
| 75 +level=216 | 75 +level=216 |
| 76 +profile=0 | 76 +profile=0 |
| 77 +qmax=51 | 77 +qmax=51 |
| 78 +qmin=11 | 78 +qmin=11 |
| 79 +token_partitions=4 | 79 +slices=4 |
| 80 +vb=2M | 80 +vb=2M |
| 81 + | 81 + |
| 82 +#ignored unless using -pass 2 | 82 +#ignored unless using -pass 2 |
| 83 +maxrate=24M | 83 +maxrate=24M |
| 84 +minrate=100k | 84 +minrate=100k |
| 85 diff -rpu -N orig/libavcodec/avcodec.h ffmpeg-mt/libavcodec/avcodec.h | 85 diff -wurp -N orig/libavcodec/avcodec.h ffmpeg-mt/libavcodec/avcodec.h |
| 86 --- orig/libavcodec/avcodec.h» 2010-10-11 16:55:52 -0700 | 86 --- orig/libavcodec/avcodec.h» 2010-11-04 08:09:58 -0700 |
| 87 +++ ffmpeg-mt/libavcodec/avcodec.h» 2010-10-11 16:55:58 -0700 | 87 +++ ffmpeg-mt/libavcodec/avcodec.h» 2010-11-04 08:10:04 -0700 |
| 88 @@ -652,6 +652,7 @@ typedef struct RcOverride{ | 88 @@ -652,6 +652,7 @@ typedef struct RcOverride{ |
| 89 #define CODEC_FLAG2_PSY 0x00080000 ///< Use psycho visual optimizatio
ns. | 89 #define CODEC_FLAG2_PSY 0x00080000 ///< Use psycho visual optimizatio
ns. |
| 90 #define CODEC_FLAG2_SSIM 0x00100000 ///< Compute SSIM during encoding,
error[] values are undefined. | 90 #define CODEC_FLAG2_SSIM 0x00100000 ///< Compute SSIM during encoding,
error[] values are undefined. |
| 91 #define CODEC_FLAG2_INTRA_REFRESH 0x00200000 ///< Use periodic insertion of int
ra blocks instead of keyframes. | 91 #define CODEC_FLAG2_INTRA_REFRESH 0x00200000 ///< Use periodic insertion of int
ra blocks instead of keyframes. |
| 92 +#define CODEC_FLAG2_ALT_REF 0x00400000 ///< Allow encoder to insert alter
nate reference frames (VP8 only) | 92 +#define CODEC_FLAG2_ALT_REF 0x00400000 ///< Allow encoder to insert alter
nate reference frames (VP8 only) |
| 93 | 93 |
| 94 /* Unsupported options : | 94 /* Unsupported options : |
| 95 * Syntax Arithmetic coding (SAC) | 95 * Syntax Arithmetic coding (SAC) |
| 96 @@ -2792,6 +2793,19 @@ typedef struct AVCodecContext { | 96 @@ -2801,6 +2802,19 @@ typedef struct AVCodecContext { |
| 97 * - decoding: Set by libavcodec. | 97 * - decoding: Set by libavcodec. |
| 98 */ | 98 */ |
| 99 int active_thread_type; | 99 int active_thread_type; |
| 100 + | 100 + |
| 101 + /** | 101 + /** |
| 102 + * Number of token partitions. | 102 + * Number of token partitions. |
| 103 + * Indicates number of sub-streams in the bitstream. Used for parallelized | 103 + * Indicates number of sub-streams in the bitstream. Used for parallelized |
| 104 + * decoding. | 104 + * decoding. |
| 105 + * Valid values are 1, 2, 4 & 8 | 105 + * Valid values are 1, 2, 4 & 8 |
| 106 + * - encoding: Set by user. | 106 + * - encoding: Set by user. |
| 107 + * - decoding: unused | 107 + * - decoding: unused |
| 108 + * | 108 + * |
| 109 + * @attention VP8 specific | 109 + * @attention VP8 specific |
| 110 + */ | 110 + */ |
| 111 + int token_partitions; | 111 + int token_partitions; |
| 112 + | 112 + |
| 113 } AVCodecContext; | 113 } AVCodecContext; |
| 114 | 114 |
| 115 /** | 115 /** |
| 116 diff -rpu -N orig/libavcodec/libvpxenc.c ffmpeg-mt/libavcodec/libvpxenc.c | 116 diff -wurp -N orig/libavcodec/libvpxenc.c ffmpeg-mt/libavcodec/libvpxenc.c |
| 117 --- orig/libavcodec/libvpxenc.c»2010-10-11 16:55:53 -0700 | 117 --- orig/libavcodec/libvpxenc.c»2010-11-04 08:09:59 -0700 |
| 118 +++ ffmpeg-mt/libavcodec/libvpxenc.c» 2010-10-11 16:55:58 -0700 | 118 +++ ffmpeg-mt/libavcodec/libvpxenc.c» 2010-11-04 08:10:04 -0700 |
| 119 @@ -218,11 +218,21 @@ static av_cold int vp8_init(AVCodecConte | 119 @@ -218,11 +218,21 @@ static av_cold int vp8_init(AVCodecConte |
| 120 } | 120 } |
| 121 dump_enc_cfg(avctx, &enccfg); | 121 dump_enc_cfg(avctx, &enccfg); |
| 122 | 122 |
| 123 + /* With altref set an additional frame at the same pts may be produced. | 123 + /* With altref set an additional frame at the same pts may be produced. |
| 124 + Increasing the time_base gives the library a window to place these frame
s | 124 + Increasing the time_base gives the library a window to place these frame
s |
| 125 + ensuring strictly increasing timestamps. */ | 125 + ensuring strictly increasing timestamps. */ |
| 126 + if (avctx->flags2 & CODEC_FLAG2_ALT_REF) { | 126 + if (avctx->flags2 & CODEC_FLAG2_ALT_REF) { |
| 127 + avctx->ticks_per_frame = 2; | 127 + avctx->ticks_per_frame = 2; |
| 128 + avctx->time_base = av_mul_q(avctx->time_base, | 128 + avctx->time_base = av_mul_q(avctx->time_base, |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 + } | 170 + } |
| 171 + av_log(avctx, AV_LOG_DEBUG, "Using deadline: %lu\n", ctx->deadline); | 171 + av_log(avctx, AV_LOG_DEBUG, "Using deadline: %lu\n", ctx->deadline); |
| 172 + | 172 + |
| 173 + if (avctx->level != FF_LEVEL_UNKNOWN) { | 173 + if (avctx->level != FF_LEVEL_UNKNOWN) { |
| 174 + enccfg.g_error_resilient = avctx->level < 0; | 174 + enccfg.g_error_resilient = avctx->level < 0; |
| 175 + cpuused = FFABS(avctx->level) % 100 - 16; //[-16,16] | 175 + cpuused = FFABS(avctx->level) % 100 - 16; //[-16,16] |
| 176 + } | 176 + } |
| 177 | 177 |
| 178 dump_enc_cfg(avctx, &enccfg); | 178 dump_enc_cfg(avctx, &enccfg); |
| 179 /* Construct Encoder Context */ | 179 /* Construct Encoder Context */ |
| 180 @@ -310,6 +338,8 @@ static av_cold int vp8_init(AVCodecConte | 180 @@ -311,6 +339,7 @@ static av_cold int vp8_init(AVCodecConte |
| 181 av_log(avctx, AV_LOG_DEBUG, "vpx_codec_control\n"); | |
| 182 codecctl_int(avctx, VP8E_SET_CPUUSED, cpuused); | 181 codecctl_int(avctx, VP8E_SET_CPUUSED, cpuused); |
| 183 codecctl_int(avctx, VP8E_SET_NOISE_SENSITIVITY, avctx->noise_reduction); | 182 codecctl_int(avctx, VP8E_SET_NOISE_SENSITIVITY, avctx->noise_reduction); |
| 183 codecctl_int(avctx, VP8E_SET_TOKEN_PARTITIONS, av_log2(avctx->slices)); |
| 184 + codecctl_int(avctx, VP8E_SET_ENABLEAUTOALTREF, !!(avctx->flags2 & CODEC_FL
AG2_ALT_REF)); | 184 + codecctl_int(avctx, VP8E_SET_ENABLEAUTOALTREF, !!(avctx->flags2 & CODEC_FL
AG2_ALT_REF)); |
| 185 + codecctl_int(avctx, VP8E_SET_TOKEN_PARTITIONS, av_log2(avctx->token_partit
ions)); | |
| 186 | 185 |
| 187 //provide dummy value to initialize wrapper, values will be updated each _e
ncode() | 186 //provide dummy value to initialize wrapper, values will be updated each _e
ncode() |
| 188 vpx_img_wrap(&ctx->rawimg, VPX_IMG_FMT_I420, avctx->width, avctx->height, 1
, | 187 vpx_img_wrap(&ctx->rawimg, VPX_IMG_FMT_I420, avctx->width, avctx->height, 1
, |
| 189 diff -rpu -N orig/libavcodec/options.c ffmpeg-mt/libavcodec/options.c | 188 diff -wurp -N orig/libavcodec/options.c ffmpeg-mt/libavcodec/options.c |
| 190 --- orig/libavcodec/options.c» 2010-10-11 16:55:54 -0700 | 189 --- orig/libavcodec/options.c» 2010-11-04 08:10:00 -0700 |
| 191 +++ ffmpeg-mt/libavcodec/options.c» 2010-10-11 16:55:58 -0700 | 190 +++ ffmpeg-mt/libavcodec/options.c» 2010-11-04 08:10:05 -0700 |
| 192 @@ -429,6 +429,8 @@ static const AVOption options[]={ | 191 @@ -430,6 +430,8 @@ static const AVOption options[]={ |
| 193 {"thread_type", "select multithreading type", OFFSET(thread_type), FF_OPT_TYPE_
INT, FF_THREAD_SLICE|FF_THREAD_FRAME, 0, INT_MAX, V|E|D, "thread_type"}, | 192 {"thread_type", "select multithreading type", OFFSET(thread_type), FF_OPT_TYPE_
INT, FF_THREAD_SLICE|FF_THREAD_FRAME, 0, INT_MAX, V|E|D, "thread_type"}, |
| 194 {"slice", NULL, 0, FF_OPT_TYPE_CONST, FF_THREAD_SLICE, INT_MIN, INT_MAX, V|E|D,
"thread_type"}, | 193 {"slice", NULL, 0, FF_OPT_TYPE_CONST, FF_THREAD_SLICE, INT_MIN, INT_MAX, V|E|D,
"thread_type"}, |
| 195 {"frame", NULL, 0, FF_OPT_TYPE_CONST, FF_THREAD_FRAME, INT_MIN, INT_MAX, V|E|D,
"thread_type"}, | 194 {"frame", NULL, 0, FF_OPT_TYPE_CONST, FF_THREAD_FRAME, INT_MIN, INT_MAX, V|E|D,
"thread_type"}, |
| 196 +{"altref", "enable use of alternate reference frames (VP8/2-pass only)", 0, FF_
OPT_TYPE_CONST, CODEC_FLAG2_ALT_REF, INT_MIN, INT_MAX, V|E, "flags2"}, | 195 +{"altref", "enable use of alternate reference frames (VP8/2-pass only)", 0, FF_
OPT_TYPE_CONST, CODEC_FLAG2_ALT_REF, INT_MIN, INT_MAX, V|E, "flags2"}, |
| 197 +{"token_partitions", "Number of sub-streams in bitstream (1,2,4,8). Used for pa
rallelized decoding.", OFFSET(token_partitions), FF_OPT_TYPE_INT, 1, 1, INT_MAX,
V|E}, | 196 +{"token_partitions", "Number of sub-streams in bitstream (1,2,4,8). Used for pa
rallelized decoding.", OFFSET(token_partitions), FF_OPT_TYPE_INT, 1, 1, INT_MAX,
V|E}, |
| 198 {NULL}, | 197 {NULL}, |
| 199 }; | 198 }; |
| 200 | 199 |
| OLD | NEW |