]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/mjpegenc_common.c
avcodec/jpegtables: Move ff_mjpeg_build_huffman_codes to mjpegenc_common
[ffmpeg] / libavcodec / mjpegenc_common.c
index 0b82777ec94afe4ee4c887a981d64c2bb641fbdc..720b18d44886f42cae11ddfa871ce1dd75bd21f0 100644 (file)
@@ -466,6 +466,27 @@ void ff_mjpeg_escape_FF(PutBitContext *pb, int start)
     }
 }
 
+/* isn't this function nicer than the one in the libjpeg ? */
+void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code,
+                                  const uint8_t *bits_table,
+                                  const uint8_t *val_table)
+{
+    int k, code;
+
+    k = 0;
+    code = 0;
+    for (int i = 1; i <= 16; i++) {
+        int nb = bits_table[i];
+        for (int j = 0; j < nb; j++) {
+            int sym = val_table[k++];
+            huff_size[sym] = i;
+            huff_code[sym] = code;
+            code++;
+        }
+        code <<= 1;
+    }
+}
+
 /**
  * Builds all 4 optimal Huffman tables.
  *