[FFmpeg-devel,2/6] oma: move some constants into libavcodec

Submitted by misty@brew.sh on Jan. 5, 2018, 11:34 a.m.

Details

Message ID 20180105113448.13917-3-misty@brew.sh
State New
Headers show

Commit Message

misty@brew.sh Jan. 5, 2018, 11:34 a.m.
From: Misty De Meo <mistydemeo@gmail.com>

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%)

Comments

Michael Niedermayer Jan. 6, 2018, 12:22 a.m.
On Fri, Jan 05, 2018 at 10:34:44PM +1100, misty@brew.sh wrote:
> From: Misty De Meo <mistydemeo@gmail.com>
> 
> 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 <stdint.h>
> +
>  #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] = {

Moving tables into header files which are included in multiple files
within the lib
libavformat/omadec.c:#include "libavcodec/oma.h"
libavformat/omadec.c:#include "oma.h"
libavformat/omaenc.c:#include "libavcodec/oma.h"
libavformat/omaenc.c:#include "oma.h"

would lead to duplicate versions of these tables within the lib
not a major issue as these are tiny but existing code does not do
such duplication. I think we should not add such intra lib
duplication


[...]

Patch hide | download patch | download mbox

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 <stdint.h>
+
 #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 47a15d52b8..ec536bf7b6 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,7 +29,7 @@ 
 
 #define LIBAVCODEC_VERSION_MAJOR  58
 #define LIBAVCODEC_VERSION_MINOR   9
-#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 <stdint.h>
-
 #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, \