Go to the documentation of this file.
21 #ifndef AVCODEC_DCADEC_H
22 #define AVCODEC_DCADEC_H
39 #define DCA_PACKET_CORE 0x01
40 #define DCA_PACKET_EXSS 0x02
41 #define DCA_PACKET_XLL 0x04
42 #define DCA_PACKET_LBR 0x08
43 #define DCA_PACKET_MASK 0x0f
45 #define DCA_PACKET_RECOVERY 0x10
46 #define DCA_PACKET_RESIDUAL 0x20
80 int *coeff_l,
int nsamples,
int ch_mask);
82 int *coeff_l,
int nsamples,
int ch_mask);
85 int output_mask,
const int *coeff_l);
94 if (((p1 | p2) & 7) || p1 < 0 || p2 >
s->size_in_bits || p2 - p1 < 16)
96 if (
av_crc(dca->
crctab, 0xffff,
s->buffer + p1 / 8, (p2 - p1) / 8))
static void skip_bits_long(GetBitContext *s, int n)
Skips the specified number of bits.
#define AV_EF_CAREFUL
consider things that violate the spec, are fast to calculate and have not been seen in the wild as er...
int err_recognition
Error recognition; may misdetect some more or less valid parts as errors.
static int get_bits_count(const GetBitContext *s)
This structure describes decoded (raw) audio or video data.
int request_channel_layout
Converted from avctx.request_channel_layout.
static int ff_dca_seek_bits(GetBitContext *s, int p)
static int ff_dca_check_crc(AVCodecContext *avctx, GetBitContext *s, int p1, int p2)
int core_only
Core only decoding flag.
DCALbrDecoder lbr
LBR decoder context.
DCAExssParser exss
EXSS parser context.
uint8_t * buffer
Packet buffer.
void ff_dca_downmix_to_stereo_fixed(DCADSPContext *dcadsp, int32_t **samples, int *coeff_l, int nsamples, int ch_mask)
Describe the class of an AVClass context structure.
int ff_dca_export_downmix_matrix(AVCodecContext *avctx, AVFrame *frame, enum DCADownMixType downmix_type, int output_mask, const int *coeff_l)
DCAXllDecoder xll
XLL decoder context.
#define AV_EF_CRCCHECK
Verify checksums embedded in the bitstream (could be of either encoded or decoded data,...
int ff_dca_set_channel_layout(AVCodecContext *avctx, int *ch_remap, int dca_mask)
AVChannelLayout downmix_layout
An AVChannelLayout holds information about the channel layout of audio data.
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
main external API structure.
uint32_t av_crc(const AVCRC *ctx, uint32_t crc, const uint8_t *buffer, size_t length)
Calculate the CRC of a block.
Filter the word “frame” indicates either a video frame or a group of audio samples
IDirect3DDxgiInterfaceAccess _COM_Outptr_ void ** p
DCACoreDecoder core
Core decoder context.
void ff_dca_downmix_to_stereo_float(AVFloatDSPContext *fdsp, float **samples, int *coeff_l, int nsamples, int ch_mask)