mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
avcodec/flacenc: Fix Invalid Rice order
Fixes ticket #4628. The problem arose, in the sample file at least, in the last block where the minimum and maximum Rice partition orders were both 0. In that case, and any other where pmax == pmin, the original UINT32_MAX placeholder value for bits[opt_porder] was getting overwritten before the comparison to check if the current partition order is a new optimal, so the correct partition order and RiceContext params were not being set. Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit 2469ed32c81ebf2347e6883091c566724b286167)
This commit is contained in:
parent
c3c8365dbd
commit
a9b600cf39
@ -705,7 +705,7 @@ static uint64_t calc_rice_params(RiceContext *rc,
|
||||
bits[pmin] = UINT32_MAX;
|
||||
for (i = pmax; ; ) {
|
||||
bits[i] = calc_optimal_rice_params(&tmp_rc, i, sums, n, pred_order, kmax, exact);
|
||||
if (bits[i] < bits[opt_porder]) {
|
||||
if (bits[i] < bits[opt_porder] || pmax == pmin) {
|
||||
opt_porder = i;
|
||||
*rc = tmp_rc;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user