[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