xine-lib 1.2.11
Data Structures | Macros | Typedefs | Functions
ff_audio_decoder.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <inttypes.h>
#include <string.h>
#include <pthread.h>
#include <math.h>
#include <libavcodec/avcodec.h>
#include <libavutil/mem.h>
#include <xine/xine_internal.h>
#include <xine/buffer.h>
#include <xine/xineutils.h>
#include "bswap.h"
#include "ffmpeg_decoder.h"
#include "ffmpeg_compat.h"

Data Structures

struct  ff_audio_class_t
 
struct  ff_audio_decoder_s
 

Macros

#define LOG_MODULE   "ffmpeg_audio_dec"
 
#define LOG_VERBOSE
 
#define AUDIOBUFSIZE   (64 * 1024)
 
#define MAX_CHANNELS   6
 
#define AAC_MODE_PROBE   -8
 
#define AAC_MODE_OFF   0
 
#define AAC_MODE_RAW   1
 
#define AAC_MODE_ADTS   2
 
#define CLIP_16(v)   ((v + 0x8000) & ~0xffff ? (v >> 31) ^ 0x7fff : v)
 

Typedefs

typedef struct ff_audio_decoder_s ff_audio_decoder_t
 

Functions

static void ff_aac_mode_set (ff_audio_decoder_t *this, int reset)
 
static int ff_audio_open_codec (ff_audio_decoder_t *this, unsigned int codec_type)
 
static int ff_aac_mode_parse (ff_audio_decoder_t *this, uint8_t *buf, int size, int *offs)
 
static void ff_audio_ensure_buffer_size (ff_audio_decoder_t *this, int size)
 
static void ff_audio_handle_special_buffer (ff_audio_decoder_t *this, buf_element_t *buf)
 
static void ff_audio_init_codec (ff_audio_decoder_t *this, unsigned int codec_type)
 
static void ff_handle_header_buffer (ff_audio_decoder_t *this, buf_element_t *buf)
 
static void ff_audio_reset_parser (ff_audio_decoder_t *this)
 
static void ff_audio_output_close (ff_audio_decoder_t *this)
 
static void ff_map_channels (ff_audio_decoder_t *this)
 
static int ff_audio_decode (ff_audio_decoder_t *this, int16_t *decode_buffer, int *decode_buffer_size, uint8_t *buf, int size)
 
static void ff_audio_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
 
static void ff_audio_reset (audio_decoder_t *this_gen)
 
static void ff_audio_discontinuity (audio_decoder_t *this_gen)
 
static void ff_audio_dispose (audio_decoder_t *this_gen)
 
static audio_decoder_tff_audio_open_plugin (audio_decoder_class_t *class_gen, xine_stream_t *stream)
 
static void ff_gain_cb (void *user_data, xine_cfg_entry_t *entry)
 
static void dispose_audio_class (audio_decoder_class_t *this_gen)
 
void * init_audio_plugin (xine_t *xine, const void *data)
 

Macro Definition Documentation

◆ AAC_MODE_ADTS

#define AAC_MODE_ADTS   2

◆ AAC_MODE_OFF

#define AAC_MODE_OFF   0

◆ AAC_MODE_PROBE

#define AAC_MODE_PROBE   -8

◆ AAC_MODE_RAW

#define AAC_MODE_RAW   1

◆ AUDIOBUFSIZE

#define AUDIOBUFSIZE   (64 * 1024)

◆ CLIP_16

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

◆ LOG_MODULE

#define LOG_MODULE   "ffmpeg_audio_dec"

◆ LOG_VERBOSE

#define LOG_VERBOSE

◆ MAX_CHANNELS

#define MAX_CHANNELS   6

Typedef Documentation

◆ ff_audio_decoder_t

Function Documentation

◆ dispose_audio_class()

static void dispose_audio_class ( audio_decoder_class_t this_gen)
static

◆ ff_aac_mode_parse()

static int ff_aac_mode_parse ( ff_audio_decoder_t this,
uint8_t *  buf,
int  size,
int *  offs 
)
static

◆ ff_aac_mode_set()

static void ff_aac_mode_set ( ff_audio_decoder_t this,
int  reset 
)
static

◆ ff_audio_decode()

static int ff_audio_decode ( ff_audio_decoder_t this,
int16_t *  decode_buffer,
int *  decode_buffer_size,
uint8_t *  buf,
int  size 
)
static

◆ ff_audio_decode_data()

static void ff_audio_decode_data ( audio_decoder_t this_gen,
buf_element_t buf 
)
static

◆ ff_audio_discontinuity()

static void ff_audio_discontinuity ( audio_decoder_t this_gen)
static

◆ ff_audio_dispose()

static void ff_audio_dispose ( audio_decoder_t this_gen)
static

◆ ff_audio_ensure_buffer_size()

static void ff_audio_ensure_buffer_size ( ff_audio_decoder_t this,
int  size 
)
static

◆ ff_audio_handle_special_buffer()

static void ff_audio_handle_special_buffer ( ff_audio_decoder_t this,
buf_element_t buf 
)
static

◆ ff_audio_init_codec()

static void ff_audio_init_codec ( ff_audio_decoder_t this,
unsigned int  codec_type 
)
static

◆ ff_audio_open_codec()

static int ff_audio_open_codec ( ff_audio_decoder_t this,
unsigned int  codec_type 
)
static

◆ ff_audio_open_plugin()

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

◆ ff_audio_output_close()

static void ff_audio_output_close ( ff_audio_decoder_t this)
static

◆ ff_audio_reset()

static void ff_audio_reset ( audio_decoder_t this_gen)
static

◆ ff_audio_reset_parser()

static void ff_audio_reset_parser ( ff_audio_decoder_t this)
static

◆ ff_gain_cb()

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

◆ ff_handle_header_buffer()

static void ff_handle_header_buffer ( ff_audio_decoder_t this,
buf_element_t buf 
)
static

◆ ff_map_channels()

static void ff_map_channels ( ff_audio_decoder_t this)
static

◆ init_audio_plugin()

void * init_audio_plugin ( xine_t xine,
const void *  data 
)