| /* |
| * This file is part of FFmpeg. |
| * |
| * FFmpeg is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * FFmpeg is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with FFmpeg; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
| */ |
| |
| #ifndef AVCODEC_APV_H |
| #define AVCODEC_APV_H |
| |
| // Signature value in APV bitstreams (section 5.3.1). |
| #define APV_SIGNATURE MKBETAG('a', 'P', 'v', '1') |
| |
| // PBU types (section 5.3.3). |
| enum { |
| APV_PBU_PRIMARY_FRAME = 1, |
| APV_PBU_NON_PRIMARY_FRAME = 2, |
| APV_PBU_PREVIEW_FRAME = 25, |
| APV_PBU_DEPTH_FRAME = 26, |
| APV_PBU_ALPHA_FRAME = 27, |
| APV_PBU_ACCESS_UNIT_INFORMATION = 65, |
| APV_PBU_METADATA = 66, |
| APV_PBU_FILLER = 67, |
| }; |
| |
| // Format parameters (section 4.2). |
| enum { |
| APV_MAX_NUM_COMP = 4, |
| APV_MB_WIDTH = 16, |
| APV_MB_HEIGHT = 16, |
| APV_TR_SIZE = 8, |
| }; |
| |
| // Chroma formats (section 4.2). |
| enum { |
| APV_CHROMA_FORMAT_400 = 0, |
| APV_CHROMA_FORMAT_422 = 2, |
| APV_CHROMA_FORMAT_444 = 3, |
| APV_CHROMA_FORMAT_4444 = 4, |
| }; |
| |
| // Coefficient limits (section 5.3.15). |
| enum { |
| APV_BLK_COEFFS = (APV_TR_SIZE * APV_TR_SIZE), |
| APV_MIN_TRANS_COEFF = -32768, |
| APV_MAX_TRANS_COEFF = 32767, |
| }; |
| |
| // Profiles (section 10.1.3). |
| enum { |
| APV_PROFILE_422_10 = 33, |
| APV_PROFILE_422_12 = 44, |
| APV_PROFILE_444_10 = 55, |
| APV_PROFILE_444_12 = 66, |
| APV_PROFILE_4444_10 = 77, |
| APV_PROFILE_4444_12 = 88, |
| APV_PROFILE_400_10 = 99, |
| }; |
| |
| // General level limits for tiles (section 10.1.4.1). |
| enum { |
| APV_MIN_TILE_WIDTH_IN_MBS = 16, |
| APV_MIN_TILE_HEIGHT_IN_MBS = 8, |
| APV_MAX_TILE_COLS = 20, |
| APV_MAX_TILE_ROWS = 20, |
| APV_MAX_TILE_COUNT = APV_MAX_TILE_COLS * APV_MAX_TILE_ROWS, |
| }; |
| |
| // Metadata types (section 10.3.1). |
| enum { |
| APV_METADATA_ITU_T_T35 = 4, |
| APV_METADATA_MDCV = 5, |
| APV_METADATA_CLL = 6, |
| APV_METADATA_FILLER = 10, |
| APV_METADATA_USER_DEFINED = 170, |
| }; |
| |
| #endif /* AVCODEC_APV_H */ |