From 868a31b42dc0fb62f63e704138f083d48f40d68c Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Fri, 27 Jan 2023 15:05:58 +0100 Subject: avcodec: Make avcodec_decode_subtitle2 accept a const AVPacket* Signed-off-by: Andreas Rheinhardt Signed-off-by: Anton Khirnov --- doc/APIchanges | 3 +++ fftools/ffmpeg.c | 4 ++-- fftools/ffprobe.c | 2 +- libavcodec/avcodec.h | 3 +-- libavcodec/decode.c | 9 ++++----- tools/target_dec_fuzzer.c | 4 ++-- 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 6baf914760..c4b9dc114b 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -14,6 +14,9 @@ libavutil: 2021-04-27 API changes, most recent first: +2023-02-xx - xxxxxxxxxx - lavc 60.0.100 - avcodec.h + avcodec_decode_subtitle2() now accepts const AVPacket*. + 2023-0x-xx - xxxxxxxxxx - lavc 59.63.100 Allow AV_CODEC_FLAG_COPY_OPAQUE to be used with decoders. diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index aac393c714..a9c84f507c 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -2512,8 +2512,8 @@ static int trigger_fix_sub_duration_heartbeat(OutputStream *ost, const AVPacket return 0; } -static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output, - int *decode_failed) +static int transcode_subtitles(InputStream *ist, const AVPacket *pkt, + int *got_output, int *decode_failed) { AVSubtitle subtitle; int ret = avcodec_decode_subtitle2(ist->dec_ctx, diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index db5e4ecdf1..06013fd6fa 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -2734,7 +2734,7 @@ static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream, static av_always_inline int process_frame(WriterContext *w, InputFile *ifile, - AVFrame *frame, AVPacket *pkt, + AVFrame *frame, const AVPacket *pkt, int *packet_new) { AVFormatContext *fmt_ctx = ifile->fmt_ctx; diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 755e543fac..e8333a94f1 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -2615,8 +2615,7 @@ enum AVChromaLocation avcodec_chroma_pos_to_enum(int xpos, int ypos); * @param[in] avpkt The input AVPacket containing the input buffer. */ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, - int *got_sub_ptr, - AVPacket *avpkt); + int *got_sub_ptr, const AVPacket *avpkt); /** * Supply raw packet data as input to a decoder. diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 03ae27ecdf..78bf3ba547 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -780,8 +780,8 @@ static void get_subtitle_defaults(AVSubtitle *sub) } #define UTF8_MAX_BYTES 4 /* 5 and 6 bytes sequences should not be used */ -static int recode_subtitle(AVCodecContext *avctx, AVPacket **outpkt, - AVPacket *inpkt, AVPacket *buf_pkt) +static int recode_subtitle(AVCodecContext *avctx, const AVPacket **outpkt, + const AVPacket *inpkt, AVPacket *buf_pkt) { #if CONFIG_ICONV iconv_t cd = (iconv_t)-1; @@ -861,8 +861,7 @@ static int utf8_check(const uint8_t *str) } int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, - int *got_sub_ptr, - AVPacket *avpkt) + int *got_sub_ptr, const AVPacket *avpkt) { int ret = 0; @@ -882,7 +881,7 @@ int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, if ((avctx->codec->capabilities & AV_CODEC_CAP_DELAY) || avpkt->size) { AVCodecInternal *avci = avctx->internal; - AVPacket *pkt; + const AVPacket *pkt; ret = recode_subtitle(avctx, &pkt, avpkt, avci->buffer_pkt); if (ret < 0) diff --git a/tools/target_dec_fuzzer.c b/tools/target_dec_fuzzer.c index 127d534c9d..a9472eebe6 100644 --- a/tools/target_dec_fuzzer.c +++ b/tools/target_dec_fuzzer.c @@ -81,8 +81,8 @@ static const FFCodec *AVCodecInitialize(enum AVCodecID codec_id) return ffcodec(res); } -static int subtitle_handler(AVCodecContext *avctx, void *frame, - int *got_sub_ptr, AVPacket *avpkt) +static int subtitle_handler(AVCodecContext *avctx, AVFrame *unused, + int *got_sub_ptr, const AVPacket *avpkt) { AVSubtitle sub; int ret = avcodec_decode_subtitle2(avctx, &sub, got_sub_ptr, avpkt); -- cgit v1.2.3