From patchwork Mon Dec 25 02:28:29 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: misty@brew.sh X-Patchwork-Id: 6954 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.79.195 with SMTP id r64csp5293929jad; Sun, 24 Dec 2017 18:29:11 -0800 (PST) X-Google-Smtp-Source: ACJfBovTrdm3SD5Eb79yDVG1YckvoZMEXjzM/5fbhfwcS4QiFB2dNrmdAXuUDIYh0aIwLrBzU7V2 X-Received: by 10.223.167.3 with SMTP id c3mr22336635wrd.127.1514168951425; Sun, 24 Dec 2017 18:29:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1514168951; cv=none; d=google.com; s=arc-20160816; b=I2qwRs7lbnKAqT+YrFyOHj2OvelN+HckMjKaLdskqOvVljsUNwcvqsn5/tnNjWevqn Ve3wBTfHGIcw4TlqGNUSQ8jjE6BUQ9rBRi4G8HbuSnToZ81PRDw1eTZJ7jZkYtiz4Ncs f29/5eMLKOHYrBsHR4lDKnvtioVnAMQLlRqYJB+8O3Vqydg7mCjGZgxy0CoRfPeVyyUf AoqI4ZhJNf8p+o7iPoEkTnsKLblLcJNEjLDyp3bU7F9i8al8mKd31SLf52Q3EqA9/ZSw VUbUUda7iqi7N5QqJETH+PU6bs+vrgp94/io/1VaME+0vgV2dwSiSlOPtfvDQHEMZ/h+ rMeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=LFfh6tl15JTRNXSQTymcv2+xuqGjYL4ymkMOA7vY29E=; b=Hb2PWEDuDYLGoCc5lApUelwRnABVQcpv5cDnpGRvAPCi2a2rEqYMH3CnTbePxbn3OZ hj04ntVnbwnmYFEFLtkN/TT/z40jfays5AZfkhGIVfUnabC/lqnS9UEHeMcsGRpBPtYX XWHFxa1qeOYCM7x9ABbQWnncDZsEMK594hx1R2owCgKTQRLV3wr6jx3oFx34srD3Qvsw KYLPN3CKpzC01LEzEUEz7qv7pcKQlFUhPncqEVZOA1FjqcZsuskHIOtEP6HqjoiK8Ub9 OynLzlCKAc9dNz+YpQaH63QST5G/eRMdum+8kbbq+TRrEsn1BUuOV8NGiaQDrKT9TWT2 WkzA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=LjoANTeZ; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l78si15440502wrc.253.2017.12.24.18.29.11; Sun, 24 Dec 2017 18:29:11 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=LjoANTeZ; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EF693680A65; Mon, 25 Dec 2017 04:28:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf0-f178.google.com (mail-pf0-f178.google.com [209.85.192.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AC05868064D for ; Mon, 25 Dec 2017 04:28:45 +0200 (EET) Received: by mail-pf0-f178.google.com with SMTP id l24so17485089pfj.6 for ; Sun, 24 Dec 2017 18:28:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=6sZTnB2CNNRO4dy4xrelA7LVWDjJ2IkBT9iaZOHWVHQ=; b=LjoANTeZ95HWg52ZNmClJ4sX6uca/abvf6xmYg1AQ5d7e2uvkbcfK7dZxrSTUJJVsD Io++rx7+627KMi29wPymkB/BCdolJsbP24J4OszcO3+TMOAc4UTgZiV2DCegkk3W+nLl zsyUS7Fzc9rKdmkkBFlbeug3M1CrfDuyv4Myn8DZzy5isoRgrfn12sLVTjsAXYKBwJdI vzCK4YnZc+XmiBkyYgb0RDuv15QGT6rScMgxSQTRsNRGy83Pkxv8MeB72hh0e5PMvspE JvLNKqHa5iq7fVrzPzj2Sx02Zob3826w16g3Jv0vzdzkb8WstERrEhqg5JpUO0MyLJqz d/9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=6sZTnB2CNNRO4dy4xrelA7LVWDjJ2IkBT9iaZOHWVHQ=; b=sfMoLkVpnauDqBgCh+8z6mc8y7+TCZy0BRpBOQ4e+vw6JOJ3Z9ih4yI+/FmVRa2r5F cUBkKDYlCniR2hga0OXiZTusM4JYZ+qMK8YRFJGVg2lpo5swhLWTMMP+bN0l35ciiaTo boOrjSgV5PUmMVvNHnHWX/4PxioC6GFDUViGJ6DC+Zv8DRMSMmYKWKKAxJBjJfefg5yY PRvF6hXD8m1uQuJDSPJBD+7hrYzLuW8/XhobGL/vwILjwKHYmvB8mfkMHrpMZB514Dq7 CdyxRksk84mSIzK7t9HdvuPt2TLBwBGtsDdOkd/NmdVzozsWL8oe6W+kXz6UhaMZViy8 QAvg== X-Gm-Message-State: AKGB3mL6VPb55tm0ELKn8V+Onyr/k90JCkaAqRb8+7X4C+OcbFa3WoYF 1vG8REpATiBvh7wh+w1o3MZ/VgEL X-Received: by 10.101.92.138 with SMTP id a10mr18382454pgt.6.1514168936822; Sun, 24 Dec 2017 18:28:56 -0800 (PST) Received: from localhost.localdomain (124-148-94-180.dyn.iinet.net.au. [124.148.94.180]) by smtp.gmail.com with ESMTPSA id n22sm27888708pgc.76.2017.12.24.18.28.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 24 Dec 2017 18:28:56 -0800 (PST) From: misty@brew.sh To: ffmpeg-devel@ffmpeg.org Date: Mon, 25 Dec 2017 10:28:29 +0800 Message-Id: <20171225022834.33865-2-misty@brew.sh> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171225022834.33865-1-misty@brew.sh> References: <20171225022834.33865-1-misty@brew.sh> Subject: [FFmpeg-devel] [PATCH 1/6] oma: move some constants into libavcodec X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Misty De Meo MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Misty De Meo Most of the constants in libavcodec/oma aren't specific to libavformat; moving them into libavcodec makes them available to libavcodec as well as keeping them compatible with libavformat. ff_oma_codec_tags uses a libavformat-specific type, so it has been left in libavformat. --- libavformat/oma.c => libavcodec/oma.h | 27 +++++++++++++-------------- libavcodec/version.h | 2 +- libavformat/Makefile | 4 ++-- libavformat/oma.h | 21 +++++++++------------ libavformat/omadec.c | 13 +++++++------ libavformat/omaenc.c | 7 ++++--- libavformat/version.h | 2 +- 7 files changed, 37 insertions(+), 39 deletions(-) rename libavformat/oma.c => libavcodec/oma.h (65%) diff --git a/libavformat/oma.c b/libavcodec/oma.h similarity index 65% rename from libavformat/oma.c rename to libavcodec/oma.h index f7ae3c9948..f091ef24ca 100644 --- a/libavformat/oma.c +++ b/libavcodec/oma.h @@ -18,25 +18,22 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#ifndef AVCODEC_OMA_H +#define AVCODEC_OMA_H + +#include + #include "internal.h" -#include "oma.h" -#include "libavcodec/avcodec.h" #include "libavutil/channel_layout.h" -const uint16_t ff_oma_srate_tab[8] = { 320, 441, 480, 882, 960, 0 }; +#define EA3_HEADER_SIZE 96 +#define ID3v2_EA3_MAGIC "ea3" +#define OMA_ENC_HEADER_SIZE 16 -const AVCodecTag ff_oma_codec_tags[] = { - { AV_CODEC_ID_ATRAC3, OMA_CODECID_ATRAC3 }, - { AV_CODEC_ID_ATRAC3P, OMA_CODECID_ATRAC3P }, - { AV_CODEC_ID_MP3, OMA_CODECID_MP3 }, - { AV_CODEC_ID_PCM_S16BE, OMA_CODECID_LPCM }, - { AV_CODEC_ID_ATRAC3PAL, OMA_CODECID_ATRAC3PAL }, - { AV_CODEC_ID_ATRAC3AL, OMA_CODECID_ATRAC3AL }, - { 0 }, -}; +static const uint16_t oma_srate_tab[8] = { 320, 441, 480, 882, 960, 0 }; /** map ATRAC-X channel id to internal channel layout */ -const uint64_t ff_oma_chid_to_native_layout[7] = { +static const uint64_t oma_chid_to_native_layout[7] = { AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, AV_CH_LAYOUT_SURROUND, @@ -47,4 +44,6 @@ const uint64_t ff_oma_chid_to_native_layout[7] = { }; /** map ATRAC-X channel id to total number of channels */ -const int ff_oma_chid_to_num_channels[7] = {1, 2, 3, 4, 6, 7, 8}; +static const int oma_chid_to_num_channels[7] = {1, 2, 3, 4, 6, 7, 8}; + +#endif /* AVCODEC_OMA_H */ diff --git a/libavcodec/version.h b/libavcodec/version.h index d55de89797..d48857578d 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #define LIBAVCODEC_VERSION_MAJOR 58 #define LIBAVCODEC_VERSION_MINOR 8 -#define LIBAVCODEC_VERSION_MICRO 100 +#define LIBAVCODEC_VERSION_MICRO 101 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \ diff --git a/libavformat/Makefile b/libavformat/Makefile index cb70eac920..ef0365e6e2 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -358,8 +358,8 @@ OBJS-$(CONFIG_OGG_MUXER) += oggenc.o \ vorbiscomment.o OBJS-$(CONFIG_OGV_MUXER) += oggenc.o \ vorbiscomment.o -OBJS-$(CONFIG_OMA_DEMUXER) += omadec.o pcm.o oma.o -OBJS-$(CONFIG_OMA_MUXER) += omaenc.o rawenc.o oma.o id3v2enc.o +OBJS-$(CONFIG_OMA_DEMUXER) += omadec.o pcm.o +OBJS-$(CONFIG_OMA_MUXER) += omaenc.o rawenc.o id3v2enc.o OBJS-$(CONFIG_OPUS_MUXER) += oggenc.o \ vorbiscomment.o OBJS-$(CONFIG_PAF_DEMUXER) += paf.o diff --git a/libavformat/oma.h b/libavformat/oma.h index 36fd0125e4..41972830ec 100644 --- a/libavformat/oma.h +++ b/libavformat/oma.h @@ -21,14 +21,8 @@ #ifndef AVFORMAT_OMA_H #define AVFORMAT_OMA_H -#include - #include "internal.h" -#define EA3_HEADER_SIZE 96 -#define ID3v2_EA3_MAGIC "ea3" -#define OMA_ENC_HEADER_SIZE 16 - enum { OMA_CODECID_ATRAC3 = 0, OMA_CODECID_ATRAC3P = 1, @@ -39,11 +33,14 @@ enum { OMA_CODECID_ATRAC3AL = 34, }; -extern const uint16_t ff_oma_srate_tab[8]; - -extern const AVCodecTag ff_oma_codec_tags[]; - -extern const uint64_t ff_oma_chid_to_native_layout[7]; -extern const int ff_oma_chid_to_num_channels[7]; +static const AVCodecTag oma_codec_tags[] = { + { AV_CODEC_ID_ATRAC3, OMA_CODECID_ATRAC3 }, + { AV_CODEC_ID_ATRAC3P, OMA_CODECID_ATRAC3P }, + { AV_CODEC_ID_MP3, OMA_CODECID_MP3 }, + { AV_CODEC_ID_PCM_S16BE, OMA_CODECID_LPCM }, + { AV_CODEC_ID_ATRAC3PAL, OMA_CODECID_ATRAC3PAL }, + { AV_CODEC_ID_ATRAC3AL, OMA_CODECID_ATRAC3AL }, + { 0 }, +}; #endif /* AVFORMAT_OMA_H */ diff --git a/libavformat/omadec.c b/libavformat/omadec.c index 423d52b3aa..24afaa417b 100644 --- a/libavformat/omadec.c +++ b/libavformat/omadec.c @@ -48,6 +48,7 @@ #include "libavutil/intreadwrite.h" #include "libavutil/des.h" #include "libavutil/mathematics.h" +#include "libavcodec/oma.h" #include "oma.h" #include "pcm.h" #include "id3v2.h" @@ -432,14 +433,14 @@ static int oma_read_header(AVFormatContext *s) st->start_time = 0; st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = buf[32]; - st->codecpar->codec_id = ff_codec_get_id(ff_oma_codec_tags, + st->codecpar->codec_id = ff_codec_get_id(oma_codec_tags, st->codecpar->codec_tag); oc->read_packet = read_packet; switch (buf[32]) { case OMA_CODECID_ATRAC3: - samplerate = ff_oma_srate_tab[(codec_params >> 13) & 7] * 100; + samplerate = oma_srate_tab[(codec_params >> 13) & 7] * 100; if (!samplerate) { av_log(s, AV_LOG_ERROR, "Unsupported sample rate\n"); return AVERROR_INVALIDDATA; @@ -479,10 +480,10 @@ static int oma_read_header(AVFormatContext *s) "Invalid ATRAC-X channel id: %"PRIu32"\n", channel_id); return AVERROR_INVALIDDATA; } - st->codecpar->channel_layout = ff_oma_chid_to_native_layout[channel_id - 1]; - st->codecpar->channels = ff_oma_chid_to_num_channels[channel_id - 1]; + st->codecpar->channel_layout = oma_chid_to_native_layout[channel_id - 1]; + st->codecpar->channels = oma_chid_to_num_channels[channel_id - 1]; framesize = ((codec_params & 0x3FF) * 8) + 8; - samplerate = ff_oma_srate_tab[(codec_params >> 13) & 7] * 100; + samplerate = oma_srate_tab[(codec_params >> 13) & 7] * 100; if (!samplerate) { av_log(s, AV_LOG_ERROR, "Unsupported sample rate\n"); return AVERROR_INVALIDDATA; @@ -610,5 +611,5 @@ AVInputFormat ff_oma_demuxer = { .read_close = oma_read_close, .flags = AVFMT_GENERIC_INDEX, .extensions = "oma,omg,aa3", - .codec_tag = (const AVCodecTag* const []){ff_oma_codec_tags, 0}, + .codec_tag = (const AVCodecTag* const []){oma_codec_tags, 0}, }; diff --git a/libavformat/omaenc.c b/libavformat/omaenc.c index 7952808bf8..7c497a83dd 100644 --- a/libavformat/omaenc.c +++ b/libavformat/omaenc.c @@ -24,6 +24,7 @@ #include "avio_internal.h" #include "id3v2.h" #include "internal.h" +#include "libavcodec/oma.h" #include "oma.h" #include "rawenc.h" @@ -38,13 +39,13 @@ static av_cold int oma_write_header(AVFormatContext *s) /* check for support of the format first */ for (srate_index = 0; ; srate_index++) { - if (ff_oma_srate_tab[srate_index] == 0) { + if (oma_srate_tab[srate_index] == 0) { av_log(s, AV_LOG_ERROR, "Sample rate %d not supported in OpenMG audio\n", par->sample_rate); return AVERROR(EINVAL); } - if (ff_oma_srate_tab[srate_index] * 100 == par->sample_rate) + if (oma_srate_tab[srate_index] * 100 == par->sample_rate) break; } @@ -102,6 +103,6 @@ AVOutputFormat ff_oma_muxer = { .audio_codec = AV_CODEC_ID_ATRAC3, .write_header = oma_write_header, .write_packet = ff_raw_write_packet, - .codec_tag = (const AVCodecTag* const []){ff_oma_codec_tags, 0}, + .codec_tag = (const AVCodecTag* const []){oma_codec_tags, 0}, .flags = AVFMT_NOTIMESTAMPS, }; diff --git a/libavformat/version.h b/libavformat/version.h index 5ced041f0a..6453d4559f 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -33,7 +33,7 @@ // Also please add any ticket numbers that you believe might be affected here #define LIBAVFORMAT_VERSION_MAJOR 58 #define LIBAVFORMAT_VERSION_MINOR 3 -#define LIBAVFORMAT_VERSION_MICRO 100 +#define LIBAVFORMAT_VERSION_MICRO 101 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \