summaryrefslogtreecommitdiff
path: root/libavcodec/jpegtables.c
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2020-10-03 14:34:01 +0200
committerPaul B Mahol <onemda@gmail.com>2020-10-07 22:16:35 +0200
commit1249698e1b424cff8e77e6a83cfdbc9d11e01aa7 (patch)
tree4ac209a2d226b9d3cceec280ac54b1c0b5dee207 /libavcodec/jpegtables.c
parentda5b3d002862d1e105002a6dc1567e6551860896 (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.c15
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;