xine-lib 1.2.11
Data Structures | Macros | Functions | Variables
xine_dts_decoder.c File Reference

DTS decoder for xine. More...

#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <xine/xine_internal.h>
#include <xine/xineutils.h>
#include <xine/audio_out.h>
#include <xine/buffer.h>
#include "bswap.h"
#include <dts.h>

Data Structures

struct  dts_decoder_t
 

Macros

#define _DEFAULT_SOURCE   1
 
#define _XOPEN_SOURCE   500
 
#define _BSD_SOURCE   1
 
#define LOG_MODULE   "libdts"
 
#define LOG_VERBOSE
 
#define MAX_AC5_FRAME   4096
 

Functions

static void dts_reset (audio_decoder_t *const this_gen)
 
static void dts_discontinuity (audio_decoder_t *const this_gen)
 
static void float_to_int (const float *const _f, int16_t *const s16, const int num_channels)
 Convert a array of floating point samples into 16-bit signed integer samples. More...
 
static void mute_channel (int16_t *const s16, const int num_channels)
 
static void dts_decode_frame (dts_decoder_t *this, const int64_t pts)
 
static void dts_decode_data (audio_decoder_t *this_gen, buf_element_t *buf)
 
static void dts_dispose (audio_decoder_t *this_gen)
 
static audio_decoder_topen_plugin (audio_decoder_class_t *class_gen, xine_stream_t *stream)
 
static void * init_plugin (xine_t *xine, const void *data)
 

Variables

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

Detailed Description

DTS decoder for xine.

Author
Joachim Koenig (2001-09-04)
James Courtier-Dutton (2001-12-09)

Macro Definition Documentation

◆ _BSD_SOURCE

#define _BSD_SOURCE   1

◆ _DEFAULT_SOURCE

#define _DEFAULT_SOURCE   1

◆ _XOPEN_SOURCE

#define _XOPEN_SOURCE   500

◆ LOG_MODULE

#define LOG_MODULE   "libdts"

◆ LOG_VERBOSE

#define LOG_VERBOSE

◆ MAX_AC5_FRAME

#define MAX_AC5_FRAME   4096

Function Documentation

◆ dts_decode_data()

static void dts_decode_data ( audio_decoder_t this_gen,
buf_element_t buf 
)
static

◆ dts_decode_frame()

static void dts_decode_frame ( dts_decoder_t this,
const int64_t  pts 
)
static

◆ dts_discontinuity()

static void dts_discontinuity ( audio_decoder_t *const  this_gen)
static

Referenced by open_plugin().

◆ dts_dispose()

static void dts_dispose ( audio_decoder_t this_gen)
static

References NULL, and xine_container_of.

Referenced by open_plugin().

◆ dts_reset()

static void dts_reset ( audio_decoder_t *const  this_gen)
static

Referenced by open_plugin().

◆ float_to_int()

static void float_to_int ( const float *const  _f,
int16_t *const  s16,
const int  num_channels 
)
inlinestatic

Convert a array of floating point samples into 16-bit signed integer samples.

Parameters
fFloating point samples array (origin)
s1616-bit signed integer samples array (destination)
num_channelsNumber of channels present in the stream
Todo:
This same work is being done in many decoders to adapt the output of the decoder to what the audio output can actually use, this should be done by the audio_output loop, not by the decoders.
Note
This is subtly different from the function with the same name in xine_musepack_decoder.c

References INT16_MAX, and INT16_MIN.

Referenced by dts_decode_frame().

◆ init_plugin()

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

◆ mute_channel()

static void mute_channel ( int16_t *const  s16,
const int  num_channels 
)
inlinestatic

Referenced by dts_decode_frame().

◆ 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_DTS
Definition: buffer.h:214

◆ 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_dts_decoder.c:577

◆ EXPORTED

const plugin_info_t xine_plugin_info [] EXPORTED
Initial value:
= {
{ PLUGIN_NONE, 0, NULL, 0, NULL, NULL }
}
static void * init_plugin(xine_t *xine, const void *data)
Definition: xine_dts_decoder.c:564
static const decoder_info_t dec_info_audio
Definition: xine_dts_decoder.c:581
#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