From d5cf5afabbf43f00283e70b12afbe1da030d85b6 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 3 Jul 2014 19:01:59 +0000 Subject: [PATCH] adxdec: get rid of an avpriv function The only thing the demuxer needs is the sample rate to set the timebase, which can be simply read with AV_RB32. --- libavcodec/Makefile | 1 - libavcodec/adx.c | 12 ++++++++++-- libavcodec/adx.h | 5 +++++ libavcodec/adxdec.c | 10 +++++----- libavformat/adxdec.c | 12 +++++------- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/libavcodec/Makefile b/libavcodec/Makefile index 56aac3892f..7fa15d55f3 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -556,7 +556,6 @@ OBJS-$(CONFIG_VC1_VDPAU_HWACCEL) += vdpau_vc1.o # libavformat dependencies OBJS-$(CONFIG_ADTS_MUXER) += mpeg4audio.o -OBJS-$(CONFIG_ADX_DEMUXER) += adx.o OBJS-$(CONFIG_CAF_DEMUXER) += mpeg4audio.o mpegaudiodata.o \ ac3tab.o OBJS-$(CONFIG_FLAC_DEMUXER) += flac.o flacdata.o \ diff --git a/libavcodec/adx.c b/libavcodec/adx.c index a9cf4ffd09..4d412d56d3 100644 --- a/libavcodec/adx.c +++ b/libavcodec/adx.c @@ -35,8 +35,8 @@ void ff_adx_calculate_coeffs(int cutoff, int sample_rate, int bits, int *coeff) coeff[1] = lrintf(-(c * c) * (1 << bits)); } -int avpriv_adx_decode_header(AVCodecContext *avctx, const uint8_t *buf, - int bufsize, int *header_size, int *coeff) +int ff_adx_decode_header(AVCodecContext *avctx, const uint8_t *buf, + int bufsize, int *header_size, int *coeff) { int offset, cutoff; @@ -80,3 +80,11 @@ int avpriv_adx_decode_header(AVCodecContext *avctx, const uint8_t *buf, *header_size = offset; return 0; } + +#if LIBAVCODEC_VERSION_MAJOR < 56 +int avpriv_adx_decode_header(AVCodecContext *avctx, const uint8_t *buf, + int bufsize, int *header_size, int *coeff) +{ + return ff_adx_decode_header(avctx, buf, bufsize, header_size, coeff); +} +#endif diff --git a/libavcodec/adx.h b/libavcodec/adx.h index ff4c2d6f35..9328111012 100644 --- a/libavcodec/adx.h +++ b/libavcodec/adx.h @@ -74,7 +74,12 @@ void ff_adx_calculate_coeffs(int cutoff, int sample_rate, int bits, int *coeff); * @param[out] coeff 2 LPC coefficients, can be NULL * @return data offset or negative error code if header is invalid */ +int ff_adx_decode_header(AVCodecContext *avctx, const uint8_t *buf, + int bufsize, int *header_size, int *coeff); + +#if LIBAVCODEC_VERSION_MAJOR < 56 int avpriv_adx_decode_header(AVCodecContext *avctx, const uint8_t *buf, int bufsize, int *header_size, int *coeff); +#endif #endif /* AVCODEC_ADX_H */ diff --git a/libavcodec/adxdec.c b/libavcodec/adxdec.c index 17d5becc2b..14fddf5520 100644 --- a/libavcodec/adxdec.c +++ b/libavcodec/adxdec.c @@ -40,9 +40,9 @@ static av_cold int adx_decode_init(AVCodecContext *avctx) int ret, header_size; if (avctx->extradata_size >= 24) { - if ((ret = avpriv_adx_decode_header(avctx, avctx->extradata, - avctx->extradata_size, &header_size, - c->coeff)) < 0) { + if ((ret = ff_adx_decode_header(avctx, avctx->extradata, + avctx->extradata_size, &header_size, + c->coeff)) < 0) { av_log(avctx, AV_LOG_ERROR, "error parsing ADX header\n"); return AVERROR_INVALIDDATA; } @@ -110,8 +110,8 @@ static int adx_decode_frame(AVCodecContext *avctx, void *data, if (!c->header_parsed && buf_size >= 2 && AV_RB16(buf) == 0x8000) { int header_size; - if ((ret = avpriv_adx_decode_header(avctx, buf, buf_size, &header_size, - c->coeff)) < 0) { + if ((ret = ff_adx_decode_header(avctx, buf, buf_size, &header_size, + c->coeff)) < 0) { av_log(avctx, AV_LOG_ERROR, "error parsing ADX header\n"); return AVERROR_INVALIDDATA; } diff --git a/libavformat/adxdec.c b/libavformat/adxdec.c index 49e19307d5..fc83ff263b 100644 --- a/libavformat/adxdec.c +++ b/libavformat/adxdec.c @@ -24,7 +24,6 @@ */ #include "libavutil/intreadwrite.h" -#include "libavcodec/adx.h" #include "avformat.h" #include "internal.h" @@ -66,7 +65,6 @@ static int adx_read_header(AVFormatContext *s) { ADXDemuxerContext *c = s->priv_data; AVCodecContext *avctx; - int ret; AVStream *st = avformat_new_stream(s, NULL); if (!st) @@ -87,11 +85,11 @@ static int adx_read_header(AVFormatContext *s) } avctx->extradata_size = c->header_size; - ret = avpriv_adx_decode_header(avctx, avctx->extradata, - avctx->extradata_size, &c->header_size, - NULL); - if (ret) - return ret; + if (avctx->extradata_size < 12) { + av_log(s, AV_LOG_ERROR, "Invalid extradata size.\n"); + return AVERROR_INVALIDDATA; + } + avctx->sample_rate = AV_RB32(avctx->extradata + 8); st->codec->codec_type = AVMEDIA_TYPE_AUDIO; st->codec->codec_id = s->iformat->raw_codec_id;