tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | 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 }