diff options
author | James Almer <jamrial@gmail.com> | 2020-11-15 18:55:38 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2021-01-04 16:28:29 -0300 |
commit | 9caf132462de6fe9b68644703c953c899c4e5bb8 (patch) | |
tree | 966e838bb0a7f853ebb59f38c24825318e6c9972 /libavcodec/cbs.c | |
parent | 0cd8769207f1a89fc2236aab9da1c77f5a0b490a (diff) |
avcodec/cbs: add an AVClass to CodedBitstreamType for option handling
So unit parsing may be configured with caller set options.
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/cbs.c')
-rw-r--r-- | libavcodec/cbs.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c index e7025cce07..d7efac5b93 100644 --- a/libavcodec/cbs.c +++ b/libavcodec/cbs.c @@ -23,6 +23,7 @@ #include "libavutil/avassert.h" #include "libavutil/buffer.h" #include "libavutil/common.h" +#include "libavutil/opt.h" #include "cbs.h" #include "cbs_internal.h" @@ -101,6 +102,10 @@ int ff_cbs_init(CodedBitstreamContext **ctx_ptr, av_freep(&ctx); return AVERROR(ENOMEM); } + if (type->priv_class) { + *(const AVClass **)ctx->priv_data = type->priv_class; + av_opt_set_defaults(ctx->priv_data); + } } ctx->decompose_unit_types = NULL; @@ -129,6 +134,10 @@ void ff_cbs_close(CodedBitstreamContext **ctx_ptr) ctx->codec->close(ctx); av_freep(&ctx->write_buffer); + + if (ctx->codec->priv_class && ctx->priv_data) + av_opt_free(ctx->priv_data); + av_freep(&ctx->priv_data); av_freep(ctx_ptr); } |