xine-lib 1.2.11
Data Structures | Macros | Typedefs | Functions | Variables
xine_faad_decoder.c File Reference
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include "latm.c"
#include <xine/xine_internal.h>
#include <xine/audio_out.h>
#include <xine/buffer.h>
#include <xine/xineutils.h>
#include "common.h"
#include "structs.h"
#include "syntax.h"

Data Structures

struct  faad_class_s
 
struct  faad_decoder_s
 

Macros

#define LOG_MODULE   "libfaad"
 
#define LOG_VERBOSE
 
#define FAAD_MIN_STREAMSIZE   768 /* 6144 bits/channel */
 
#define FAAD_PTS_LD   3
 
#define FAAD_PTS_SIZE   (1 << FAAD_PTS_LD)
 
#define FAAD_PTS_MASK   (FAAD_PTS_SIZE - 1)
 
#define ADTS_FAKE_CFG
 
#define sat16(v)   (((v + 0x8000) & ~0xffff) ? ((v) >> 31) ^ 0x7fff : (v))
 
#define GET1(i, j)   v = ((int64_t)g1 * (int64_t)p[i]) >> 32; q[j] = sat16 (v)
 
#define GET2(i, j)   v = ((int64_t)g1 * (int64_t)(p[i] + p[i + 1])) >> 32; q[j] = sat16 (v)
 
#define GET1M(i, j)   v = (m + (int64_t)g1 * (int64_t)p[i]) >> 32; q[j] = sat16 (v)
 
#define GET2M(i, j, l)   v = ((int64_t)g1 * (int64_t)p[i] + (int64_t)g2 * (int64_t)(m + p[j])) >> 32; q[l] = sat16 (v)
 
#define GET1(i, j)   v = g1 * p[i]; q[j] = sat16 (v)
 
#define GET2(i, j)   v = g1 * (p[i] + p[i + 1]); q[j] = sat16 (v)
 
#define GET1M(i, j)   v = m + g1 * p[i]; q[j] = sat16 (v)
 
#define GET2M(i, j, l)   v = g1 * p[i] + g2 * (m + p[j]); q[l] = sat16 (v)
 

Typedefs

typedef struct faad_class_s faad_class_t
 
typedef struct faad_decoder_s faad_decoder_t
 

Functions

static void faad_pts_reset (faad_decoder_t *this)
 
static void faad_pts_add (faad_decoder_t *this, int64_t pts, int bytes)
 
static int64_t faad_pts_get (faad_decoder_t *this, int bytes_left)
 
static int faad_map_channels (faad_decoder_t *this)
 
static void faad_reset (audio_decoder_t *this_gen)
 
static void faad_meta_info_set (faad_decoder_t *this)
 
static void faad_close_output (faad_decoder_t *this)
 
static int faad_open_output (faad_decoder_t *this)
 
static int faad_reopen_dec (faad_decoder_t *this)
 
static int faad_apply_conf (faad_decoder_t *this, uint8_t *conf, int len)
 
static int faad_apply_frame (faad_decoder_t *this, uint8_t *frame, int len)
 
static int faad_open_dec (faad_decoder_t *this)
 
static void faad_decode_audio (faad_decoder_t *this, int end_frame)
 
static void faad_get_conf (faad_decoder_t *this, const uint8_t *d, int len)
 
static void faad_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
 
static void faad_discontinuity (audio_decoder_t *this_gen)
 
static void faad_dispose (audio_decoder_t *this_gen)
 
static audio_decoder_topen_plugin (audio_decoder_class_t *class_gen, xine_stream_t *stream)
 
static void gain_update (faad_class_t *this)
 
static void gain_cb (void *user_data, xine_cfg_entry_t *entry)
 
static void faad_class_ref (faad_class_t *this)
 
static void faad_class_unref (audio_decoder_class_t *this_gen)
 
static void * faad_init_plugin (xine_t *xine, const void *data, const char *id)
 
static void * latm_init_class (xine_t *xine, const void *data)
 
static void * faad_init_class (xine_t *xine, const void *data)
 

Variables

static const uint32_t audio_types []
 
static const decoder_info_t dec_info_audio
 
static const uint32_t latm_audio_types []
 
static const decoder_info_t dec_info_latm_audio
 
const plugin_info_t xine_plugin_info[] EXPORTED
 

Macro Definition Documentation

◆ ADTS_FAKE_CFG

#define ADTS_FAKE_CFG

◆ FAAD_MIN_STREAMSIZE

#define FAAD_MIN_STREAMSIZE   768 /* 6144 bits/channel */

◆ FAAD_PTS_LD

#define FAAD_PTS_LD   3

◆ FAAD_PTS_MASK

#define FAAD_PTS_MASK   (FAAD_PTS_SIZE - 1)

◆ FAAD_PTS_SIZE

#define FAAD_PTS_SIZE   (1 << FAAD_PTS_LD)

◆ GET1 [1/2]

#define GET1 (   i,
 
)    v = ((int64_t)g1 * (int64_t)p[i]) >> 32; q[j] = sat16 (v)

◆ GET1 [2/2]

#define GET1 (   i,
 
)    v = g1 * p[i]; q[j] = sat16 (v)

◆ GET1M [1/2]

#define GET1M (   i,
 
)    v = (m + (int64_t)g1 * (int64_t)p[i]) >> 32; q[j] = sat16 (v)

◆ GET1M [2/2]

#define GET1M (   i,
 
)    v = m + g1 * p[i]; q[j] = sat16 (v)

◆ GET2 [1/2]

#define GET2 (   i,
 
)    v = ((int64_t)g1 * (int64_t)(p[i] + p[i + 1])) >> 32; q[j] = sat16 (v)

◆ GET2 [2/2]

