diff options
author | Paul B Mahol <onemda@gmail.com> | 2020-10-03 14:34:01 +0200 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2020-10-07 22:16:35 +0200 |
commit | 1249698e1b424cff8e77e6a83cfdbc9d11e01aa7 (patch) | |
tree | 4ac209a2d226b9d3cceec280ac54b1c0b5dee207 /libavcodec/jpegtables.c | |
parent | da5b3d002862d1e105002a6dc1567e6551860896 (diff) |
avcodec/mjpegdec: improve decoding of DNG files
That have unused symbols coded in DHT.
Diffstat (limited to 'libavcodec/jpegtables.c')
-rw-r--r-- | libavcodec/jpegtables.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/libavcodec/jpegtables.c b/libavcodec/jpegtables.c index fa5c6f9fc5..e44bc7a22a 100644 --- a/libavcodec/jpegtables.c +++ b/libavcodec/jpegtables.c @@ -130,25 +130,14 @@ void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code, { int i, j, k,nb, code, sym; - /* Some badly encoded files [1] map 2 different codes to symbol 0. - Only the first one is valid, so we zero-initialize this here and - make sure we only set it once (the first time) in the loop below. - - [1]: Embedded JPEGs in "X7 RAW" and "X7 CinemaDNG" samples here: - https://www.dji.com/gr/zenmuse-x7/info#downloads - */ - huff_size[0] = 0; - k = 0; code = 0; for(i=1;i<=16;i++) { nb = bits_table[i]; for(j=0;j<nb;j++) { sym = val_table[k++]; - if (sym != 0 || huff_size[sym] == 0) { /* see comment above */ - huff_size[sym] = i; - huff_code[sym] = code; - } + huff_size[sym] = i; + huff_code[sym] = code; code++; } code <<= 1; |