mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec/speedhq: Avoid reversing BE codes for LE bitstream reader
Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
9eb7d8b45d
commit
3977aeb78c
@ -558,40 +558,17 @@ static av_cold void compute_alpha_vlcs(void)
|
|||||||
level_symbols, 2, 2, 288);
|
level_symbols, 2, 2, 288);
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t reverse(uint32_t num, int bits)
|
|
||||||
{
|
|
||||||
return bitswap_32(num) >> (32 - bits);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void reverse_code(const uint16_t *code, const uint8_t *bits,
|
|
||||||
uint16_t *reversed_code, int num_entries)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < num_entries; i++) {
|
|
||||||
reversed_code[i] = reverse(code[i], bits[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static av_cold void speedhq_static_init(void)
|
static av_cold void speedhq_static_init(void)
|
||||||
{
|
{
|
||||||
uint16_t ff_mpeg12_vlc_dc_lum_code_reversed[12];
|
/* Exactly the same as MPEG-2, except for a little-endian reader. */
|
||||||
uint16_t ff_mpeg12_vlc_dc_chroma_code_reversed[12];
|
INIT_CUSTOM_VLC_STATIC(&dc_lum_vlc_le, DC_VLC_BITS, 12,
|
||||||
|
ff_mpeg12_vlc_dc_lum_bits, 1, 1,
|
||||||
/* Exactly the same as MPEG-2, except little-endian. */
|
ff_mpeg12_vlc_dc_lum_code, 2, 2,
|
||||||
reverse_code(ff_mpeg12_vlc_dc_lum_code,
|
INIT_VLC_OUTPUT_LE, 512);
|
||||||
ff_mpeg12_vlc_dc_lum_bits,
|
INIT_CUSTOM_VLC_STATIC(&dc_chroma_vlc_le, DC_VLC_BITS, 12,
|
||||||
ff_mpeg12_vlc_dc_lum_code_reversed,
|
ff_mpeg12_vlc_dc_chroma_bits, 1, 1,
|
||||||
12);
|
ff_mpeg12_vlc_dc_chroma_code, 2, 2,
|
||||||
INIT_LE_VLC_STATIC(&dc_lum_vlc_le, DC_VLC_BITS, 12,
|
INIT_VLC_OUTPUT_LE, 514);
|
||||||
ff_mpeg12_vlc_dc_lum_bits, 1, 1,
|
|
||||||
ff_mpeg12_vlc_dc_lum_code_reversed, 2, 2, 512);
|
|
||||||
reverse_code(ff_mpeg12_vlc_dc_chroma_code,
|
|
||||||
ff_mpeg12_vlc_dc_chroma_bits,
|
|
||||||
ff_mpeg12_vlc_dc_chroma_code_reversed,
|
|
||||||
12);
|
|
||||||
INIT_LE_VLC_STATIC(&dc_chroma_vlc_le, DC_VLC_BITS, 12,
|
|
||||||
ff_mpeg12_vlc_dc_chroma_bits, 1, 1,
|
|
||||||
ff_mpeg12_vlc_dc_chroma_code_reversed, 2, 2, 514);
|
|
||||||
|
|
||||||
ff_rl_init(&rl_speedhq, speedhq_static_rl_table_store);
|
ff_rl_init(&rl_speedhq, speedhq_static_rl_table_store);
|
||||||
INIT_2D_VLC_RL(rl_speedhq, 674, INIT_VLC_LE);
|
INIT_2D_VLC_RL(rl_speedhq, 674, INIT_VLC_LE);
|
||||||
|
Loading…
Reference in New Issue
Block a user