21#define BITSTREAM_WRITER_LE
77 const int16_t *ptr = (
const int16_t *)
frame->data[0];
92 int ret,
i, out_bytes, cur_chan, res, samples;
96 cur_chan = 0, res = 0, samples = 0;
103 s->ch_ctx[
i].predictor = 0;
112 uint32_t k, unary, outval;
118 if (cur_chan < avctx->ch_layout.nb_channels - 1)
125#define PRED(x, k) (int32_t)((((uint64_t)(x) << (k)) - (x)) >> (k))
127 case 1:
value -=
PRED(
c->predictor, 4);
break;
129 case 3:
value -=
PRED(
c->predictor, 5);
break;
139 rice->
sum0 += outval - (rice->
sum0 >> 4);
149 rice->
sum1 += outval - (rice->
sum1 >> 4);
155 unary = 1 + (outval >> k);
157 if (pkt_size < INT_MAX/2) {
169 put_bits(&pb, unary, (1U << unary) - 1);
180 if (cur_chan < avctx->ch_layout.nb_channels - 1)
191 avpkt->
size = out_bytes + 4;
static const char *const format[]
const FFCodec ff_tta_encoder
static av_cold void close(AVCodecParserContext *s)
Libavcodec external API header.
#define i(width, name, range_min, range_max)
#define FF_CODEC_ENCODE_CB(func)
#define CODEC_LONG_NAME(str)
#define CODEC_SAMPLEFMTS(...)
Public header for CRC hash function implementation.
int(* init)(AVBSFContext *ctx)
int ff_alloc_packet(AVCodecContext *avctx, AVPacket *avpkt, int64_t size)
Check AVPacket size and allocate data.
#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE
This encoder can reorder user opaque values from input AVFrames and return them with corresponding ou...
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
#define AV_CODEC_CAP_SMALL_LAST_FRAME
Codec can be fed a final frame with a smaller size.
void av_packet_unref(AVPacket *pkt)
Wipe the packet.
const AVCRC * av_crc_get_table(AVCRCId crc_id)
Get an initialized standard CRC table.
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_LOG_WARNING
Something somehow does not look correct.
AVSampleFormat
Audio sample formats.
@ AV_SAMPLE_FMT_S32
signed 32 bits
@ AV_SAMPLE_FMT_U8
unsigned 8 bits
@ AV_SAMPLE_FMT_S16
signed 16 bits
static void put_bits(Jpeg2000EncoderContext *s, int val, int n)
put n times val bit
static av_cold int tta_encode_init(AVCodecContext *avctx)
static int32_t get_sample(const AVFrame *frame, int sample, enum AVSampleFormat format)
static int tta_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr)
static av_cold int tta_encode_close(AVCodecContext *avctx)
Memory handling functions.
static void init_put_bits(PutBitContext *s, uint8_t *buffer, int buffer_size)
Initialize the PutBitContext s.
static int put_bits_left(PutBitContext *s)
static void flush_put_bits(PutBitContext *s)
Pad the end of the output stream with zeros.
static int put_bytes_output(const PutBitContext *s)
static av_unused void put_bits32(PutBitContext *s, uint32_t value)
Write exactly 32 bits into a bitstream.
int nb_channels
Number of channels in this layout.
main external API structure.
AVChannelLayout ch_layout
Audio channel layout.
enum AVSampleFormat sample_fmt
audio sample format
int bits_per_raw_sample
Bits per sample/pixel of internal libavcodec pixel/sample format.
int sample_rate
samples per second
int frame_size
Number of samples per channel in an audio frame.
This structure describes decoded (raw) audio or video data.
This structure stores compressed data.
#define av_malloc_array(a, b)
void(* filter)(uint8_t *src, ptrdiff_t stride, int qscale)
const uint32_t *const ff_tta_shift_16
const uint32_t ff_tta_shift_1[]
void ff_tta_rice_init(TTARice *c, uint32_t k0, uint32_t k1)
void ff_tta_filter_init(TTAFilter *c, int32_t shift)
const uint8_t ff_tta_filter_configs[]
av_cold void ff_ttaencdsp_init(TTAEncDSPContext *c)