avformat/oma: Move stuff only used by demuxer to demuxer

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
Andreas Rheinhardt 2021-02-18 02:01:09 +01:00
parent 81a86c7e1e
commit 22d8010f13
3 changed files with 17 additions and 21 deletions

View File

@ -19,10 +19,9 @@
*/
#include <stddef.h>
#include "libavcodec/codec_id.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 };
@ -37,17 +36,3 @@ const AVCodecTag ff_oma_codec_tags[] = {
};
const AVCodecTag *const ff_oma_codec_tags_list[] = { ff_oma_codec_tags, NULL };
/** map ATRAC-X channel id to internal channel layout */
const uint64_t ff_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
};
/** 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};

View File

@ -44,7 +44,4 @@ extern const uint16_t ff_oma_srate_tab[8];
extern const AVCodecTag ff_oma_codec_tags[];
extern const AVCodecTag *const ff_oma_codec_tags_list[];
extern const uint64_t ff_oma_chid_to_native_layout[7];
extern const int ff_oma_chid_to_num_channels[7];
#endif /* AVFORMAT_OMA_H */

View File

@ -59,6 +59,20 @@ static const uint64_t leaf_table[] = {
0x1573cd93da7df623, 0x47f98d79620dd535
};
/** 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
};
/** 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;
@ -492,8 +506,8 @@ static int oma_read_header(AVFormatContext *s)
ret = AVERROR_INVALIDDATA;
goto fail;
}
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;
if (!samplerate) {