Add new -slices option and use it for libvpx and libx264.
Patch by James Zern, jzern google Originally committed as revision 25551 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
f9b4eef457
commit
2aa72ecccc
@ -31,7 +31,7 @@
|
|||||||
#include "libavutil/cpu.h"
|
#include "libavutil/cpu.h"
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_MAJOR 52
|
#define LIBAVCODEC_VERSION_MAJOR 52
|
||||||
#define LIBAVCODEC_VERSION_MINOR 92
|
#define LIBAVCODEC_VERSION_MINOR 93
|
||||||
#define LIBAVCODEC_VERSION_MICRO 0
|
#define LIBAVCODEC_VERSION_MICRO 0
|
||||||
|
|
||||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||||
@ -2744,6 +2744,15 @@ typedef struct AVCodecContext {
|
|||||||
* - decoding: unused
|
* - decoding: unused
|
||||||
*/
|
*/
|
||||||
int lpc_passes;
|
int lpc_passes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Number of slices.
|
||||||
|
* Indicates number of picture subdivisions. Used for parallelized
|
||||||
|
* decoding.
|
||||||
|
* - encoding: Set by user
|
||||||
|
* - decoding: unused
|
||||||
|
*/
|
||||||
|
int slices;
|
||||||
} AVCodecContext;
|
} AVCodecContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -310,6 +310,7 @@ static av_cold int vp8_init(AVCodecContext *avctx)
|
|||||||
av_log(avctx, AV_LOG_DEBUG, "vpx_codec_control\n");
|
av_log(avctx, AV_LOG_DEBUG, "vpx_codec_control\n");
|
||||||
codecctl_int(avctx, VP8E_SET_CPUUSED, cpuused);
|
codecctl_int(avctx, VP8E_SET_CPUUSED, cpuused);
|
||||||
codecctl_int(avctx, VP8E_SET_NOISE_SENSITIVITY, avctx->noise_reduction);
|
codecctl_int(avctx, VP8E_SET_NOISE_SENSITIVITY, avctx->noise_reduction);
|
||||||
|
codecctl_int(avctx, VP8E_SET_TOKEN_PARTITIONS, av_log2(avctx->slices));
|
||||||
|
|
||||||
//provide dummy value to initialize wrapper, values will be updated each _encode()
|
//provide dummy value to initialize wrapper, values will be updated each _encode()
|
||||||
vpx_img_wrap(&ctx->rawimg, VPX_IMG_FMT_I420, avctx->width, avctx->height, 1,
|
vpx_img_wrap(&ctx->rawimg, VPX_IMG_FMT_I420, avctx->width, avctx->height, 1,
|
||||||
|
@ -294,6 +294,8 @@ static av_cold int X264_init(AVCodecContext *avctx)
|
|||||||
|
|
||||||
x4->params.b_interlaced = avctx->flags & CODEC_FLAG_INTERLACED_DCT;
|
x4->params.b_interlaced = avctx->flags & CODEC_FLAG_INTERLACED_DCT;
|
||||||
|
|
||||||
|
x4->params.i_slice_count = avctx->slices;
|
||||||
|
|
||||||
if (avctx->flags & CODEC_FLAG_GLOBAL_HEADER)
|
if (avctx->flags & CODEC_FLAG_GLOBAL_HEADER)
|
||||||
x4->params.b_repeat_headers = 0;
|
x4->params.b_repeat_headers = 0;
|
||||||
|
|
||||||
|
@ -425,6 +425,7 @@ static const AVOption options[]={
|
|||||||
{"levinson", NULL, 0, FF_OPT_TYPE_CONST, AV_LPC_TYPE_LEVINSON, INT_MIN, INT_MAX, A|E, "lpc_type"},
|
{"levinson", NULL, 0, FF_OPT_TYPE_CONST, AV_LPC_TYPE_LEVINSON, INT_MIN, INT_MAX, A|E, "lpc_type"},
|
||||||
{"cholesky", NULL, 0, FF_OPT_TYPE_CONST, AV_LPC_TYPE_CHOLESKY, INT_MIN, INT_MAX, A|E, "lpc_type"},
|
{"cholesky", NULL, 0, FF_OPT_TYPE_CONST, AV_LPC_TYPE_CHOLESKY, INT_MIN, INT_MAX, A|E, "lpc_type"},
|
||||||
{"lpc_passes", "number of passes to use for Cholesky factorization during LPC analysis", OFFSET(lpc_passes), FF_OPT_TYPE_INT, -1, INT_MIN, INT_MAX, A|E},
|
{"lpc_passes", "number of passes to use for Cholesky factorization during LPC analysis", OFFSET(lpc_passes), FF_OPT_TYPE_INT, -1, INT_MIN, INT_MAX, A|E},
|
||||||
|
{"slices", "number of slices, used in parallelized decoding", OFFSET(slices), FF_OPT_TYPE_INT, 0, 0, INT_MAX, V|E},
|
||||||
{NULL},
|
{NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user