From 0f247986ad51d693d69728b8889d8f105ede9e05 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Thu, 25 Feb 2021 17:49:56 +0100 Subject: avcodec, avformat: Remove old BSF API Signed-off-by: Andreas Rheinhardt Signed-off-by: James Almer --- libavcodec/Makefile | 1 - libavcodec/avcodec.h | 52 ------------ libavcodec/bitstream_filter.c | 185 ------------------------------------------ libavcodec/version.h | 3 - 4 files changed, 241 deletions(-) delete mode 100644 libavcodec/bitstream_filter.c (limited to 'libavcodec') diff --git a/libavcodec/Makefile b/libavcodec/Makefile index fcddde459d..87decbab96 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -34,7 +34,6 @@ OBJS = ac3_parser.o \ avpacket.o \ avpicture.o \ bitstream.o \ - bitstream_filter.o \ bitstream_filters.o \ bsf.o \ codec_desc.o \ diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 483ab9a358..5e6967df0d 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3978,58 +3978,6 @@ int av_get_audio_frame_duration(AVCodecContext *avctx, int frame_bytes); */ int av_get_audio_frame_duration2(AVCodecParameters *par, int frame_bytes); -#if FF_API_OLD_BSF -typedef struct AVBitStreamFilterContext { - void *priv_data; - const struct AVBitStreamFilter *filter; - AVCodecParserContext *parser; - struct AVBitStreamFilterContext *next; - /** - * Internal default arguments, used if NULL is passed to av_bitstream_filter_filter(). - * Not for access by library users. - */ - char *args; -} AVBitStreamFilterContext; - -/** - * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) - * is deprecated. Use the new bitstream filtering API (using AVBSFContext). - */ -attribute_deprecated -void av_register_bitstream_filter(AVBitStreamFilter *bsf); -/** - * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) - * is deprecated. Use av_bsf_get_by_name(), av_bsf_alloc(), and av_bsf_init() - * from the new bitstream filtering API (using AVBSFContext). - */ -attribute_deprecated -AVBitStreamFilterContext *av_bitstream_filter_init(const char *name); -/** - * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) - * is deprecated. Use av_bsf_send_packet() and av_bsf_receive_packet() from the - * new bitstream filtering API (using AVBSFContext). - */ -attribute_deprecated -int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc, - AVCodecContext *avctx, const char *args, - uint8_t **poutbuf, int *poutbuf_size, - const uint8_t *buf, int buf_size, int keyframe); -/** - * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) - * is deprecated. Use av_bsf_free() from the new bitstream filtering API (using - * AVBSFContext). - */ -attribute_deprecated -void av_bitstream_filter_close(AVBitStreamFilterContext *bsf); -/** - * @deprecated the old bitstream filtering API (using AVBitStreamFilterContext) - * is deprecated. Use av_bsf_iterate() from the new bitstream filtering API (using - * AVBSFContext). - */ -attribute_deprecated -const AVBitStreamFilter *av_bitstream_filter_next(const AVBitStreamFilter *f); -#endif - /* memory */ /** diff --git a/libavcodec/bitstream_filter.c b/libavcodec/bitstream_filter.c deleted file mode 100644 index ca11ed371e..0000000000 --- a/libavcodec/bitstream_filter.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * copyright (c) 2006 Michael Niedermayer - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include - -#include "avcodec.h" -#include "libavutil/internal.h" -#include "libavutil/mem.h" -#include "libavutil/opt.h" - -#if FF_API_OLD_BSF -FF_DISABLE_DEPRECATION_WARNINGS - -const AVBitStreamFilter *av_bitstream_filter_next(const AVBitStreamFilter *f) -{ - const AVBitStreamFilter *filter = NULL; - void *opaque = NULL; - - while (filter != f) - filter = av_bsf_iterate(&opaque); - - return av_bsf_iterate(&opaque); -} - -void av_register_bitstream_filter(AVBitStreamFilter *bsf) -{ -} - -typedef struct BSFCompatContext { - AVBSFContext *ctx; - int extradata_updated; -} BSFCompatContext; - -AVBitStreamFilterContext *av_bitstream_filter_init(const char *name) -{ - AVBitStreamFilterContext *ctx = NULL; - BSFCompatContext *priv = NULL; - const AVBitStreamFilter *bsf; - - bsf = av_bsf_get_by_name(name); - if (!bsf) - return NULL; - - ctx = av_mallocz(sizeof(*ctx)); - if (!ctx) - return NULL; - - priv = av_mallocz(sizeof(*priv)); - if (!priv) - goto fail; - - - ctx->filter = bsf; - ctx->priv_data = priv; - - return ctx; - -fail: - if (priv) - av_bsf_free(&priv->ctx); - av_freep(&priv); - av_freep(&ctx); - return NULL; -} - -void av_bitstream_filter_close(AVBitStreamFilterContext *bsfc) -{ - BSFCompatContext *priv; - - if (!bsfc) - return; - - priv = bsfc->priv_data; - - av_bsf_free(&priv->ctx); - av_freep(&bsfc->priv_data); - av_free(bsfc); -} - -int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc, - AVCodecContext *avctx, const char *args, - uint8_t **poutbuf, int *poutbuf_size, - const uint8_t *buf, int buf_size, int keyframe) -{ - BSFCompatContext *priv = bsfc->priv_data; - AVPacket pkt = { 0 }; - int ret; - - if (!priv->ctx) { - ret = av_bsf_alloc(bsfc->filter, &priv->ctx); - if (ret < 0) - return ret; - - ret = avcodec_parameters_from_context(priv->ctx->par_in, avctx); - if (ret < 0) - return ret; - - priv->ctx->time_base_in = avctx->time_base; - - if (bsfc->args && bsfc->filter->priv_class) { - const AVOption *opt = av_opt_next(priv->ctx->priv_data, NULL); - const char * shorthand[2] = {NULL}; - - if (opt) - shorthand[0] = opt->name; - - ret = av_opt_set_from_string(priv->ctx->priv_data, bsfc->args, shorthand, "=", ":"); - if (ret < 0) - return ret; - } - - ret = av_bsf_init(priv->ctx); - if (ret < 0) - return ret; - } - - pkt.data = (uint8_t *)buf; - pkt.size = buf_size; - - ret = av_bsf_send_packet(priv->ctx, &pkt); - if (ret < 0) - return ret; - - *poutbuf = NULL; - *poutbuf_size = 0; - - ret = av_bsf_receive_packet(priv->ctx, &pkt); - if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) - return 0; - else if (ret < 0) - return ret; - - *poutbuf = av_malloc(pkt.size + AV_INPUT_BUFFER_PADDING_SIZE); - if (!*poutbuf) { - av_packet_unref(&pkt); - return AVERROR(ENOMEM); - } - - *poutbuf_size = pkt.size; - memcpy(*poutbuf, pkt.data, pkt.size); - - av_packet_unref(&pkt); - - /* drain all the remaining packets we cannot return */ - while (ret >= 0) { - ret = av_bsf_receive_packet(priv->ctx, &pkt); - av_packet_unref(&pkt); - } - - if (!priv->extradata_updated) { - /* update extradata in avctx from the output codec parameters */ - if (priv->ctx->par_out->extradata_size && (!args || !strstr(args, "private_spspps_buf"))) { - av_freep(&avctx->extradata); - avctx->extradata_size = 0; - avctx->extradata = av_mallocz(priv->ctx->par_out->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); - if (!avctx->extradata) - return AVERROR(ENOMEM); - memcpy(avctx->extradata, priv->ctx->par_out->extradata, priv->ctx->par_out->extradata_size); - avctx->extradata_size = priv->ctx->par_out->extradata_size; - } - - priv->extradata_updated = 1; - } - - return 1; -} -FF_ENABLE_DEPRECATION_WARNINGS -#endif diff --git a/libavcodec/version.h b/libavcodec/version.h index 8d189312ed..a53ed233f2 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -87,9 +87,6 @@ #ifndef FF_API_ASS_TIMING #define FF_API_ASS_TIMING (LIBAVCODEC_VERSION_MAJOR < 59) #endif -#ifndef FF_API_OLD_BSF -#define FF_API_OLD_BSF (LIBAVCODEC_VERSION_MAJOR < 59) -#endif #ifndef FF_API_COPY_CONTEXT #define FF_API_COPY_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 59) #endif -- cgit v1.2.3