xine-lib 1.2.13-20230125hg15249
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.
 
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:579

◆ 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:566
static const decoder_info_t dec_info_audio
Definition xine_dts_decoder.c:583
#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