mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-09 16:57:30 +09:00
Import aom library
This is the reference implementation for the Alliance for Open Media's av1 video code. The commit used was 4d668d7feb1f8abd809d1bca0418570a7f142a36.
This commit is contained in:
parent
eb8cd130a8
commit
edc8d83307
989 changed files with 470949 additions and 0 deletions
83
third_party/aom/av1/decoder/accounting.h
vendored
Normal file
83
third_party/aom/av1/decoder/accounting.h
vendored
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
* Copyright (c) 2016, Alliance for Open Media. All rights reserved
|
||||
*
|
||||
* This source code is subject to the terms of the BSD 2 Clause License and
|
||||
* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
|
||||
* was not distributed with this source code in the LICENSE file, you can
|
||||
* obtain it at www.aomedia.org/license/software. If the Alliance for Open
|
||||
* Media Patent License 1.0 was not distributed with this source code in the
|
||||
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
|
||||
*/
|
||||
#ifndef AOM_ACCOUNTING_H_
|
||||
#define AOM_ACCOUNTING_H_
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif // __cplusplus
|
||||
|
||||
#define AOM_ACCOUNTING_HASH_SIZE (1021)
|
||||
|
||||
/* Max number of entries for symbol types in the dictionary (increase as
|
||||
necessary). */
|
||||
#define MAX_SYMBOL_TYPES (256)
|
||||
|
||||
/*The resolution of fractional-precision bit usage measurements, i.e.,
|
||||
3 => 1/8th bits.*/
|
||||
#define AOM_ACCT_BITRES (3)
|
||||
|
||||
typedef struct {
|
||||
int16_t x;
|
||||
int16_t y;
|
||||
} AccountingSymbolContext;
|
||||
|
||||
typedef struct {
|
||||
AccountingSymbolContext context;
|
||||
uint32_t id;
|
||||
/** Number of bits in units of 1/8 bit. */
|
||||
uint32_t bits;
|
||||
uint32_t samples;
|
||||
} AccountingSymbol;
|
||||
|
||||
/** Dictionary for translating strings into id. */
|
||||
typedef struct {
|
||||
char *(strs[MAX_SYMBOL_TYPES]);
|
||||
int num_strs;
|
||||
} AccountingDictionary;
|
||||
|
||||
typedef struct {
|
||||
/** All recorded symbols decoded. */
|
||||
AccountingSymbol *syms;
|
||||
/** Number of syntax actually recorded. */
|
||||
int num_syms;
|
||||
/** Raw symbol decoding calls for non-binary values. */
|
||||
int num_multi_syms;
|
||||
/** Raw binary symbol decoding calls. */
|
||||
int num_binary_syms;
|
||||
/** Dictionary for translating strings into id. */
|
||||
AccountingDictionary dictionary;
|
||||
} AccountingSymbols;
|
||||
|
||||
typedef struct Accounting Accounting;
|
||||
|
||||
struct Accounting {
|
||||
AccountingSymbols syms;
|
||||
/** Size allocated for symbols (not all may be used). */
|
||||
int num_syms_allocated;
|
||||
int16_t hash_dictionary[AOM_ACCOUNTING_HASH_SIZE];
|
||||
AccountingSymbolContext context;
|
||||
uint32_t last_tell_frac;
|
||||
};
|
||||
|
||||
void aom_accounting_init(Accounting *accounting);
|
||||
void aom_accounting_reset(Accounting *accounting);
|
||||
void aom_accounting_clear(Accounting *accounting);
|
||||
void aom_accounting_set_context(Accounting *accounting, int16_t x, int16_t y);
|
||||
int aom_accounting_dictionary_lookup(Accounting *accounting, const char *str);
|
||||
void aom_accounting_record(Accounting *accounting, const char *str,
|
||||
uint32_t bits);
|
||||
void aom_accounting_dump(Accounting *accounting);
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif // __cplusplus
|
||||
#endif // AOM_ACCOUNTING_H_
|
||||
Loading…
Add table
Add a link
Reference in a new issue