lavc/ffv1: drop redundant PlaneContext.quant_table
It is a copy of FFV1Context.quant_tables[quant_table_index].
This commit is contained in:
parent
4b9f7c7e3a
commit
a411fc5a84
@ -59,7 +59,6 @@ typedef struct VlcState {
|
|||||||
} VlcState;
|
} VlcState;
|
||||||
|
|
||||||
typedef struct PlaneContext {
|
typedef struct PlaneContext {
|
||||||
int16_t quant_table[MAX_CONTEXT_INPUTS][256];
|
|
||||||
int quant_table_index;
|
int quant_table_index;
|
||||||
int context_count;
|
int context_count;
|
||||||
uint8_t (*state)[CONTEXT_SIZE];
|
uint8_t (*state)[CONTEXT_SIZE];
|
||||||
|
@ -29,25 +29,25 @@ static inline int RENAME(predict)(TYPE *src, TYPE *last)
|
|||||||
return mid_pred(L, L + T - LT, T);
|
return mid_pred(L, L + T - LT, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int RENAME(get_context)(PlaneContext *p, TYPE *src,
|
static inline int RENAME(get_context)(const int16_t quant_table[MAX_CONTEXT_INPUTS][256],
|
||||||
TYPE *last, TYPE *last2)
|
TYPE *src, TYPE *last, TYPE *last2)
|
||||||
{
|
{
|
||||||
const int LT = last[-1];
|
const int LT = last[-1];
|
||||||
const int T = last[0];
|
const int T = last[0];
|
||||||
const int RT = last[1];
|
const int RT = last[1];
|
||||||
const int L = src[-1];
|
const int L = src[-1];
|
||||||
|
|
||||||
if (p->quant_table[3][127] || p->quant_table[4][127]) {
|
if (quant_table[3][127] || quant_table[4][127]) {
|
||||||
const int TT = last2[0];
|
const int TT = last2[0];
|
||||||
const int LL = src[-2];
|
const int LL = src[-2];
|
||||||
return p->quant_table[0][(L - LT) & 0xFF] +
|
return quant_table[0][(L - LT) & 0xFF] +
|
||||||
p->quant_table[1][(LT - T) & 0xFF] +
|
quant_table[1][(LT - T) & 0xFF] +
|
||||||
p->quant_table[2][(T - RT) & 0xFF] +
|
quant_table[2][(T - RT) & 0xFF] +
|
||||||
p->quant_table[3][(LL - L) & 0xFF] +
|
quant_table[3][(LL - L) & 0xFF] +
|
||||||
p->quant_table[4][(TT - T) & 0xFF];
|
quant_table[4][(TT - T) & 0xFF];
|
||||||
} else
|
} else
|
||||||
return p->quant_table[0][(L - LT) & 0xFF] +
|
return quant_table[0][(L - LT) & 0xFF] +
|
||||||
p->quant_table[1][(LT - T) & 0xFF] +
|
quant_table[1][(LT - T) & 0xFF] +
|
||||||
p->quant_table[2][(T - RT) & 0xFF];
|
quant_table[2][(T - RT) & 0xFF];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,7 +117,8 @@ static int is_input_end(FFV1Context *s, GetBitContext *gb)
|
|||||||
#define RENAME(name) name ## 32
|
#define RENAME(name) name ## 32
|
||||||
#include "ffv1dec_template.c"
|
#include "ffv1dec_template.c"
|
||||||
|
|
||||||
static int decode_plane(FFV1Context *s, FFV1SliceContext *sc,
|
static int decode_plane(FFV1Context *f,
|
||||||
|
FFV1Context *s, FFV1SliceContext *sc,
|
||||||
GetBitContext *gb,
|
GetBitContext *gb,
|
||||||
uint8_t *src, int w, int h, int stride, int plane_index,
|
uint8_t *src, int w, int h, int stride, int plane_index,
|
||||||
int pixel_stride)
|
int pixel_stride)
|
||||||
@ -141,13 +142,13 @@ static int decode_plane(FFV1Context *s, FFV1SliceContext *sc,
|
|||||||
sample[0][w] = sample[0][w - 1];
|
sample[0][w] = sample[0][w - 1];
|
||||||
|
|
||||||
if (s->avctx->bits_per_raw_sample <= 8) {
|
if (s->avctx->bits_per_raw_sample <= 8) {
|
||||||
int ret = decode_line(s, sc, gb, w, sample, plane_index, 8);
|
int ret = decode_line(f, s, sc, gb, w, sample, plane_index, 8);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
for (x = 0; x < w; x++)
|
for (x = 0; x < w; x++)
|
||||||
src[x*pixel_stride + stride * y] = sample[1][x];
|
src[x*pixel_stride + stride * y] = sample[1][x];
|
||||||
} else {
|
} else {
|
||||||
int ret = decode_line(s, sc, gb, w, sample, plane_index, s->avctx->bits_per_raw_sample);
|
int ret = decode_line(f, s, sc, gb, w, sample, plane_index, s->avctx->bits_per_raw_sample);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
if (s->packed_at_lsb) {
|
if (s->packed_at_lsb) {
|
||||||
@ -207,7 +208,6 @@ static int decode_slice_header(const FFV1Context *f, FFV1Context *fs,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
p->quant_table_index = idx;
|
p->quant_table_index = idx;
|
||||||
memcpy(p->quant_table, f->quant_tables[idx], sizeof(p->quant_table));
|
|
||||||
context_count = f->context_count[idx];
|
context_count = f->context_count[idx];
|
||||||
|
|
||||||
if (p->context_count < context_count) {
|
if (p->context_count < context_count) {
|
||||||
@ -335,29 +335,29 @@ static int decode_slice(AVCodecContext *c, void *arg)
|
|||||||
const int chroma_height = AV_CEIL_RSHIFT(height, f->chroma_v_shift);
|
const int chroma_height = AV_CEIL_RSHIFT(height, f->chroma_v_shift);
|
||||||
const int cx = x >> f->chroma_h_shift;
|
const int cx = x >> f->chroma_h_shift;
|
||||||
const int cy = y >> f->chroma_v_shift;
|
const int cy = y >> f->chroma_v_shift;
|
||||||
decode_plane(fs, sc, &gb, p->data[0] + ps*x + y*p->linesize[0], width, height, p->linesize[0], 0, 1);
|
decode_plane(f, fs, sc, &gb, p->data[0] + ps*x + y*p->linesize[0], width, height, p->linesize[0], 0, 1);
|
||||||
|
|
||||||
if (f->chroma_planes) {
|
if (f->chroma_planes) {
|
||||||
decode_plane(fs, sc, &gb, p->data[1] + ps*cx+cy*p->linesize[1], chroma_width, chroma_height, p->linesize[1], 1, 1);
|
decode_plane(f, fs, sc, &gb, p->data[1] + ps*cx+cy*p->linesize[1], chroma_width, chroma_height, p->linesize[1], 1, 1);
|
||||||
decode_plane(fs, sc, &gb, p->data[2] + ps*cx+cy*p->linesize[2], chroma_width, chroma_height, p->linesize[2], 1, 1);
|
decode_plane(f, fs, sc, &gb, p->data[2] + ps*cx+cy*p->linesize[2], chroma_width, chroma_height, p->linesize[2], 1, 1);
|
||||||
}
|
}
|
||||||
if (fs->transparency)
|
if (fs->transparency)
|
||||||
decode_plane(fs, sc, &gb, p->data[3] + ps*x + y*p->linesize[3], width, height, p->linesize[3], (f->version >= 4 && !f->chroma_planes) ? 1 : 2, 1);
|
decode_plane(f, fs, sc, &gb, p->data[3] + ps*x + y*p->linesize[3], width, height, p->linesize[3], (f->version >= 4 && !f->chroma_planes) ? 1 : 2, 1);
|
||||||
} else if (f->colorspace == 0) {
|
} else if (f->colorspace == 0) {
|
||||||
decode_plane(fs, sc, &gb, p->data[0] + ps*x + y*p->linesize[0] , width, height, p->linesize[0], 0, 2);
|
decode_plane(f, fs, sc, &gb, p->data[0] + ps*x + y*p->linesize[0] , width, height, p->linesize[0], 0, 2);
|
||||||
decode_plane(fs, sc, &gb, p->data[0] + ps*x + y*p->linesize[0] + 1, width, height, p->linesize[0], 1, 2);
|
decode_plane(f, fs, sc, &gb, p->data[0] + ps*x + y*p->linesize[0] + 1, width, height, p->linesize[0], 1, 2);
|
||||||
} else if (f->use32bit) {
|
} else if (f->use32bit) {
|
||||||
uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0],
|
uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0],
|
||||||
p->data[1] + ps * x + y * p->linesize[1],
|
p->data[1] + ps * x + y * p->linesize[1],
|
||||||
p->data[2] + ps * x + y * p->linesize[2],
|
p->data[2] + ps * x + y * p->linesize[2],
|
||||||
p->data[3] + ps * x + y * p->linesize[3] };
|
p->data[3] + ps * x + y * p->linesize[3] };
|
||||||
decode_rgb_frame32(fs, sc, &gb, planes, width, height, p->linesize);
|
decode_rgb_frame32(f, fs, sc, &gb, planes, width, height, p->linesize);
|
||||||
} else {
|
} else {
|
||||||
uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0],
|
uint8_t *planes[4] = { p->data[0] + ps * x + y * p->linesize[0],
|
||||||
p->data[1] + ps * x + y * p->linesize[1],
|
p->data[1] + ps * x + y * p->linesize[1],
|
||||||
p->data[2] + ps * x + y * p->linesize[2],
|
p->data[2] + ps * x + y * p->linesize[2],
|
||||||
p->data[3] + ps * x + y * p->linesize[3] };
|
p->data[3] + ps * x + y * p->linesize[3] };
|
||||||
decode_rgb_frame(fs, sc, &gb, planes, width, height, p->linesize);
|
decode_rgb_frame(f, fs, sc, &gb, planes, width, height, p->linesize);
|
||||||
}
|
}
|
||||||
if (fs->ac != AC_GOLOMB_RICE && f->version > 2) {
|
if (fs->ac != AC_GOLOMB_RICE && f->version > 2) {
|
||||||
int v;
|
int v;
|
||||||
@ -830,11 +830,7 @@ static int read_header(FFV1Context *f)
|
|||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
p->quant_table_index = idx;
|
p->quant_table_index = idx;
|
||||||
memcpy(p->quant_table, f->quant_tables[idx],
|
|
||||||
sizeof(p->quant_table));
|
|
||||||
context_count = f->context_count[idx];
|
context_count = f->context_count[idx];
|
||||||
} else {
|
|
||||||
memcpy(p->quant_table, f->quant_tables[0], sizeof(p->quant_table));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (f->version <= 2) {
|
if (f->version <= 2) {
|
||||||
|
@ -23,11 +23,14 @@
|
|||||||
#include "ffv1_template.c"
|
#include "ffv1_template.c"
|
||||||
|
|
||||||
static av_always_inline int
|
static av_always_inline int
|
||||||
RENAME(decode_line)(FFV1Context *s, FFV1SliceContext *sc, GetBitContext *gb,
|
RENAME(decode_line)(FFV1Context *f,
|
||||||
|
FFV1Context *s, FFV1SliceContext *sc,
|
||||||
|
GetBitContext *gb,
|
||||||
int w, TYPE *sample[2], int plane_index, int bits)
|
int w, TYPE *sample[2], int plane_index, int bits)
|
||||||
{
|
{
|
||||||
PlaneContext *const p = &s->plane[plane_index];
|
PlaneContext *const p = &s->plane[plane_index];
|
||||||
RangeCoder *const c = &s->c;
|
RangeCoder *const c = &s->c;
|
||||||
|
const int16_t (*quant_table)[256] = f->quant_tables[p->quant_table_index];
|
||||||
int x;
|
int x;
|
||||||
int run_count = 0;
|
int run_count = 0;
|
||||||
int run_mode = 0;
|
int run_mode = 0;
|
||||||
@ -57,7 +60,8 @@ RENAME(decode_line)(FFV1Context *s, FFV1SliceContext *sc, GetBitContext *gb,
|
|||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
context = RENAME(get_context)(p, sample[1] + x, sample[0] + x, sample[1] + x);
|
context = RENAME(get_context)(quant_table,
|
||||||
|
sample[1] + x, sample[0] + x, sample[1] + x);
|
||||||
if (context < 0) {
|
if (context < 0) {
|
||||||
context = -context;
|
context = -context;
|
||||||
sign = 1;
|
sign = 1;
|
||||||
@ -127,7 +131,8 @@ RENAME(decode_line)(FFV1Context *s, FFV1SliceContext *sc, GetBitContext *gb,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int RENAME(decode_rgb_frame)(FFV1Context *s, FFV1SliceContext *sc,
|
static int RENAME(decode_rgb_frame)(FFV1Context *f,
|
||||||
|
FFV1Context *s, FFV1SliceContext *sc,
|
||||||
GetBitContext *gb,
|
GetBitContext *gb,
|
||||||
uint8_t *src[4], int w, int h, int stride[4])
|
uint8_t *src[4], int w, int h, int stride[4])
|
||||||
{
|
{
|
||||||
@ -158,9 +163,9 @@ static int RENAME(decode_rgb_frame)(FFV1Context *s, FFV1SliceContext *sc,
|
|||||||
sample[p][1][-1]= sample[p][0][0 ];
|
sample[p][1][-1]= sample[p][0][0 ];
|
||||||
sample[p][0][ w]= sample[p][0][w-1];
|
sample[p][0][ w]= sample[p][0][w-1];
|
||||||
if (lbd && s->slice_coding_mode == 0)
|
if (lbd && s->slice_coding_mode == 0)
|
||||||
ret = RENAME(decode_line)(s, sc, gb, w, sample[p], (p + 1)/2, 9);
|
ret = RENAME(decode_line)(f, s, sc, gb, w, sample[p], (p + 1)/2, 9);
|
||||||
else
|
else
|
||||||
ret = RENAME(decode_line)(s, sc, gb, w, sample[p], (p + 1)/2, bits + (s->slice_coding_mode != 1));
|
ret = RENAME(decode_line)(f, s, sc, gb, w, sample[p], (p + 1)/2, bits + (s->slice_coding_mode != 1));
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -269,7 +269,8 @@ static inline void put_vlc_symbol(PutBitContext *pb, VlcState *const state,
|
|||||||
#define RENAME(name) name ## 32
|
#define RENAME(name) name ## 32
|
||||||
#include "ffv1enc_template.c"
|
#include "ffv1enc_template.c"
|
||||||
|
|
||||||
static int encode_plane(FFV1Context *s, FFV1SliceContext *sc,
|
static int encode_plane(FFV1Context *f,
|
||||||
|
FFV1Context *s, FFV1SliceContext *sc,
|
||||||
const uint8_t *src, int w, int h,
|
const uint8_t *src, int w, int h,
|
||||||
int stride, int plane_index, int pixel_stride)
|
int stride, int plane_index, int pixel_stride)
|
||||||
{
|
{
|
||||||
@ -289,7 +290,7 @@ static int encode_plane(FFV1Context *s, FFV1SliceContext *sc,
|
|||||||
if (s->bits_per_raw_sample <= 8) {
|
if (s->bits_per_raw_sample <= 8) {
|
||||||
for (x = 0; x < w; x++)
|
for (x = 0; x < w; x++)
|
||||||
sample[0][x] = src[x * pixel_stride + stride * y];
|
sample[0][x] = src[x * pixel_stride + stride * y];
|
||||||
if((ret = encode_line(s, sc, w, sample, plane_index, 8)) < 0)
|
if((ret = encode_line(f, s, sc, w, sample, plane_index, 8)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
} else {
|
} else {
|
||||||
if (s->packed_at_lsb) {
|
if (s->packed_at_lsb) {
|
||||||
@ -301,7 +302,7 @@ static int encode_plane(FFV1Context *s, FFV1SliceContext *sc,
|
|||||||
sample[0][x] = ((uint16_t*)(src + stride*y))[x] >> (16 - s->bits_per_raw_sample);
|
sample[0][x] = ((uint16_t*)(src + stride*y))[x] >> (16 - s->bits_per_raw_sample);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if((ret = encode_line(s, sc, w, sample, plane_index, s->bits_per_raw_sample)) < 0)
|
if((ret = encode_line(f, s, sc, w, sample, plane_index, s->bits_per_raw_sample)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -741,7 +742,6 @@ static av_cold int encode_init(AVCodecContext *avctx)
|
|||||||
|
|
||||||
p->quant_table_index = s->context_model;
|
p->quant_table_index = s->context_model;
|
||||||
p->context_count = s->context_count[p->quant_table_index];
|
p->context_count = s->context_count[p->quant_table_index];
|
||||||
memcpy(p->quant_table, s->quant_tables[p->quant_table_index], sizeof(p->quant_table));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ret = ff_ffv1_allocate_initial_states(s)) < 0)
|
if ((ret = ff_ffv1_allocate_initial_states(s)) < 0)
|
||||||
@ -1066,21 +1066,21 @@ retry:
|
|||||||
const int cx = x >> f->chroma_h_shift;
|
const int cx = x >> f->chroma_h_shift;
|
||||||
const int cy = y >> f->chroma_v_shift;
|
const int cy = y >> f->chroma_v_shift;
|
||||||
|
|
||||||
ret = encode_plane(fs, sc, p->data[0] + ps*x + y*p->linesize[0], width, height, p->linesize[0], 0, 1);
|
ret = encode_plane(f, fs, sc, p->data[0] + ps*x + y*p->linesize[0], width, height, p->linesize[0], 0, 1);
|
||||||
|
|
||||||
if (f->chroma_planes) {
|
if (f->chroma_planes) {
|
||||||
ret |= encode_plane(fs, sc, p->data[1] + ps*cx+cy*p->linesize[1], chroma_width, chroma_height, p->linesize[1], 1, 1);
|
ret |= encode_plane(f, fs, sc, p->data[1] + ps*cx+cy*p->linesize[1], chroma_width, chroma_height, p->linesize[1], 1, 1);
|
||||||
ret |= encode_plane(fs, sc, p->data[2] + ps*cx+cy*p->linesize[2], chroma_width, chroma_height, p->linesize[2], 1, 1);
|
ret |= encode_plane(f, fs, sc, p->data[2] + ps*cx+cy*p->linesize[2], chroma_width, chroma_height, p->linesize[2], 1, 1);
|
||||||
}
|
}
|
||||||
if (fs->transparency)
|
if (fs->transparency)
|
||||||
ret |= encode_plane(fs, sc, p->data[3] + ps*x + y*p->linesize[3], width, height, p->linesize[3], 2, 1);
|
ret |= encode_plane(f, fs, sc, p->data[3] + ps*x + y*p->linesize[3], width, height, p->linesize[3], 2, 1);
|
||||||
} else if (c->pix_fmt == AV_PIX_FMT_YA8) {
|
} else if (c->pix_fmt == AV_PIX_FMT_YA8) {
|
||||||
ret = encode_plane(fs, sc, p->data[0] + ps*x + y*p->linesize[0], width, height, p->linesize[0], 0, 2);
|
ret = encode_plane(f, fs, sc, p->data[0] + ps*x + y*p->linesize[0], width, height, p->linesize[0], 0, 2);
|
||||||
ret |= encode_plane(fs, sc, p->data[0] + 1 + ps*x + y*p->linesize[0], width, height, p->linesize[0], 1, 2);
|
ret |= encode_plane(f, fs, sc, p->data[0] + 1 + ps*x + y*p->linesize[0], width, height, p->linesize[0], 1, 2);
|
||||||
} else if (f->use32bit) {
|
} else if (f->use32bit) {
|
||||||
ret = encode_rgb_frame32(fs, sc, planes, width, height, p->linesize);
|
ret = encode_rgb_frame32(f, fs, sc, planes, width, height, p->linesize);
|
||||||
} else {
|
} else {
|
||||||
ret = encode_rgb_frame(fs, sc, planes, width, height, p->linesize);
|
ret = encode_rgb_frame(f, fs, sc, planes, width, height, p->linesize);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
@ -23,7 +23,8 @@
|
|||||||
#include "ffv1_template.c"
|
#include "ffv1_template.c"
|
||||||
|
|
||||||
static av_always_inline int
|
static av_always_inline int
|
||||||
RENAME(encode_line)(FFV1Context *s, FFV1SliceContext *sc,
|
RENAME(encode_line)(FFV1Context *f,
|
||||||
|
FFV1Context *s, FFV1SliceContext *sc,
|
||||||
int w, TYPE *sample[3], int plane_index, int bits)
|
int w, TYPE *sample[3], int plane_index, int bits)
|
||||||
{
|
{
|
||||||
PlaneContext *const p = &s->plane[plane_index];
|
PlaneContext *const p = &s->plane[plane_index];
|
||||||
@ -60,7 +61,8 @@ RENAME(encode_line)(FFV1Context *s, FFV1SliceContext *sc,
|
|||||||
for (x = 0; x < w; x++) {
|
for (x = 0; x < w; x++) {
|
||||||
int diff, context;
|
int diff, context;
|
||||||
|
|
||||||
context = RENAME(get_context)(p, sample[0] + x, sample[1] + x, sample[2] + x);
|
context = RENAME(get_context)(f->quant_tables[p->quant_table_index],
|
||||||
|
sample[0] + x, sample[1] + x, sample[2] + x);
|
||||||
diff = sample[0][x] - RENAME(predict)(sample[0] + x, sample[1] + x);
|
diff = sample[0][x] - RENAME(predict)(sample[0] + x, sample[1] + x);
|
||||||
|
|
||||||
if (context < 0) {
|
if (context < 0) {
|
||||||
@ -124,7 +126,8 @@ RENAME(encode_line)(FFV1Context *s, FFV1SliceContext *sc,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int RENAME(encode_rgb_frame)(FFV1Context *s, FFV1SliceContext *sc,
|
static int RENAME(encode_rgb_frame)(FFV1Context *f,
|
||||||
|
FFV1Context *s, FFV1SliceContext *sc,
|
||||||
const uint8_t *src[4],
|
const uint8_t *src[4],
|
||||||
int w, int h, const int stride[4])
|
int w, int h, const int stride[4])
|
||||||
{
|
{
|
||||||
@ -193,9 +196,9 @@ static int RENAME(encode_rgb_frame)(FFV1Context *s, FFV1SliceContext *sc,
|
|||||||
sample[p][0][-1] = sample[p][1][0 ];
|
sample[p][0][-1] = sample[p][1][0 ];
|
||||||
sample[p][1][ w] = sample[p][1][w-1];
|
sample[p][1][ w] = sample[p][1][w-1];
|
||||||
if (lbd && s->slice_coding_mode == 0)
|
if (lbd && s->slice_coding_mode == 0)
|
||||||
ret = RENAME(encode_line)(s, sc, w, sample[p], (p + 1) / 2, 9);
|
ret = RENAME(encode_line)(f, s, sc, w, sample[p], (p + 1) / 2, 9);
|
||||||
else
|
else
|
||||||
ret = RENAME(encode_line)(s, sc, w, sample[p], (p + 1) / 2, bits + (s->slice_coding_mode != 1));
|
ret = RENAME(encode_line)(f, s, sc, w, sample[p], (p + 1) / 2, bits + (s->slice_coding_mode != 1));
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user