[FFmpeg-devel] [PATCH 1/8] avcodec/cbs: add a flush callback to CodedBitstreamType
James Almer
jamrial at gmail.com
Wed Sep 30 04:26:33 EEST 2020
On 9/29/2020 12:50 PM, Mark Thompson wrote:
> On 25/09/2020 15:43, James Almer wrote:
>> Used to reset the codec's private internal state.
>>
>> Signed-off-by: James Almer <jamrial at gmail.com>
>> ---
>> libavcodec/cbs.c | 6 ++++++
>> libavcodec/cbs.h | 5 +++++
>> libavcodec/cbs_internal.h | 3 +++
>> 3 files changed, 14 insertions(+)
>>
>> 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
>> @@ -236,6 +236,11 @@ extern const enum AVCodecID ff_cbs_all_codec_ids[];
>> 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.
>> */
>> 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;
>>
>
> This is a good idea! Patches 1-4 LGTM.
>
> Thanks,
>
> - Mark
Pushed all four, thanks!
More information about the ffmpeg-devel
mailing list