30 #define BITSTREAM_READER_LE
43 #define FORMAT_SIMPLE 1
44 #define FORMAT_ENCRYPTED 2
79 if (CRC != (crc ^ 0xFFFFFFFFU)) {
89 uint64_t crc = UINT64_MAX,
poly = 0x42F0E1EBA9EA3693
U;
94 crc ^= (uint64_t)*pass++ << 56;
95 for (i = 0; i < 8; i++)
96 crc = (crc << 1) ^ (poly & (((int64_t) crc) >> 63));
99 return crc ^ UINT64_MAX;
150 av_log(avctx,
AV_LOG_ERROR,
"Missing password for encrypted stream. Please use the -password option\n");
218 int *got_frame_ptr,
AVPacket *avpkt)
223 int buf_size = avpkt->
size;
255 for (i = 0; i < 8; i++)
266 uint32_t unary,
depth, k;
290 value = (unary << k) +
get_bits(&gb, k);
297 rice->
sum1 += value - (rice->
sum1 >> 4);
304 rice->
sum0 += value - (rice->
sum0 >> 4);
312 *p = 1 + ((value >> 1) ^ ((value & 1) - 1));
319 #define PRED(x, k) (int32_t)((((uint64_t)(x) << (k)) - (x)) >> (k))
321 case 1: *p +=
PRED(*predictor, 4);
break;
323 case 3: *p +=
PRED(*predictor, 5);
break;
335 for (*p += *r / 2; r > p - s->
channels; r--)
360 *samples++ = *p + 0x80;
364 int16_t *samples = (int16_t *)frame->
data[0];
408 #define OFFSET(x) offsetof(TTAContext, x)
409 #define DEC (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM)
static unsigned int show_bits_long(GetBitContext *s, int n)
Show 0-32 bits.
static int tta_check_crc(TTAContext *s, const uint8_t *buf, int buf_size)
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
This structure describes decoded (raw) audio or video data.
ptrdiff_t const GLvoid * data
static unsigned int get_bits(GetBitContext *s, int n)
Read 1-25 bits.
static int init_thread_copy(AVCodecContext *avctx)
#define LIBAVUTIL_VERSION_INT
static void skip_bits_long(GetBitContext *s, int n)
static av_cold int init(AVCodecContext *avctx)
static av_cold int tta_decode_init(AVCodecContext *avctx)
static int tta_decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *avpkt)
void ff_tta_rice_init(TTARice *c, uint32_t k0, uint32_t k1)
int bits_per_raw_sample
Bits per sample/pixel of internal libavcodec pixel/sample format.
#define AV_CH_LAYOUT_STEREO
static const int64_t tta_channel_layouts[7]
int block_align
number of bytes per packet if constant and known or 0 Used by some WAV based audio codecs...
const char * class_name
The name of the class; usually it is the same name as the context structure type to which the AVClass...
static av_cold int tta_decode_close(AVCodecContext *avctx)
enum AVSampleFormat sample_fmt
audio sample format
void(* ttafilter_process_dec)(int32_t *qm, int32_t *dx, int32_t *dl, int32_t *error, int32_t *in, int32_t shift, int32_t round)
static av_cold int end(AVCodecContext *avctx)
Multithreading support functions.
static uint64_t tta_check_crc64(uint8_t *pass)
uint8_t * extradata
some codecs need / can use extradata like Huffman tables.
static void filter(int16_t *output, ptrdiff_t out_stride, int16_t *low, ptrdiff_t low_stride, int16_t *high, ptrdiff_t high_stride, int len, uint8_t clip)
#define AV_CH_LOW_FREQUENCY
static const AVOption options[]
bitstream reader API header.
av_cold void ff_ttadsp_init(TTADSPContext *c)
int bits_per_coded_sample
bits per sample/pixel from the demuxer (needed for huffyuv).
static void predictor(uint8_t *src, int size)
static int get_bits_left(GetBitContext *gb)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
static int allocate_buffers(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
#define AV_CH_LAYOUT_QUAD
const char * name
Name of the codec implementation.
#define AV_CODEC_CAP_FRAME_THREADS
Codec supports frame-level multithreading.
uint64_t channel_layout
Audio channel layout.
#define ONLY_IF_THREADS_ENABLED(x)
Define a function with only the non-default version specified.
const uint32_t ff_tta_shift_1[]
int err_recognition
Error recognition; may misdetect some more or less valid parts as errors.
GLsizei GLboolean const GLfloat * value
const uint32_t *const ff_tta_shift_16
uint32_t av_crc(const AVCRC *ctx, uint32_t crc, const uint8_t *buffer, size_t length)
Calculate the CRC of a block.
#define AV_EF_EXPLODE
abort decoding on minor error detection
#define AV_CH_LAYOUT_5POINT1_BACK
Libavcodec external API header.
static const AVClass tta_decoder_class
int sample_rate
samples per second
const uint8_t ff_tta_filter_configs[]
static int init_get_bits8(GetBitContext *s, const uint8_t *buffer, int byte_size)
Initialize GetBitContext.
int ff_thread_get_buffer(AVCodecContext *avctx, ThreadFrame *f, int flags)
Wrapper around get_buffer() for frame-multithreaded codecs.
main external API structure.
Describe the class of an AVClass context structure.
#define AV_EF_CRCCHECK
Verify checksums embedded in the bitstream (could be of either encoded or decoded data...
static unsigned int get_bits_long(GetBitContext *s, int n)
Read 0-32 bits.
static av_const int sign_extend(int val, unsigned bits)
#define AV_CH_BACK_CENTER
#define AV_CH_LAYOUT_7POINT1_WIDE
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
const AVCRC * av_crc_get_table(AVCRCId crc_id)
Get an initialized standard CRC table.
static int decode(AVCodecContext *avctx, void *data, int *got_sub, AVPacket *avpkt)
common internal api header.
static int get_unary(GetBitContext *gb, int stop, int len)
Get unary code of limited length.
int channels
number of audio channels
static const uint8_t * align_get_bits(GetBitContext *s)
static void * av_mallocz_array(size_t nmemb, size_t size)
#define av_malloc_array(a, b)
void ff_tta_filter_init(TTAFilter *c, int32_t shift)
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_RL32
This structure stores compressed data.
int nb_samples
number of audio samples (per channel) described by this frame
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.