FFmpeg
Classes | Macros | Typedefs | Variables
atrac3.c File Reference

ATRAC3 compatible decoder. More...

#include <math.h>
#include <stddef.h>
#include <stdio.h>
#include "libavutil/attributes.h"
#include "libavutil/float_dsp.h"
#include "libavutil/libm.h"
#include "avcodec.h"
#include "bytestream.h"
#include "fft.h"
#include "get_bits.h"
#include "internal.h"
#include "atrac.h"
#include "atrac3data.h"

Classes

struct  GainBlock
 
struct  TonalComponent
 
struct  ChannelUnit
 
struct  ATRAC3Context
 

Macros

#define MIN_CHANNELS   1
 
#define MAX_CHANNELS   8
 
#define MAX_JS_PAIRS   8 / 2
 
#define JOINT_STEREO   0x12
 
#define SINGLE   0x2
 
#define SAMPLES_PER_FRAME   1024
 
#define MDCT_SIZE   512
 
#define INTERPOLATE(old, new, nsample)   ((old) + (nsample) * 0.125 * ((new) - (old)))
 

Typedefs

typedef struct GainBlock GainBlock
 
typedef struct TonalComponent TonalComponent
 
typedef struct ChannelUnit ChannelUnit
 
typedef struct ATRAC3Context ATRAC3Context
 

Variables

AVCodec ff_atrac3_decoder
 
AVCodec ff_atrac3al_decoder
 

Detailed Description

ATRAC3 compatible decoder.

This decoder handles Sony's ATRAC3 data.

Container formats used to store ATRAC3 data: RealMedia (.rm), RIFF WAV (.wav, .at3), Sony OpenMG (.oma, .aa3).

To use this decoder, a calling application must supply the extradata bytes provided in the containers above.

Variable Documentation

§ ff_atrac3_decoder

AVCodec ff_atrac3_decoder
Initial value:
= {
.name = "atrac3",
.long_name = NULL_IF_CONFIG_SMALL("ATRAC3 (Adaptive TRansform Acoustic Coding 3)"),
.type = AVMEDIA_TYPE_AUDIO,
.id = AV_CODEC_ID_ATRAC3,
.priv_data_size = sizeof(ATRAC3Context),
.init = atrac3_decode_init,
.close = atrac3_decode_close,
.decode = atrac3_decode_frame,
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
AV_SAMPLE_FMT_NONE },
}
float, planar
Definition: samplefmt.h:69
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
AVSampleFormat
Audio sample formats.
Definition: samplefmt.h:58
#define AV_CODEC_CAP_SUBFRAMES
Codec can output multiple frames per AVPacket Normally demuxers return one frame at a time...
Definition: avcodec.h:1002
Definition: atrac3.c:87
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
Definition: avcodec.h:959

§ ff_atrac3al_decoder

AVCodec ff_atrac3al_decoder
Initial value:
= {
.name = "atrac3al",
.long_name = NULL_IF_CONFIG_SMALL("ATRAC3 AL (Adaptive TRansform Acoustic Coding 3 Advanced Lossless)"),
.type = AVMEDIA_TYPE_AUDIO,
.id = AV_CODEC_ID_ATRAC3AL,
.priv_data_size = sizeof(ATRAC3Context),
.init = atrac3_decode_init,
.close = atrac3_decode_close,
.decode = atrac3al_decode_frame,
.sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
AV_SAMPLE_FMT_NONE },
}
float, planar
Definition: samplefmt.h:69
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
AVSampleFormat
Audio sample formats.
Definition: samplefmt.h:58
#define AV_CODEC_CAP_SUBFRAMES
Codec can output multiple frames per AVPacket Normally demuxers return one frame at a time...
Definition: avcodec.h:1002
Definition: atrac3.c:87
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
Definition: avcodec.h:959