mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-30 03:13:18 +00:00
avcodec/prosumer: Factorize the 2 loops in fill_elements()
Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
f24701b073
commit
d3a9cb6bc8
@ -282,29 +282,24 @@ static void fill_elements(uint32_t idx, uint32_t shift, int size, uint32_t *e0,
|
||||
{
|
||||
uint32_t b, h = idx << (32 - shift);
|
||||
|
||||
for (int i = 0; i < size; i++) {
|
||||
b = 4 * (table[2 * i + 1] & 0xF);
|
||||
if (shift >= b && (h & (0xFFF00000u << (12 - b))) == (table[2 * i + 1] & 0xFFFF0000u)) {
|
||||
if (table[2 * i] >> 8 == 0x80u) {
|
||||
return;
|
||||
} else {
|
||||
*e1 = table[2 * i];
|
||||
*e0 = (*e0 & 0xFFFFFFu) | (((12 + b - shift) & 0xFFFFFFFCu | 0x40u) << 22);
|
||||
shift -= b;
|
||||
h <<= b;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < size; i++) {
|
||||
b = 4 * (table[2 * i + 1] & 0xF);
|
||||
if (shift >= b && (h & (0xFFF00000u << (12 - b))) == (table[2 * i + 1] & 0xFFFF0000u)) {
|
||||
if (table[2 * i] >> 8 == 0x80u) {
|
||||
return;
|
||||
} else {
|
||||
*e1 |= table[2 * i] << 16;
|
||||
*e0 = (*e0 & 0xFFFFFFu) | (((12 + b - shift) & 0xFFFFFFFCu | 0x80u) << 22);
|
||||
break;
|
||||
for (int j = 0; j < 2; j++) {
|
||||
for (int i = 0; i < size; i++) {
|
||||
b = 4 * (table[2 * i + 1] & 0xF);
|
||||
if (shift >= b && (h & (0xFFF00000u << (12 - b))) == (table[2 * i + 1] & 0xFFFF0000u)) {
|
||||
if (table[2 * i] >> 8 == 0x80u) {
|
||||
return;
|
||||
} else {
|
||||
if (j == 0) {
|
||||
*e1 = table[2 * i];
|
||||
*e0 = (*e0 & 0xFFFFFFu) | (((12 + b - shift) & 0xFFFFFFFCu | 0x40u) << 22);
|
||||
shift -= b;
|
||||
h <<= b;
|
||||
} else {
|
||||
*e1 |= table[2 * i] << 16;
|
||||
*e0 = (*e0 & 0xFFFFFFu) | (((12 + b - shift) & 0xFFFFFFFCu | 0x80u) << 22);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user