Go to the documentation of this file.
36 xll_delay_nbits =
get_bits(&
s->gb, 5) + 1;
74 if (
s->static_fields_present) {
109 int spkr_mask_nbits = 0;
110 int spkr_remap_nsets;
122 spkr_mask_nbits = (
get_bits(&
s->gb, 2) + 1) << 2;
129 if ((spkr_remap_nsets =
get_bits(&
s->gb, 3)) && !spkr_mask_nbits) {
136 for (
i = 0;
i < spkr_remap_nsets;
i++)
139 for (
i = 0;
i < spkr_remap_nsets;
i++) {
141 int nch_for_remaps =
get_bits(&
s->gb, 5) + 1;
143 for (j = 0; j < nspeakers[
i]; j++) {
183 if (
s->mix_metadata_enabled &&
get_bits1(&
s->gb)) {
203 for (
i = 0;
i <
s->nmixoutconfigs;
i++)
214 for (
i = 0;
i <
s->nmixoutconfigs;
i++) {
215 if (!
s->nmixoutchs[
i]) {
220 for (j = 0; j < nchannels_dmix; j++) {
222 int mix_map_mask =
get_bits(&
s->gb,
s->nmixoutchs[
i]);
398 header_size =
get_bits(&
s->gb, 8 + 4 * wide_hdr) + 1;
406 s->exss_size_nbits = 16 + 4 * wide_hdr;
409 s->exss_size =
get_bits(&
s->gb,
s->exss_size_nbits) + 1;
410 if (
s->exss_size >
size) {
417 if (
s->static_fields_present =
get_bits1(&
s->gb)) {
418 int active_exss_mask[8];
433 if (
s->npresents > 1) {
441 if (
s->nassets > 1) {
448 for (
i = 0;
i <
s->npresents;
i++)
449 active_exss_mask[
i] =
get_bits(&
s->gb,
s->exss_index + 1);
452 for (
i = 0;
i <
s->npresents;
i++)
463 spkr_mask_nbits = (
get_bits(&
s->gb, 2) + 1) << 2;
469 for (
i = 0;
i <
s->nmixoutconfigs;
i++)
479 for (
i = 0;
i <
s->nassets;
i++) {
481 s->assets[
i].asset_size =
get_bits(&
s->gb,
s->exss_size_nbits) + 1;
491 for (
i = 0;
i <
s->nassets;
i++) {
int embedded_6ch
Embedded 6 channels flag.
static void skip_bits_long(GetBitContext *s, int n)
Skips the specified number of bits.
static int get_bits_left(GetBitContext *gb)
static void parse_lbr_parameters(DCAExssParser *s, DCAExssAsset *asset)
int asset_size
Size of encoded asset data.
static unsigned int get_bits_long(GetBitContext *s, int n)
Read 0-32 bits.
static int get_bits_count(const GetBitContext *s)
int spkr_mask_enabled
Speaker mask enabled flag.
int x96_size
Size of X96 extension in extension substream.
static int ff_dca_seek_bits(GetBitContext *s, int p)
int xll_size
Size of XLL data in extension substream.
static int ff_dca_check_crc(AVCodecContext *avctx, GetBitContext *s, int p1, int p2)
int one_to_one_map_ch_to_spkr
One to one channel to speaker mapping flag.
int xbr_size
Size of XBR extension in extension substream.
static void skip_bits(GetBitContext *s, int n)
int lbr_offset
Offset to LBR component from start of substream.
static unsigned int get_bits(GetBitContext *s, int n)
Read 1-25 bits.
static int parse_descriptor(DCAExssParser *s, DCAExssAsset *asset)
int embedded_stereo
Embedded stereo flag.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
static int init_get_bits8(GetBitContext *s, const uint8_t *buffer, int byte_size)
Initialize GetBitContext.
int spkr_mask
Loudspeaker activity mask.
static void parse_xll_parameters(DCAExssParser *s, DCAExssAsset *asset)
#define AVERROR_PATCHWELCOME
Not yet implemented in FFmpeg, patches welcome.
int lbr_size
Size of LBR component in extension substream.
static unsigned int get_bits1(GetBitContext *s)
static int set_exss_offsets(DCAExssAsset *asset)
int core_offset
Offset to core component from start of substream.
int xll_offset
Offset to XLL data from start of substream.
int xll_delay_nframes
Initial XLL decoding delay in frames.
int asset_index
Audio asset identifier.
int max_sample_rate
Maximum sample rate.
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
static void skip_bits1(GetBitContext *s)
int core_size
Size of core component in extension substream.
int ff_dca_exss_parse(DCAExssParser *s, const uint8_t *data, int size)
#define i(width, name, range_min, range_max)
int xll_sync_offset
Number of bytes offset to XLL sync.
int nchannels_total
Total number of channels.
int asset_offset
Offset to asset data from start of substream.
int pcm_bit_res
PCM bit resolution.
int xll_sync_present
XLL sync word present flag.
const uint32_t ff_dca_sampling_freqs[16]
int x96_offset
Offset to X96 extension from start of substream.
#define avpriv_request_sample(...)
int xbr_offset
Offset to XBR extension from start of substream.
int extension_mask
Coding components used in asset.
int xxch_size
Size of XXCH extension in extension substream.
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
int xxch_offset
Offset to XXCH extension from start of substream.
int coding_mode
Coding mode for the asset.
int representation_type
Representation type.
int hd_stream_id
DTS-HD stream ID.
static int ff_dca_count_chs_for_mask(unsigned int mask)
Return number of individual channels in DCASpeakerPair mask.