#include <stdlib.h>
#include "src/dec/alphai_dec.h"
#include "src/dec/vp8i_dec.h"
#include "src/dec/vp8li_dec.h"
#include "src/dec/webpi_dec.h"
#include "src/utils/bit_reader_inl_utils.h"
#include "src/utils/utils.h"
int WebPGetDecoderVersion(void) { … }
GetCoeffsFunc;
static volatile GetCoeffsFunc GetCoeffs = …;
static void InitGetCoeffs(void);
static void SetOk(VP8Decoder* const dec) { … }
int VP8InitIoInternal(VP8Io* const io, int version) { … }
VP8Decoder* VP8New(void) { … }
VP8StatusCode VP8Status(VP8Decoder* const dec) { … }
const char* VP8StatusMessage(VP8Decoder* const dec) { … }
void VP8Delete(VP8Decoder* const dec) { … }
int VP8SetError(VP8Decoder* const dec,
VP8StatusCode error, const char* const msg) { … }
int VP8CheckSignature(const uint8_t* const data, size_t data_size) { … }
int VP8GetInfo(const uint8_t* data, size_t data_size, size_t chunk_size,
int* const width, int* const height) { … }
static void ResetSegmentHeader(VP8SegmentHeader* const hdr) { … }
static int ParseSegmentHeader(VP8BitReader* br,
VP8SegmentHeader* hdr, VP8Proba* proba) { … }
static VP8StatusCode ParsePartitions(VP8Decoder* const dec,
const uint8_t* buf, size_t size) { … }
static int ParseFilterHeader(VP8BitReader* br, VP8Decoder* const dec) { … }
int VP8GetHeaders(VP8Decoder* const dec, VP8Io* const io) { … }
static const uint8_t kCat3[] = …;
static const uint8_t kCat4[] = …;
static const uint8_t kCat5[] = …;
static const uint8_t kCat6[] = …;
static const uint8_t* const kCat3456[] = …;
static const uint8_t kZigzag[16] = …;
static int GetLargeValue(VP8BitReader* const br, const uint8_t* const p) { … }
static int GetCoeffsFast(VP8BitReader* const br,
const VP8BandProbas* const prob[],
int ctx, const quant_t dq, int n, int16_t* out) { … }
static int GetCoeffsAlt(VP8BitReader* const br,
const VP8BandProbas* const prob[],
int ctx, const quant_t dq, int n, int16_t* out) { … }
extern VP8CPUInfo VP8GetCPUInfo;
WEBP_DSP_INIT_FUNC(InitGetCoeffs) { … }
static WEBP_INLINE uint32_t NzCodeBits(uint32_t nz_coeffs, int nz, int dc_nz) { … }
static int ParseResiduals(VP8Decoder* const dec,
VP8MB* const mb, VP8BitReader* const token_br) { … }
int VP8DecodeMB(VP8Decoder* const dec, VP8BitReader* const token_br) { … }
void VP8InitScanline(VP8Decoder* const dec) { … }
static int ParseFrame(VP8Decoder* const dec, VP8Io* io) { … }
int VP8Decode(VP8Decoder* const dec, VP8Io* const io) { … }
void VP8Clear(VP8Decoder* const dec) { … }