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
1328 1328
1329 if (s.last_val != val) {1329 if (s.last_val != val) {
1330 int64_t delta = val - s.last_val;1330 int64_t delta = val - s.last_val;
1331 int64_t step = FFMAX(1, (delta + current_mul/2) / current_mul);
1331 av_assert2(s.last_val < val);1332 av_assert2(s.last_val < val);
1332 av_assert2(current_mul > 0);1333 av_assert2(current_mul > 0);
1333 1334
1334 val = FFMAX(1, (delta + current_mul/2) / current_mul);1335 delta -= step*current_mul;
1335
1336 delta -= val*current_mul;
1337 av_assert2(delta <= current_mul/2);1336 av_assert2(delta <= current_mul/2);
1338 av_assert2(delta > -current_mul);1337 av_assert2(delta > -current_mul);
1339 val += s.last_val;
1340 1338
1341 av_assert2(s.last_val < val);1339 av_assert2(step > 0);
1342 if (s.lu) {1340 if (s.lu) {
1343 s.index_stack[s.run] = s.current_mul_index;1341 s.index_stack[s.run] = s.current_mul_index;
1344 av_assert2(s.run < FF_ARRAY_ELEMS(s.delta_stack));1342 av_assert2(s.run < FF_ARRAY_ELEMS(s.delta_stack));
1345 if (val - s.last_val == 1) {1343 if (step == 1) {
1346 s.delta_stack[s.run] = delta;1344 s.delta_stack[s.run] = delta;
1347 s.run ++;1345 s.run ++;
1348 av_assert2(s.i == s.pixel_num || s.last_val + current_mul + delta == sc->unit[s.p][s.i].val);1346 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
1365 }1363 }
1366 } else {1364 } else {
1367 av_assert2(s.run == 0);1365 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);
1369 1367
1370 if (current_mul > 1)1368 if (current_mul > 1)
1371 put_symbol_inline(&s.rc, s.state[s.lu][1], delta, 1, NULL, NULL);1369 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)
1373 s.lu ^= 1;1371 s.lu ^= 1;
1374 1372
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);
1376 if (s.i < s.pixel_num)1374 if (s.i < s.pixel_num)
1377 s.last_val = sc->unit[s.p][s.i].val;1375 s.last_val = sc->unit[s.p][s.i].val;
1378 }1376 }

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