uavs3 / uavs3e

AVS3 encoder which supports AVS3-P2 baseline profile.
Other
135 stars 62 forks source link

BUG report in scenecut-detection fuctions #9

Closed DapengChen-Pri closed 4 years ago

DapengChen-Pri commented 4 years ago

if (h->cfg.scenecut) { if (h->img_rlist[0].sc_ratio > sc_threshold) { while (cur_ip_idx) { double sc_ratio = loka_get_sc_ratio(&h->pinter, h->img_rlist[cur_ip_idx].img, h->img_lastIP, bit_depth); if (sc_ratio <= sc_threshold) { for (int i = 0; i <= cur_ip_idx; i++) { h->img_rlist[i].sc_ratio = 0; } break; } cur_ip_idx--; } if (cur_ip_idx == 0) { add_input_node(h, h->img_rlist[cur_ip_idx].img, 1, FRM_DEPTH_0, SLICE_I); /****/ update_last_ip(h, h->img_rlist[cur_ip_idx].img, SLICE_I); /****/ shift_reorder_list(h, cur_ip_idx); return; } } }

update_last_ip(h, h->img_rlist[cur_ip_idx].img, SLICE_I); should be added there after an I frame asserted in the node, or it might cause h->img_lastIP not updated and results in a series of errors.