diff options
author | James Almer <jamrial@gmail.com> | 2018-12-08 20:14:12 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2018-12-09 15:23:00 -0300 |
commit | d12d4d45153e45e5b91ee079045f8fcde3537b33 (patch) | |
tree | 21896f2d29941c88e14a457b219e23b5645e333c /libavcodec/libaomenc.c | |
parent | 8be56ee211f9ee4c8f44f0a95b18bb2fffc44602 (diff) | |
download | ffmpeg-d12d4d45153e45e5b91ee079045f8fcde3537b33.tar.gz |
avcodec/libaomenc: add row-mt option
Default to disable, same as aomenc.
Fixes ticket #7598
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/libaomenc.c')
-rw-r--r-- | libavcodec/libaomenc.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c index 17565017b4..09ef423ce1 100644 --- a/libavcodec/libaomenc.c +++ b/libavcodec/libaomenc.c @@ -78,6 +78,7 @@ typedef struct AOMEncoderContext { int tile_cols_log2, tile_rows_log2; aom_superblock_size_t superblock_size; int uniform_tiles; + int row_mt; } AOMContext; static const char *const ctlidstr[] = { @@ -92,6 +93,9 @@ static const char *const ctlidstr[] = { [AV1E_SET_SUPERBLOCK_SIZE] = "AV1E_SET_SUPERBLOCK_SIZE", [AV1E_SET_TILE_COLUMNS] = "AV1E_SET_TILE_COLUMNS", [AV1E_SET_TILE_ROWS] = "AV1E_SET_TILE_ROWS", +#ifdef AOM_CTRL_AV1E_SET_ROW_MT + [AV1E_SET_ROW_MT] = "AV1E_SET_ROW_MT", +#endif }; static av_cold void log_encoder_error(AVCodecContext *avctx, const char *desc) @@ -650,6 +654,10 @@ static av_cold int aom_init(AVCodecContext *avctx, codecctl_int(avctx, AV1E_SET_TILE_ROWS, ctx->tile_rows_log2); } +#ifdef AOM_CTRL_AV1E_SET_ROW_MT + codecctl_int(avctx, AV1E_SET_ROW_MT, ctx->row_mt); +#endif + // provide dummy value to initialize wrapper, values will be updated each _encode() aom_img_wrap(&ctx->rawimg, img_fmt, avctx->width, avctx->height, 1, (unsigned char*)1); @@ -983,6 +991,7 @@ static const AVOption options[] = { { "tiles", "Tile columns x rows", OFFSET(tile_cols), AV_OPT_TYPE_IMAGE_SIZE, { .str = NULL }, 0, 0, VE }, { "tile-columns", "Log2 of number of tile columns to use", OFFSET(tile_cols_log2), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 6, VE}, { "tile-rows", "Log2 of number of tile rows to use", OFFSET(tile_rows_log2), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 6, VE}, + { "row-mt", "Enable row based multi-threading", OFFSET(row_mt), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, VE}, { NULL } }; |