FFmpeg
Loading...
Searching...
No Matches
mpegaudioenc.c File Reference

The simplest mpeg audio layer 2 encoder. More...

#include "config.h"
#include "config_components.h"
#include "libavutil/avassert.h"
#include "libavutil/channel_layout.h"
#include "avcodec.h"
#include "codec_internal.h"
#include "encode.h"
#include "put_bits.h"
#include "mpegaudio.h"
#include "mpegaudiodsp.h"
#include "mpegaudiodata.h"
#include "mpegaudiotab.h"

Go to the source code of this file.

Data Structures

struct  MpegAudioContext

Macros

#define FRAC_BITS   15 /* fractional bits for sb_samples and dct */
#define WFRAC_BITS   14 /* fractional bits for window */
#define MUL(a, b)
#define SAMPLES_BUF_SIZE   4096
#define IS_FIXED(s)
#define P   15
#define WSHIFT   (WFRAC_BITS + 15 - FRAC_BITS)
#define SB_NOTALLOCATED   0
#define SB_ALLOCATED   1
#define SB_NOMORE   2

Functions

static av_cold int mpa_encode_init (AVCodecContext *avctx)
static void idct32 (int *out, int *tab)
static void filter (MpegAudioContext *s, int ch, const short *samples, int incr)
static void compute_scale_factors (MpegAudioContext *s, unsigned char scale_code[SBLIMIT], unsigned char scale_factors[SBLIMIT][3], int sb_samples[3][12][SBLIMIT], int sblimit)
static void psycho_acoustic_model (MpegAudioContext *s, short smr[SBLIMIT])
static unsigned compute_bit_allocation (MpegAudioContext *s, short smr1[MPA_MAX_CHANNELS][SBLIMIT], unsigned char bit_alloc[MPA_MAX_CHANNELS][SBLIMIT], int *padding)
static av_always_inline void encode_subbands (MpegAudioContext *const s, PutBitContext *const p, const uint8_t bit_alloc[MPA_MAX_CHANNELS][SBLIMIT], int is_fixed)
 Quantization & write sub band samples.
static void encode_frame (MpegAudioContext *s, uint8_t *buf, unsigned buf_size, unsigned char bit_alloc[MPA_MAX_CHANNELS][SBLIMIT], int padding)
static int mpa_encode_frame (AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr)

Variables

static const FFCodecDefault mp2_defaults []

Detailed Description

The simplest mpeg audio layer 2 encoder.

Definition in file mpegaudioenc.c.

Macro Definition Documentation

◆ FRAC_BITS

#define FRAC_BITS   15 /* fractional bits for sb_samples and dct */

Definition at line 38 of file mpegaudioenc.c.

◆ WFRAC_BITS

#define WFRAC_BITS   14 /* fractional bits for window */

Definition at line 39 of file mpegaudioenc.c.

◆ MUL

#define MUL ( a,
b )
Value:
(((int64_t)(a) * (int64_t)(b)) >> FRAC_BITS)
long long int64_t
Definition coverity.c:34
#define FRAC_BITS
int a
#define b
Definition input.c:43

Definition at line 48 of file mpegaudioenc.c.

Referenced by idct32().

◆ SAMPLES_BUF_SIZE

#define SAMPLES_BUF_SIZE   4096

Definition at line 50 of file mpegaudioenc.c.

Referenced by filter().

◆ IS_FIXED

#define IS_FIXED ( s)
Value:
#define s(width, name)
Definition cbs_vp9.c:198
#define CONFIG_MP2FIXED_ENCODER
#define CONFIG_MP2_ENCODER

Definition at line 82 of file mpegaudioenc.c.

Referenced by encode_frame(), and mpa_encode_init().

◆ P

◆ WSHIFT

#define WSHIFT   (WFRAC_BITS + 15 - FRAC_BITS)

Definition at line 322 of file mpegaudioenc.c.

Referenced by filter().

◆ SB_NOTALLOCATED

#define SB_NOTALLOCATED   0

Definition at line 503 of file mpegaudioenc.c.

Referenced by compute_bit_allocation().

◆ SB_ALLOCATED

#define SB_ALLOCATED   1

Definition at line 504 of file mpegaudioenc.c.

Referenced by compute_bit_allocation().

◆ SB_NOMORE

#define SB_NOMORE   2

Definition at line 505 of file mpegaudioenc.c.

Referenced by compute_bit_allocation().

Function Documentation

◆ mpa_encode_init()

av_cold int mpa_encode_init ( AVCodecContext * avctx)
static

Definition at line 84 of file mpegaudioenc.c.

◆ idct32()

void idct32 ( int * out,
int * tab )
static

Definition at line 203 of file mpegaudioenc.c.

Referenced by filter().

◆ filter()

void filter ( MpegAudioContext * s,
int ch,
const short * samples,
int incr )
static

Definition at line 324 of file mpegaudioenc.c.

◆ compute_scale_factors()

void compute_scale_factors ( MpegAudioContext * s,
unsigned char scale_code[SBLIMIT],
unsigned char scale_factors[SBLIMIT][3],
int sb_samples[3][12][SBLIMIT],
int sblimit )
static

Definition at line 377 of file mpegaudioenc.c.

Referenced by mpa_encode_frame().

◆ psycho_acoustic_model()

void psycho_acoustic_model ( MpegAudioContext * s,
short smr[SBLIMIT] )
static

Definition at line 493 of file mpegaudioenc.c.

Referenced by mpa_encode_frame().

◆ compute_bit_allocation()

unsigned compute_bit_allocation ( MpegAudioContext * s,
short smr1[MPA_MAX_CHANNELS][SBLIMIT],
unsigned char bit_alloc[MPA_MAX_CHANNELS][SBLIMIT],
int * padding )
static

Definition at line 510 of file mpegaudioenc.c.

Referenced by mpa_encode_frame().

◆ encode_subbands()

av_always_inline void encode_subbands ( MpegAudioContext *const s,
PutBitContext *const p,
const uint8_t bit_alloc[MPA_MAX_CHANNELS][SBLIMIT],
int is_fixed )
static

Quantization & write sub band samples.

Definition at line 604 of file mpegaudioenc.c.

Referenced by encode_frame().

◆ encode_frame()

void encode_frame ( MpegAudioContext * s,
uint8_t * buf,
unsigned buf_size,
unsigned char bit_alloc[MPA_MAX_CHANNELS][SBLIMIT],
int padding )
static

Definition at line 671 of file mpegaudioenc.c.

Referenced by mpa_encode_frame().

◆ mpa_encode_frame()

int mpa_encode_frame ( AVCodecContext * avctx,
AVPacket * avpkt,
const AVFrame * frame,
int * got_packet_ptr )
static

Definition at line 755 of file mpegaudioenc.c.

Variable Documentation

◆ mp2_defaults

const FFCodecDefault mp2_defaults[]
static
Initial value:
= {
{ "b", "0" },
{ NULL },
}
#define NULL
Definition coverity.c:32

Definition at line 790 of file mpegaudioenc.c.