Browse Source

mlpenc: fix huff offset calculation

huff offset wasn't always within the bounds before, which lead to
corrupt encoding that didn't always trigger lossless check failures

Signed-off-by: Jai Luthra <me@jailuthra.in>
tags/n4.3
Jai Luthra Paul B Mahol 6 years ago
parent
commit
990990ed5d
1 changed files with 1 additions and 5 deletions
  1. +1
    -5
      libavcodec/mlpenc.c

+ 1
- 5
libavcodec/mlpenc.c View File

@@ -1699,7 +1699,7 @@ static inline void codebook_bits(MLPEncodeContext *ctx,
offset_min = FFMAX(min, HUFF_OFFSET_MIN);
offset_max = FFMIN(max, HUFF_OFFSET_MAX);

for (;;) {
while (offset <= offset_max && offset >= offset_min) {
BestOffset temp_bo;

codebook_bits_offset(ctx, channel, codebook,
@@ -1718,12 +1718,8 @@ static inline void codebook_bits(MLPEncodeContext *ctx,

if (direction) {
offset = temp_bo.max + 1;
if (offset > offset_max)
break;
} else {
offset = temp_bo.min - 1;
if (offset < offset_min)
break;
}
}
}


Loading…
Cancel
Save