1cabdff1aSopenharmony_ci/* 2cabdff1aSopenharmony_ci * ScreenPressor version 3 decoder 3cabdff1aSopenharmony_ci * 4cabdff1aSopenharmony_ci * Copyright (c) 2017 Paul B Mahol 5cabdff1aSopenharmony_ci * 6cabdff1aSopenharmony_ci * This file is part of FFmpeg. 7cabdff1aSopenharmony_ci * 8cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or 9cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public 10cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either 11cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version. 12cabdff1aSopenharmony_ci * 13cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful, 14cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of 15cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16cabdff1aSopenharmony_ci * Lesser General Public License for more details. 17cabdff1aSopenharmony_ci * 18cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public 19cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software 20cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21cabdff1aSopenharmony_ci */ 22cabdff1aSopenharmony_ci 23cabdff1aSopenharmony_ci#ifndef AVCODEC_SCPR3_H 24cabdff1aSopenharmony_ci#define AVCODEC_SCPR3_H 25cabdff1aSopenharmony_ci 26cabdff1aSopenharmony_ci#include <stdint.h> 27cabdff1aSopenharmony_ci 28cabdff1aSopenharmony_citypedef struct PixelModel3 { 29cabdff1aSopenharmony_ci uint8_t type; 30cabdff1aSopenharmony_ci uint8_t length; 31cabdff1aSopenharmony_ci uint8_t maxpos; 32cabdff1aSopenharmony_ci uint8_t fshift; 33cabdff1aSopenharmony_ci uint16_t size; 34cabdff1aSopenharmony_ci uint32_t cntsum; 35cabdff1aSopenharmony_ci uint8_t symbols[256]; 36cabdff1aSopenharmony_ci uint16_t freqs[256]; 37cabdff1aSopenharmony_ci uint16_t freqs1[256]; 38cabdff1aSopenharmony_ci uint16_t cnts[256]; 39cabdff1aSopenharmony_ci uint8_t dectab[32]; 40cabdff1aSopenharmony_ci} PixelModel3; 41cabdff1aSopenharmony_ci 42cabdff1aSopenharmony_citypedef struct FillModel3 { 43cabdff1aSopenharmony_ci uint32_t cntsum; 44cabdff1aSopenharmony_ci uint16_t freqs[2][5]; 45cabdff1aSopenharmony_ci uint16_t cnts[5]; 46cabdff1aSopenharmony_ci uint8_t dectab[32]; 47cabdff1aSopenharmony_ci} FillModel3; 48cabdff1aSopenharmony_ci 49cabdff1aSopenharmony_citypedef struct OpModel3 { 50cabdff1aSopenharmony_ci uint32_t cntsum; 51cabdff1aSopenharmony_ci uint16_t freqs[2][6]; 52cabdff1aSopenharmony_ci uint16_t cnts[6]; 53cabdff1aSopenharmony_ci uint8_t dectab[32]; 54cabdff1aSopenharmony_ci} OpModel3; 55cabdff1aSopenharmony_ci 56cabdff1aSopenharmony_citypedef struct RunModel3 { 57cabdff1aSopenharmony_ci uint32_t cntsum; 58cabdff1aSopenharmony_ci uint16_t freqs[2][256]; 59cabdff1aSopenharmony_ci uint16_t cnts[256]; 60cabdff1aSopenharmony_ci uint8_t dectab[32]; 61cabdff1aSopenharmony_ci} RunModel3; 62cabdff1aSopenharmony_ci 63cabdff1aSopenharmony_citypedef struct SxyModel3 { 64cabdff1aSopenharmony_ci uint32_t cntsum; 65cabdff1aSopenharmony_ci uint16_t freqs[2][16]; 66cabdff1aSopenharmony_ci uint16_t cnts[16]; 67cabdff1aSopenharmony_ci uint8_t dectab[32]; 68cabdff1aSopenharmony_ci} SxyModel3; 69cabdff1aSopenharmony_ci 70cabdff1aSopenharmony_citypedef struct MVModel3 { 71cabdff1aSopenharmony_ci uint32_t cntsum; 72cabdff1aSopenharmony_ci uint16_t freqs[2][512]; 73cabdff1aSopenharmony_ci uint16_t cnts[512]; 74cabdff1aSopenharmony_ci uint8_t dectab[32]; 75cabdff1aSopenharmony_ci} MVModel3; 76cabdff1aSopenharmony_ci 77cabdff1aSopenharmony_ci#endif /* AVCODEC_SCPR3_H */ 78