mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/ffv1: Support >8bit rice golomb
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
967e5e8f6f
commit
a5c0ed2122
|
@ -54,8 +54,8 @@
|
||||||
#define AC_RANGE_DEFAULT_TAB_FORCE -2
|
#define AC_RANGE_DEFAULT_TAB_FORCE -2
|
||||||
|
|
||||||
typedef struct VlcState {
|
typedef struct VlcState {
|
||||||
|
uint32_t error_sum;
|
||||||
int16_t drift;
|
int16_t drift;
|
||||||
uint16_t error_sum;
|
|
||||||
int8_t bias;
|
int8_t bias;
|
||||||
uint8_t count;
|
uint8_t count;
|
||||||
} VlcState;
|
} VlcState;
|
||||||
|
|
|
@ -248,7 +248,7 @@ static inline void put_vlc_symbol(PutBitContext *pb, VlcState *const state,
|
||||||
i += i;
|
i += i;
|
||||||
}
|
}
|
||||||
|
|
||||||
av_assert2(k <= 13);
|
av_assert2(k <= 16);
|
||||||
|
|
||||||
code = v ^ ((2 * state->drift + state->count) >> 31);
|
code = v ^ ((2 * state->drift + state->count) >> 31);
|
||||||
|
|
||||||
|
@ -707,10 +707,10 @@ static av_cold int encode_init(AVCodecContext *avctx)
|
||||||
}
|
}
|
||||||
av_assert0(s->bits_per_raw_sample >= 8);
|
av_assert0(s->bits_per_raw_sample >= 8);
|
||||||
|
|
||||||
if (s->bits_per_raw_sample > 8) {
|
if (s->bits_per_raw_sample > (s->version > 3 ? 16 : 8)) {
|
||||||
if (s->ac == AC_GOLOMB_RICE) {
|
if (s->ac == AC_GOLOMB_RICE) {
|
||||||
av_log(avctx, AV_LOG_INFO,
|
av_log(avctx, AV_LOG_INFO,
|
||||||
"bits_per_raw_sample > 8, forcing range coder\n");
|
"high bits_per_raw_sample, forcing range coder\n");
|
||||||
s->ac = AC_RANGE_CUSTOM_TAB;
|
s->ac = AC_RANGE_CUSTOM_TAB;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue