[FFmpeg-devel] [PATCH 2/4 v2] avcodec/cbs: allow cbs_read_fragment_content() to discard units
Mark Thompson
sw at jkqxz.net
Wed Dec 9 23:22:24 EET 2020
On 15/11/2020 21:55, James Almer wrote:
> The caller may not need all units in a fragment in reading only scenarios. They
> could in fact alter global state stored in the private CodedBitstreamType
> fields in an undesirable way.
> And unlike preventing decomposition of units, discarding can be done based on
> parsed values within the unit.
>
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
> libavcodec/cbs.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/libavcodec/cbs.c b/libavcodec/cbs.c
> index c7afccd6f5..f4312d199b 100644
> --- a/libavcodec/cbs.c
> +++ b/libavcodec/cbs.c
> @@ -202,6 +202,12 @@ static int cbs_read_fragment_content(CodedBitstreamContext *ctx,
> av_log(ctx->log_ctx, AV_LOG_VERBOSE,
> "Decomposition unimplemented for unit %d "
> "(type %"PRIu32").\n", i, unit->type);
> + } else if (err == AVERROR(EAGAIN)) {
> + av_log(ctx->log_ctx, AV_LOG_VERBOSE,
> + "Discarding unit %d "
> + "(type %"PRIu32").\n", i, unit->type);
> + av_buffer_unref(&unit->content_ref);
> + unit->content = NULL;
> } else if (err < 0) {
> av_log(ctx->log_ctx, AV_LOG_ERROR, "Failed to read unit %d "
> "(type %"PRIu32").\n", i, unit->type);
>
The description and log message no longer match exactly what it does.
Code part LGTM.
- Mark
More information about the ffmpeg-devel
mailing list