xine-lib 1.2.13-20230125hg15249
Data Structures | Macros | 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_t
 
struct  faad_decoder_t
 

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)
 

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_dispose (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 */

Referenced by faad_open_output().

◆ FAAD_PTS_LD

#define FAAD_PTS_LD   3

◆ FAAD_PTS_MASK

#define FAAD_PTS_MASK   (FAAD_PTS_SIZE - 1)

Referenced by faad_pts_add(), and faad_pts_get().

◆ FAAD_PTS_SIZE

#define FAAD_PTS_SIZE   (1 << FAAD_PTS_LD)

◆ GET1 [1/2]

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

◆ GET1 [2/2]

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

◆ GET1M [1/2]

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

◆ GET1M [2/2]

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

◆ GET2 [1/2]

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

◆ GET2 [2/2]

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

◆ GET2M [1/2]

#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)

◆ GET2M [2/2]

#define GET2M ( i,
j,
l )   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))

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_dispose()

static void faad_class_dispose ( 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

◆ 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

◆ 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:1208

◆ 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:1217

◆ 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:1200
static void * faad_init_class(xine_t *xine, const void *data)
Definition xine_faad_decoder.c:1204
static const decoder_info_t dec_info_audio
Definition xine_faad_decoder.c:1212
static const decoder_info_t dec_info_latm_audio
Definition xine_faad_decoder.c:1221
#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