History

avcodec/ffv1enc: introduce step to simplify code

Michael Niedermayer committed 1 year ago

Commit 4b24c5b1 parent e9cfed31 file · +7 −9Browse files

Unified · Split

libavcodec/ffv1enc.c+7−9
@@ -1328,21 +1328,19 @@ static int encode_float32_remap_segment(FFV1SliceContext *sc, · 1327 unmodified lines
13281328
13291329 if (s.last_val != val) {
13301330 int64_t delta = val - s.last_val;
1331+ int64_t step = FFMAX(1, (delta + current_mul/2) / current_mul);
13311332 av_assert2(s.last_val < val);
13321333 av_assert2(current_mul > 0);
13331334
1334− val = FFMAX(1, (delta + current_mul/2) / current_mul);
1335−
1336− delta -= val*current_mul;
1335+ delta -= step*current_mul;
13371336 av_assert2(delta <= current_mul/2);
13381337 av_assert2(delta > -current_mul);
1339− val += s.last_val;
13401338
1341− av_assert2(s.last_val < val);
1339+ av_assert2(step > 0);
13421340 if (s.lu) {
13431341 s.index_stack[s.run] = s.current_mul_index;
13441342 av_assert2(s.run < FF_ARRAY_ELEMS(s.delta_stack));
1345− if (val - s.last_val == 1) {
1343+ if (step == 1) {
13461344 s.delta_stack[s.run] = delta;
13471345 s.run ++;
13481346 av_assert2(s.i == s.pixel_num || s.last_val + current_mul + delta == sc->unit[s.p][s.i].val);
@@ -1365,14 +1363,14 @@ static int encode_float32_remap_segment(FFV1SliceContext *sc, · 16 unmodified lines
13651363 }
13661364 } else {
13671365 av_assert2(s.run == 0);
1368− put_symbol_inline(&s.rc, s.state[s.lu][0], val - s.last_val - 1, 0, NULL, NULL);
1366+ put_symbol_inline(&s.rc, s.state[s.lu][0], step - 1, 0, NULL, NULL);
13691367
13701368 if (current_mul > 1)
13711369 put_symbol_inline(&s.rc, s.state[s.lu][1], delta, 1, NULL, NULL);
1372− if (val - s.last_val == 1)
1370+ if (step == 1)
13731371 s.lu ^= 1;
13741372
1375− av_assert2(s.i == s.pixel_num || s.last_val + (val - s.last_val) * current_mul + delta == sc->unit[s.p][s.i].val);
1373+ av_assert2(s.i == s.pixel_num || s.last_val + step * current_mul + delta == sc->unit[s.p][s.i].val);
13761374 if (s.i < s.pixel_num)
13771375 s.last_val = sc->unit[s.p][s.i].val;
13781376 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t