From patchwork Tue Dec 26 08:06:48 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: 6976 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.79.195 with SMTP id r64csp6563945jad; Tue, 26 Dec 2017 00:07:27 -0800 (PST) X-Google-Smtp-Source: ACJfBouBX+P1Tb57NRUQANPSslGawXmcllKD1fr43bJSej+kMwlWGxAwa572oexmT3h7BE7nUL1h X-Received: by 10.223.158.205 with SMTP id b13mr10759545wrf.82.1514275647173; Tue, 26 Dec 2017 00:07:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1514275647; cv=none; d=google.com; s=arc-20160816; b=XTQumblhyEHiIysVUWr3GZt3RYY6Dclwqsum4uHw1Sahg9kAS0YlFCD1YrrSfAkN+Z gCGi20XUzv9g70DlpMt21QL1arIyCXLpOf22mvWDDdSl3yDMLN6I2YxzrKipxJ/Is20G joxw2ziQx/qRtUnMMWzxt7YbuF5Z2HsWfFEqIRerzSmS8UoY/Bzz+YvjcUxK7JqVz04J 28dX0xrmxj4jEFDqOj91tWQc/6AVTFrS6fndE1ydWD0cLd4IXvbp7SWSlSxqrj/zUAUd rsMUa/1zBifA9vJ0wzZNfcCCpefwTvCT9jE1Fud40+6AJ1KD5fD1u1z16NZ/+I8Vg6N1 pkIA== 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=oaq2946/olEaRpiQ/ROeSbt2L6hGAkaq/ADj6r4X2GlPXIqcDHmGGBmrg7uhxpVjdK cUJGFk5r3vJHCOVn9O+HffK4iAine79gsVkj6xLa1bq0NmLGE/AgNYz+mtUigplpSTFB EihbCN9w9NzZqxt11ccAWXjJzgKZetR69m0RERfL/VFl1c/kIFB2LVkSAXMbUrtfswPN CRPe/tdf5VP201Lg7YLphf4/+AEjP+UCqvQTHWSS5xeNxEKF+gKKF84lF4qKAwcaj/LF kH8S1/mzRHJKhg6SR5kgod/JKP/aYQJsZMHkBJizo/JnQ7HRakL5O7u5Pemixn0gs9GQ IOiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=LqZ0wjQR; 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 q64si8174006wrb.208.2017.12.26.00.07.26; Tue, 26 Dec 2017 00:07:27 -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=LqZ0wjQR; 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 09FC36882BD; Tue, 26 Dec 2017 10:07:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl0-f46.google.com (mail-pl0-f46.google.com [209.85.160.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F245D680CA2 for ; Tue, 26 Dec 2017 10:06:56 +0200 (EET) Received: by mail-pl0-f46.google.com with SMTP id s10so17543744plj.5 for ; Tue, 26 Dec 2017 00:07:10 -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=LqZ0wjQRoWXWGKDOHe9tf4PXY7SDuY3J+nzTU2KrUzUsvjTOPa0mYW0DmDBk/4ZHh/ PbTjDiLOFDzy84J7Er/acS49eyTpje7SCKtv74jnaHEv6ktQ87E/8CqMeFc8zd6dCY/+ baXdmi6CpthPer7mnGE09arVMai6L0dP9V09v+yY8gmH2G5jemXHVWjdb0vR+3mOW0VZ Notk5RoURi0rFzHDfRTjkYywSTS4fyCn/+s+JldzoWWUfwT5tBWQGG++x0YUVpK27/b3 Ghgm77M1SY+PcFYinnb+g8kos7ZAq6hF5FibCPfxx4FeRLpAvxBgmNnsIEYkXRmMYESt AThA== 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=dXELcfzJFEzAqYMiEIFUAoqpZtOvtMPBJrzTPoqXWSBhXHJ2wh1YhECsIz+992KYfr bEGY37V9tBqGj0xdprGIxo0Ax9HmqOfLiIYJUteA2Owks/RoFc2As5sdzogyYLhcXFAS 8x4KiVmZNxlnA92WYaqjtYPM9DvYxUNjm0HF2Gj18Bv8FPmAnxClo61ZjYBIqWsVEDZQ wLlv/iqIE4QcoHiHtcRjObqZ58ikmSpqjc/Imm7Ysf6Wctqmp0f1yfyBmwkdrhUA1+ei iPfmgplaFNzjEy2WTntmQFTp0/YH8c3UlfAH90fhoOSMOmAByl7In3dzaVY6XLzKotFp IyLQ== X-Gm-Message-State: AKGB3mI4avNXjg3/rg8E845JTQdIkPbg65elRb9j95L+5F+QocamRm5W tqUgqEXlTbgwImOkfUfDQDyVLc31 X-Received: by 10.84.160.198 with SMTP id v6mr25246789plg.336.1514275628661; Tue, 26 Dec 2017 00:07:08 -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 g9sm5641682pgr.4.2017.12.26.00.07.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 26 Dec 2017 00:07:08 -0800 (PST) From: misty@brew.sh To: ffmpeg-devel@ffmpeg.org Date: Tue, 26 Dec 2017 16:06:48 +0800 Message-Id: <20171226080652.84864-2-misty@brew.sh> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20171226080652.84864-1-misty@brew.sh> References: <20171226080652.84864-1-misty@brew.sh> Subject: [FFmpeg-devel] [PATCH 1/5] 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, \