#define GET2 (   i,
 
)    v = g1 * (p[i] + p[i + 1]); q[j] = sat16 (v)

◆ GET2M [1/2]

#define GET2M (   i,
  j,
 
)    v = ((int64_t)g1 * (int64_t)p[i] + (int64_t)g2 * (int64_t)(m + p[j])) >> 32; q[l] = sat16 (v)

◆ GET2M [2/2]

#define GET2M (   i,
  j,
 
)    v = g1 * p[i] + g2 * (m + p[j]); q[l] = sat16 (v)

◆ LOG_MODULE

#define LOG_MODULE   "libfaad"

◆ LOG_VERBOSE

#define LOG_VERBOSE

◆ sat16

#define sat16 (   v)    (((v + 0x8000) & ~0xffff) ? ((v) >> 31) ^ 0x7fff : (v))

Typedef Documentation

◆ faad_class_t

typedef struct faad_class_s faad_class_t

◆ faad_decoder_t

Function Documentation

◆ faad_apply_conf()

static int faad_apply_conf ( faad_decoder_t this,
uint8_t *  conf,
int  len 
)
static

◆ faad_apply_frame()

static int faad_apply_frame ( faad_decoder_t this,
uint8_t *  frame,
int  len 
)
static

◆ faad_class_ref()

static void faad_class_ref ( faad_class_t this)
static

References faad_class_s::refs.

Referenced by faad_init_plugin().

◆ faad_class_unref()

static void faad_class_unref ( audio_decoder_class_t this_gen)
static

◆ faad_close_output()

static void faad_close_output ( faad_decoder_t this)
static

◆ faad_decode_audio()

static void faad_decode_audio ( faad_decoder_t this,
int  end_frame 
)
static

◆ faad_decode_data()

static void faad_decode_data ( audio_decoder_t this_gen,
buf_element_t buf 
)
static

◆ faad_discontinuity()

static void faad_discontinuity ( audio_decoder_t this_gen)
static

References faad_pts_reset(), and xine_container_of.

Referenced by open_plugin().

◆ faad_dispose()

static void faad_dispose ( audio_decoder_t this_gen)
static

◆ faad_get_conf()

static void faad_get_conf ( faad_decoder_t this,
const uint8_t *  d,
int  len 
)
static

◆ faad_init_class()

static void * faad_init_class ( xine_t xine,
const void *  data 
)
static

References faad_init_plugin().

◆ faad_init_plugin()

static void * faad_init_plugin ( xine_t xine,
const void *  data,
const char *  id 
)
static

◆ faad_map_channels()

static int faad_map_channels ( faad_decoder_t this)
static

◆ faad_meta_info_set()

static void faad_meta_info_set ( faad_decoder_t this)
static

◆ faad_open_dec()

static int faad_open_dec ( faad_decoder_t this)
static

◆ faad_open_output()

static int faad_open_output ( faad_decoder_t this)
static

◆ faad_pts_add()

static void faad_pts_add ( faad_decoder_t this,
int64_t  pts,
int  bytes 
)
static

References FAAD_PTS_MASK.

Referenced by faad_decode_data().

◆ faad_pts_get()

static int64_t faad_pts_get ( faad_decoder_t this,
int  bytes_left 
)
static

References FAAD_PTS_MASK.

Referenced by faad_decode_audio().

◆ faad_pts_reset()

static void faad_pts_reset ( faad_decoder_t this)
static

◆ faad_reopen_dec()

static int faad_reopen_dec ( faad_decoder_t this)
static

References _, XINE_VERBOSITY_LOG, and xprintf.

Referenced by faad_apply_conf(), and faad_apply_frame().

◆ faad_reset()

static void faad_reset ( audio_decoder_t this_gen)
static

◆ gain_cb()

static void gain_cb ( void *  user_data,
xine_cfg_entry_t entry 
)
static

◆ gain_update()

static void gain_update ( faad_class_t this)
static

◆ latm_init_class()

static void * latm_init_class ( xine_t xine,
const void *  data 
)
static

References faad_init_plugin().

◆ open_plugin()

static audio_decoder_t * open_plugin ( audio_decoder_class_t class_gen,
xine_stream_t stream 
)
static

Variable Documentation

◆ audio_types

const uint32_t audio_types[]
static
Initial value:
= {
}
#define BUF_AUDIO_AAC
Definition: buffer.h:223

◆ dec_info_audio

const decoder_info_t dec_info_audio
static
Initial value:
= {
.supported_types = audio_types,
.priority = 8,
}
static const uint32_t audio_types[]
Definition: xine_faad_decoder.c:1196

◆ dec_info_latm_audio

const decoder_info_t dec_info_latm_audio
static
Initial value:
= {
.supported_types = latm_audio_types,
.priority = 1,
}
static const uint32_t latm_audio_types[]
Definition: xine_faad_decoder.c:1205

◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED
Initial value:
= {
{ PLUGIN_NONE, 0, NULL, 0, NULL, NULL }
}
static void * latm_init_class(xine_t *xine, const void *data)
Definition: xine_faad_decoder.c:1188
static void * faad_init_class(xine_t *xine, const void *data)
Definition: xine_faad_decoder.c:1192
static const decoder_info_t dec_info_audio
Definition: xine_faad_decoder.c:1200
static const decoder_info_t dec_info_latm_audio
Definition: xine_faad_decoder.c:1209
#define XINE_VERSION_CODE
Definition: xine_internal.h:57
NULL
Definition: xine_plugin.c:78
#define PLUGIN_AUDIO_DECODER
Definition: xine_plugin.h:32
#define PLUGIN_NONE
Definition: xine_plugin.h:29

◆ latm_audio_types

const uint32_t latm_audio_types[]
static
Initial value:
= {
}
#define BUF_AUDIO_AAC_LATM
Definition: buffer.h:276