[FFmpeg-trac] #7600(avcodec:new): Add lossless option to libaom-av1
FFmpeg
trac at avcodec.org
Tue Dec 11 22:11:58 EET 2018
#7600: Add lossless option to libaom-av1
-------------------------------------+-----------------------------------
Reporter: Ewout | Owner:
Type: enhancement | Status: new
Priority: wish | Component: avcodec
Version: git-master | Resolution:
Keywords: libaom | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-----------------------------------
Changes (by cehoyos):
* priority: normal => wish
* version: unspecified => git-master
* component: undetermined => avcodec
Comment:
Please test this patch:
{{{
diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c
index 09ef423..2b44bda 100644
--- a/libavcodec/libaomenc.c
+++ b/libavcodec/libaomenc.c
@@ -79,6 +79,7 @@ typedef struct AOMEncoderContext {
aom_superblock_size_t superblock_size;
int uniform_tiles;
int row_mt;
+ int lossless;
} AOMContext;
static const char *const ctlidstr[] = {
@@ -96,6 +97,9 @@ static const char *const ctlidstr[] = {
#ifdef AOM_CTRL_AV1E_SET_ROW_MT
[AV1E_SET_ROW_MT] = "AV1E_SET_ROW_MT",
#endif
+#ifdef AOM_CTRL_AV1E_SET_LOSSLESS
+ [AV1E_SET_LOSSLESS] = "AV1E_SET_LOSSLESS",
+#endif
};
static av_cold void log_encoder_error(AVCodecContext *avctx, const char
*desc)
@@ -657,6 +661,9 @@ static av_cold int aom_init(AVCodecContext *avctx,
#ifdef AOM_CTRL_AV1E_SET_ROW_MT
codecctl_int(avctx, AV1E_SET_ROW_MT, ctx->row_mt);
#endif
+#ifdef AOM_CTRL_AV1E_SET_LOSSLESS
+ codecctl_int(avctx, AV1E_SET_LOSSLESS, ctx->lossless);
+#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,
@@ -992,6 +999,7 @@ static const AVOption options[] = {
{ "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},
+ { "lossless", "Lossless mode",
OFFSET(lossless), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, VE}
{ NULL }
};
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/7600#comment:1>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list