diff options
author | James Almer <jamrial@gmail.com> | 2020-09-24 17:57:42 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2020-09-29 21:38:27 -0300 |
commit | 515b6419ca51f036a2d6dd42841a4be07147f865 (patch) | |
tree | 49390097e4abd2135fdd1815caaf01063b758ba3 /libavcodec | |
parent | 23d075416544f55a605b1818a8491c818312a62d (diff) | |
download | ffmpeg-515b6419ca51f036a2d6dd42841a4be07147f865.tar.gz |
avcodec/cbs: add a flush callback to CodedBitstreamType
Used to reset the codec's private internal state.
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/cbs.c | 6 | ||||
-rw-r--r-- | libavcodec/cbs.h | 5 | ||||
-rw-r--r-- | libavcodec/cbs_internal.h | 3 |
3 files changed, 14 insertions, 0 deletions
diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c index 7c1aa005c2..c8c526ab12 100644 --- a/libavcodec/cbs.c +++ b/libavcodec/cbs.c @@ -112,6 +112,12 @@ int ff_cbs_init(CodedBitstreamContext **ctx_ptr, return 0; } +void ff_cbs_flush(CodedBitstreamContext *ctx) +{ + if (ctx->codec && ctx->codec->flush) + ctx->codec->flush(ctx); +} + void ff_cbs_close(CodedBitstreamContext **ctx_ptr) { CodedBitstreamContext *ctx = *ctx_ptr; diff --git a/libavcodec/cbs.h b/libavcodec/cbs.h index 3a054aa8f3..635921b11e 100644 --- a/libavcodec/cbs.h +++ b/libavcodec/cbs.h @@ -237,6 +237,11 @@ int ff_cbs_init(CodedBitstreamContext **ctx, enum AVCodecID codec_id, void *log_ctx); /** + * Reset all internal state in a context. + */ +void ff_cbs_flush(CodedBitstreamContext *ctx); + +/** * Close a context and free all internal state. */ void ff_cbs_close(CodedBitstreamContext **ctx); diff --git a/libavcodec/cbs_internal.h b/libavcodec/cbs_internal.h index d991e1eedf..faa847aad3 100644 --- a/libavcodec/cbs_internal.h +++ b/libavcodec/cbs_internal.h @@ -117,6 +117,9 @@ typedef struct CodedBitstreamType { int (*assemble_fragment)(CodedBitstreamContext *ctx, CodedBitstreamFragment *frag); + // Reset the codec internal state. + void (*flush)(CodedBitstreamContext *ctx); + // Free the codec internal state. void (*close)(CodedBitstreamContext *ctx); } CodedBitstreamType; |