libavcodec/mpegaudioenc.c File Reference

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

#include "avcodec.h"
#include "internal.h"
#include "put_bits.h"
#include "mpegaudio.h"
#include "mpegaudiodata.h"
#include "mpegaudiotab.h"

Go to the source code of this file.

Data Structures

struct  MpegAudioContext

Defines

#define FRAC_BITS   15
#define WFRAC_BITS   14
#define MUL(a, b)   (((int64_t)(a) * (int64_t)(b)) >> FRAC_BITS)
#define SAMPLES_BUF_SIZE   4096
#define USE_FLOATS
#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 (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 void compute_bit_allocation (MpegAudioContext *s, short smr1[MPA_MAX_CHANNELS][SBLIMIT], unsigned char bit_alloc[MPA_MAX_CHANNELS][SBLIMIT], int *padding)
static void encode_frame (MpegAudioContext *s, 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)
static av_cold int MPA_encode_close (AVCodecContext *avctx)

Variables

static const AVCodecDefault mp2_defaults []
AVCodec ff_mp2_encoder


Detailed Description

The simplest mpeg audio layer 2 encoder.

Definition in file mpegaudioenc.c.


Define Documentation

#define FRAC_BITS   15

Definition at line 31 of file mpegaudioenc.c.

#define MUL ( a,
 )     (((int64_t)(a) * (int64_t)(b)) >> FRAC_BITS)

Definition at line 38 of file mpegaudioenc.c.

Referenced by idct32(), and idctRowCondDC().

#define SAMPLES_BUF_SIZE   4096

Definition at line 40 of file mpegaudioenc.c.

Referenced by filter().

#define SB_ALLOCATED   1

Definition at line 494 of file mpegaudioenc.c.

Referenced by compute_bit_allocation().

#define SB_NOMORE   2

Definition at line 495 of file mpegaudioenc.c.

Referenced by compute_bit_allocation().

#define SB_NOTALLOCATED   0

Definition at line 493 of file mpegaudioenc.c.

Referenced by compute_bit_allocation().

#define USE_FLOATS

Definition at line 62 of file mpegaudioenc.c.

#define WFRAC_BITS   14

Definition at line 32 of file mpegaudioenc.c.

#define WSHIFT   (WFRAC_BITS + 15 - FRAC_BITS)

Definition at line 313 of file mpegaudioenc.c.

Referenced by filter().


Function Documentation

static void 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 500 of file mpegaudioenc.c.

Referenced by MPA_encode_frame().

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

Definition at line 368 of file mpegaudioenc.c.

Referenced by MPA_encode_frame().

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

Definition at line 596 of file mpegaudioenc.c.

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

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

Definition at line 194 of file mpegaudioenc.c.

Referenced by filter().

static av_cold int MPA_encode_close ( AVCodecContext avctx  )  [static]

Definition at line 769 of file mpegaudioenc.c.

static int MPA_encode_frame ( AVCodecContext avctx,
AVPacket avpkt,
const AVFrame frame,
int *  got_packet_ptr 
) [static]

Definition at line 732 of file mpegaudioenc.c.

static av_cold int MPA_encode_init ( AVCodecContext avctx  )  [static]

Definition at line 67 of file mpegaudioenc.c.

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

Definition at line 483 of file mpegaudioenc.c.

Referenced by MPA_encode_frame().


Variable Documentation

Initial value:

 {
    .name                  = "mp2",
    .type                  = AVMEDIA_TYPE_AUDIO,
    .id                    = CODEC_ID_MP2,
    .priv_data_size        = sizeof(MpegAudioContext),
    .init                  = MPA_encode_init,
    .encode2               = MPA_encode_frame,
    .close                 = MPA_encode_close,
    .sample_fmts           = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
                                                            AV_SAMPLE_FMT_NONE },
    .supported_samplerates = (const int[]){
        44100, 48000,  32000, 22050, 24000, 16000, 0
    },
    .long_name             = NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
    .defaults              = mp2_defaults,
}

Definition at line 782 of file mpegaudioenc.c.

const AVCodecDefault mp2_defaults[] [static]

Initial value:

 {
    { "b",    "128k" },
    { NULL },
}

Definition at line 777 of file mpegaudioenc.c.


Generated on Fri Oct 26 02:47:58 2012 for FFmpeg by  doxygen 1.5.8