summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVittorio Giovara <vittorio.giovara@gmail.com>2017-03-31 18:04:05 +0200
committerJames Almer <jamrial@gmail.com>2022-03-15 09:42:35 -0300
commit68559225a26251fcf8af9042f73b4a9dde7a4945 (patch)
treef2370bcf09ee1171b993e68f7da5b61df24df8e7
parent5b51e6771c5419118dc02b325aafed37ce5cb709 (diff)
oma: convert to new channel layout API
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--libavformat/oma.h2
-rw-r--r--libavformat/omadec.c35
-rw-r--r--libavformat/omaenc.c4
3 files changed, 18 insertions, 23 deletions
diff --git a/libavformat/oma.h b/libavformat/oma.h
index 85d5932f1d..1a8e16f6d6 100644
--- a/libavformat/oma.h
+++ b/libavformat/oma.h
@@ -23,6 +23,8 @@
#include <stdint.h>
+#include "libavutil/channel_layout.h"
+
#include "internal.h"
#define EA3_HEADER_SIZE 96
diff --git a/libavformat/omadec.c b/libavformat/omadec.c
index 4c418a5ff2..066b2d85bd 100644
--- a/libavformat/omadec.c
+++ b/libavformat/omadec.c
@@ -60,19 +60,16 @@ static const uint64_t leaf_table[] = {
};
/** map ATRAC-X channel id to internal channel layout */
-static const uint64_t oma_chid_to_native_layout[7] = {
- AV_CH_LAYOUT_MONO,
- AV_CH_LAYOUT_STEREO,
- AV_CH_LAYOUT_SURROUND,
- AV_CH_LAYOUT_4POINT0,
- AV_CH_LAYOUT_5POINT1_BACK,
- AV_CH_LAYOUT_6POINT1_BACK,
- AV_CH_LAYOUT_7POINT1
+static const AVChannelLayout oma_chid_to_native_layout[7] = {
+ AV_CHANNEL_LAYOUT_MONO,
+ AV_CHANNEL_LAYOUT_STEREO,
+ AV_CHANNEL_LAYOUT_SURROUND,
+ AV_CHANNEL_LAYOUT_4POINT0,
+ AV_CHANNEL_LAYOUT_5POINT1_BACK,
+ AV_CHANNEL_LAYOUT_6POINT1_BACK,
+ AV_CHANNEL_LAYOUT_7POINT1
};
-/** map ATRAC-X channel id to total number of channels */
-static const int oma_chid_to_num_channels[7] = { 1, 2, 3, 4, 6, 7, 8 };
-
typedef struct OMAContext {
uint64_t content_start;
int encrypted;
@@ -474,8 +471,7 @@ static int oma_read_header(AVFormatContext *s)
/* get stereo coding mode, 1 for joint-stereo */
jsflag = (codec_params >> 17) & 1;
- st->codecpar->channels = 2;
- st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO;
+ st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO;
st->codecpar->sample_rate = samplerate;
st->codecpar->bit_rate = st->codecpar->sample_rate * framesize / (1024 / 8);
@@ -501,8 +497,8 @@ static int oma_read_header(AVFormatContext *s)
"Invalid ATRAC-X channel id: %"PRIu32"\n", channel_id);
return AVERROR_INVALIDDATA;
}
- st->codecpar->channel_layout = oma_chid_to_native_layout[channel_id - 1];
- st->codecpar->channels = oma_chid_to_num_channels[channel_id - 1];
+ av_channel_layout_copy(&st->codecpar->ch_layout,
+ &oma_chid_to_native_layout[channel_id - 1]);
framesize = ((codec_params & 0x3FF) * 8) + 8;
samplerate = ff_oma_srate_tab[(codec_params >> 13) & 7] * 100;
if (!samplerate) {
@@ -519,8 +515,7 @@ static int oma_read_header(AVFormatContext *s)
break;
case OMA_CODECID_LPCM:
/* PCM 44.1 kHz 16 bit stereo big-endian */
- st->codecpar->channels = 2;
- st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO;
+ st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO;
st->codecpar->sample_rate = 44100;
framesize = 1024;
/* bit rate = sample rate x PCM block align (= 4) x 8 */
@@ -530,16 +525,14 @@ static int oma_read_header(AVFormatContext *s)
avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate);
break;
case OMA_CODECID_ATRAC3AL:
- st->codecpar->channels = 2;
- st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO;
+ st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO;
st->codecpar->sample_rate = 44100;
avpriv_set_pts_info(st, 64, 1, 44100);
oc->read_packet = aal_read_packet;
framesize = 4096;
break;
case OMA_CODECID_ATRAC3PAL:
- st->codecpar->channel_layout = AV_CH_LAYOUT_STEREO;
- st->codecpar->channels = 2;
+ st->codecpar->ch_layout = (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO;
st->codecpar->sample_rate = 44100;
avpriv_set_pts_info(st, 64, 1, 44100);
oc->read_packet = aal_read_packet;
diff --git a/libavformat/omaenc.c b/libavformat/omaenc.c
index 1c4edcac5c..246f5195fb 100644
--- a/libavformat/omaenc.c
+++ b/libavformat/omaenc.c
@@ -58,7 +58,7 @@ static av_cold int oma_write_header(AVFormatContext *s)
switch (par->codec_tag) {
case OMA_CODECID_ATRAC3:
- if (par->channels != 2) {
+ if (par->ch_layout.nb_channels != 2) {
av_log(s, AV_LOG_ERROR, "ATRAC3 in OMA is only supported with 2 channels\n");
return AVERROR(EINVAL);
}
@@ -78,7 +78,7 @@ static av_cold int oma_write_header(AVFormatContext *s)
case OMA_CODECID_ATRAC3P:
avio_wb32(s->pb, (OMA_CODECID_ATRAC3P << 24) |
(srate_index << 13) |
- (par->channels << 10) |
+ (par->ch_layout.nb_channels << 10) |
(par->block_align/8 - 1));
break;
default: