From cbf111059d2bbce6d1fe4a9c54323265b736a470 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Wed, 1 Sep 2021 13:14:44 +0200 Subject: [PATCH] avcodec/avcodec: Allow up to seven codec ids per parser ff_pnm_parser and ff_vp3_parser already hit the current limit; an addition to the former (to handle pfm) is planned. Signed-off-by: Andreas Rheinhardt --- doc/APIchanges | 3 +++ libavcodec/avcodec.h | 2 +- libavcodec/parser.c | 8 ++++++-- libavcodec/version.h | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 63bf95233f..d58272ebd4 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -14,6 +14,9 @@ libavutil: 2021-04-27 API changes, most recent first: +2021-09-02 - xxxxxxxxxx - lavc 59.7.100 - avcodec.h + Incremented the number of elements of AVCodecParser.codec_ids to seven. + 2021-08-24 - xxxxxxxxxx - lavc 59.6.100 - avcodec.h Add FF_CODEC_PROPERTY_FILM_GRAIN diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index f3f401871b..ffd58c333f 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -2927,7 +2927,7 @@ typedef struct AVCodecParserContext { } AVCodecParserContext; typedef struct AVCodecParser { - int codec_ids[5]; /* several codec IDs are permitted */ + int codec_ids[7]; /* several codec IDs are permitted */ int priv_data_size; int (*parser_init)(AVCodecParserContext *s); /* This callback never returns an error, a negative value means that diff --git a/libavcodec/parser.c b/libavcodec/parser.c index fc57246965..3b459cc125 100644 --- a/libavcodec/parser.c +++ b/libavcodec/parser.c @@ -46,7 +46,9 @@ AVCodecParserContext *av_parser_init(int codec_id) parser->codec_ids[1] == codec_id || parser->codec_ids[2] == codec_id || parser->codec_ids[3] == codec_id || - parser->codec_ids[4] == codec_id) + parser->codec_ids[4] == codec_id || + parser->codec_ids[5] == codec_id || + parser->codec_ids[6] == codec_id) goto found; } return NULL; @@ -127,7 +129,9 @@ int av_parser_parse2(AVCodecParserContext *s, AVCodecContext *avctx, avctx->codec_id == s->parser->codec_ids[1] || avctx->codec_id == s->parser->codec_ids[2] || avctx->codec_id == s->parser->codec_ids[3] || - avctx->codec_id == s->parser->codec_ids[4]); + avctx->codec_id == s->parser->codec_ids[4] || + avctx->codec_id == s->parser->codec_ids[5] || + avctx->codec_id == s->parser->codec_ids[6]); if (!(s->flags & PARSER_FLAG_FETCHED_OFFSET)) { s->next_frame_offset = diff --git a/libavcodec/version.h b/libavcodec/version.h index d39329bc1d..7faf18a497 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -28,7 +28,7 @@ #include "libavutil/version.h" #define LIBAVCODEC_VERSION_MAJOR 59 -#define LIBAVCODEC_VERSION_MINOR 6 +#define LIBAVCODEC_VERSION_MINOR 7 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \