libjxl

FORK: libjxl patches used on blog
git clone https://git.neptards.moe/blog/libjxl.git
Log | Files | Refs | Submodules | README | LICENSE

common.cc (1602B)


      1 // Copyright (c) the JPEG XL Project Authors. All rights reserved.
      2 //
      3 // Use of this source code is governed by a BSD-style
      4 // license that can be found in the LICENSE file.
      5 
      6 #include "lib/jpegli/common.h"
      7 
      8 #include "lib/jpegli/decode_internal.h"
      9 #include "lib/jpegli/encode_internal.h"
     10 #include "lib/jpegli/memory_manager.h"
     11 
     12 void jpegli_abort(j_common_ptr cinfo) {
     13   if (cinfo->mem == nullptr) return;
     14   for (int pool_id = 0; pool_id < JPOOL_NUMPOOLS; ++pool_id) {
     15     if (pool_id == JPOOL_PERMANENT) continue;
     16     (*cinfo->mem->free_pool)(cinfo, pool_id);
     17   }
     18   if (cinfo->is_decompressor) {
     19     cinfo->global_state = jpegli::kDecStart;
     20   } else {
     21     cinfo->global_state = jpegli::kEncStart;
     22   }
     23 }
     24 
     25 void jpegli_destroy(j_common_ptr cinfo) {
     26   if (cinfo->mem == nullptr) return;
     27   (*cinfo->mem->self_destruct)(cinfo);
     28   if (cinfo->is_decompressor) {
     29     cinfo->global_state = jpegli::kDecNull;
     30     delete reinterpret_cast<j_decompress_ptr>(cinfo)->master;
     31   } else {
     32     cinfo->global_state = jpegli::kEncNull;
     33   }
     34 }
     35 
     36 JQUANT_TBL* jpegli_alloc_quant_table(j_common_ptr cinfo) {
     37   JQUANT_TBL* table = jpegli::Allocate<JQUANT_TBL>(cinfo, 1);
     38   table->sent_table = FALSE;
     39   return table;
     40 }
     41 
     42 JHUFF_TBL* jpegli_alloc_huff_table(j_common_ptr cinfo) {
     43   JHUFF_TBL* table = jpegli::Allocate<JHUFF_TBL>(cinfo, 1);
     44   table->sent_table = FALSE;
     45   return table;
     46 }
     47 
     48 int jpegli_bytes_per_sample(JpegliDataType data_type) {
     49   switch (data_type) {
     50     case JPEGLI_TYPE_UINT8:
     51       return 1;
     52     case JPEGLI_TYPE_UINT16:
     53       return 2;
     54     case JPEGLI_TYPE_FLOAT:
     55       return 4;
     56     default:
     57       return 0;
     58   }
     59 }