21 #define BITSTREAM_WRITER_LE 75 const int16_t *ptr = (
const int16_t *)frame->
data[0];
79 ret = ptr[sample] >> 8;
90 int ret, i, out_bytes, cur_chan, res, samples;
94 cur_chan = 0, res = 0, samples = 0;
100 for (i = 0; i < avctx->
channels; i++) {
110 uint32_t k, unary, outval;
123 #define PRED(x, k) (int32_t)((((uint64_t)(x) << (k)) - (x)) >> (k)) 133 outval = (value > 0) ? (value << 1) - 1: -value << 1;
137 rice->
sum0 += outval - (rice->
sum0 >> 4);
147 rice->
sum1 += outval - (rice->
sum1 >> 4);
153 unary = 1 + (outval >> k);
155 if (pkt_size < INT_MAX/2) {
167 put_bits(&pb, unary, (1 << unary) - 1);
190 avpkt->
size = out_bytes + 4;
static void av_unused put_bits32(PutBitContext *s, uint32_t value)
Write exactly 32 bits into a bitstream.
static const char * format[]
This structure describes decoded (raw) audio or video data.
static void put_bits(Jpeg2000EncoderContext *s, int val, int n)
put n times val bit
#define AV_LOG_WARNING
Something somehow does not look correct.
static av_cold int init(AVCodecContext *avctx)
static int32_t get_sample(const AVFrame *frame, int sample, enum AVSampleFormat format)
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.
int ff_alloc_packet2(AVCodecContext *avctx, AVPacket *avpkt, int64_t size, int64_t min_size)
Check AVPacket size and/or allocate data.
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, int clip)
enum AVSampleFormat sample_fmt
audio sample format
int64_t duration
Duration of this packet in AVStream->time_base units, 0 if unknown.
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user).
Public header for CRC hash function implementation.
av_cold void ff_ttaencdsp_init(TTAEncDSPContext *c)
static int put_bits_left(PutBitContext *s)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
const char * name
Name of the codec implementation.
static int put_bits_count(PutBitContext *s)
static av_cold int tta_encode_close(AVCodecContext *avctx)
const uint32_t ff_tta_shift_1[]
#define AV_CODEC_CAP_SMALL_LAST_FRAME
Codec can be fed a final frame with a smaller size.
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.
int frame_size
Number of samples per channel in an audio frame.
Libavcodec external API header.
AVSampleFormat
Audio sample formats.
int sample_rate
samples per second
const uint8_t ff_tta_filter_configs[]
main external API structure.
void av_packet_unref(AVPacket *pkt)
Wipe the packet.
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.
common internal api header.
static void flush_put_bits(PutBitContext *s)
Pad the end of the output stream with zeros.
static av_cold int tta_encode_init(AVCodecContext *avctx)
#define AV_CODEC_CAP_LOSSLESS
Codec is lossless.
static void init_put_bits(PutBitContext *s, uint8_t *buffer, int buffer_size)
Initialize the PutBitContext s.
int channels
number of audio channels
static enum AVSampleFormat sample_fmts[]
static av_always_inline int64_t ff_samples_to_time_base(AVCodecContext *avctx, int64_t samples)
Rescale from sample rate to AVCodecContext.time_base.
#define av_malloc_array(a, b)
void ff_tta_filter_init(TTAFilter *c, int32_t shift)
void(* filter_process)(int32_t *qm, int32_t *dx, int32_t *dl, int32_t *error, int32_t *in, int32_t shift, int32_t round)
static int tta_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr)
This structure stores compressed data.
int nb_samples
number of audio samples (per channel) described by this frame
int64_t pts
Presentation timestamp in AVStream->time_base units; the time at which the decompressed packet will b...