Go to the documentation of this file.
25 int plane_index,
int bits)
35 if (
c->bytestream_end -
c->bytestream <
w * 35) {
46 if (
s->slice_coding_mode == 1) {
47 for (x = 0; x <
w; x++) {
58 for (x = 0; x <
w; x++) {
102 ff_dlog(
s->avctx,
"count:%d index:%d, mode:%d, x:%d pos:%d\n",
129 const int ring_size =
s->context_model ? 3 : 2;
131 int lbd =
s->bits_per_raw_sample <= 8;
132 int packed = !
src[1];
133 int bits =
s->bits_per_raw_sample > 0 ?
s->bits_per_raw_sample : 8;
141 (
w + 6) *
sizeof(*
RENAME(
s->sample_buffer)));
143 for (y = 0; y <
h; y++) {
148 for (x = 0; x <
w; x++) {
151 unsigned v = *((
const uint32_t*)(
src[0] + x*4 +
stride[0]*y));
154 r = (v >> 16) & 0xFF;
157 const uint16_t *p = ((
const uint16_t*)(
src[0] + x*packed_size +
stride[0]*y));
164 g = *((
const uint16_t *)(
src[0] + x*2 +
stride[0]*y));
165 b = *((
const uint16_t *)(
src[1] + x*2 +
stride[1]*y));
166 r = *((
const uint16_t *)(
src[2] + x*2 +
stride[2]*y));
168 a = *((
const uint16_t *)(
src[3] + x*2 +
stride[3]*y));
170 b = *((
const uint16_t *)(
src[0] + x*2 +
stride[0]*y));
171 g = *((
const uint16_t *)(
src[1] + x*2 +
stride[1]*y));
172 r = *((
const uint16_t *)(
src[2] + x*2 +
stride[2]*y));
175 if (
s->slice_coding_mode != 1) {
178 g += (
b *
s->slice_rct_by_coef +
r *
s->slice_rct_ry_coef) >> 2;
192 if (lbd &&
s->slice_coding_mode == 0)
static av_always_inline av_flatten void put_symbol_inline(RangeCoder *c, uint8_t *state, int v, int is_signed, uint64_t rc_stat[256][2], uint64_t rc_stat2[32][2])
static void put_bits(Jpeg2000EncoderContext *s, int val, int n)
put n times val bit
uint8_t(* state)[CONTEXT_SIZE]
static int ring_size(RingBuffer *ring)
static int put_bytes_left(const PutBitContext *s, int round_up)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
static av_always_inline int fold(int diff, int bits)
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 default minimum maximum flags name is the option keep it simple and lowercase description are in without and describe what they for example set the foo of the bar offset is the offset of the field in your context
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
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 put_vlc_symbol(PutBitContext *pb, VlcState *const state, int v, int bits)
#define i(width, name, range_min, range_max)
static int put_bits_count(PutBitContext *s)
static av_always_inline void predict(PredictorState *ps, float *coef, int output_enable)
static av_always_inline int diff(const uint32_t a, const uint32_t b)
const uint8_t ff_log2_run[41]
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
#define AV_CODEC_FLAG_PASS1
Use internal 2pass ratecontrol in first pass mode.