1cabdff1aSopenharmony_ci/* 2cabdff1aSopenharmony_ci * Common AC-3 definitions 3cabdff1aSopenharmony_ci * Copyright (c) 2000, 2001, 2002 Fabrice Bellard 4cabdff1aSopenharmony_ci * 5cabdff1aSopenharmony_ci * This file is part of FFmpeg. 6cabdff1aSopenharmony_ci * 7cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or 8cabdff1aSopenharmony_ci * modify it under the terms of the GNU Lesser General Public 9cabdff1aSopenharmony_ci * License as published by the Free Software Foundation; either 10cabdff1aSopenharmony_ci * version 2.1 of the License, or (at your option) any later version. 11cabdff1aSopenharmony_ci * 12cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful, 13cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of 14cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15cabdff1aSopenharmony_ci * Lesser General Public License for more details. 16cabdff1aSopenharmony_ci * 17cabdff1aSopenharmony_ci * You should have received a copy of the GNU Lesser General Public 18cabdff1aSopenharmony_ci * License along with FFmpeg; if not, write to the Free Software 19cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20cabdff1aSopenharmony_ci */ 21cabdff1aSopenharmony_ci 22cabdff1aSopenharmony_ci#ifndef AVCODEC_AC3DEFS_H 23cabdff1aSopenharmony_ci#define AVCODEC_AC3DEFS_H 24cabdff1aSopenharmony_ci 25cabdff1aSopenharmony_ci#define EAC3_MAX_CHANNELS 16 /**< maximum number of channels in EAC3 */ 26cabdff1aSopenharmony_ci#define AC3_MAX_CHANNELS 7 /**< maximum number of channels, including coupling channel */ 27cabdff1aSopenharmony_ci#define CPL_CH 0 /**< coupling channel index */ 28cabdff1aSopenharmony_ci 29cabdff1aSopenharmony_ci#define AC3_MAX_COEFS 256 30cabdff1aSopenharmony_ci#define AC3_BLOCK_SIZE 256 31cabdff1aSopenharmony_ci#define AC3_MAX_BLOCKS 6 32cabdff1aSopenharmony_ci#define AC3_FRAME_SIZE (AC3_MAX_BLOCKS * 256) 33cabdff1aSopenharmony_ci#define AC3_WINDOW_SIZE (AC3_BLOCK_SIZE * 2) 34cabdff1aSopenharmony_ci#define AC3_CRITICAL_BANDS 50 35cabdff1aSopenharmony_ci#define AC3_MAX_CPL_BANDS 18 36cabdff1aSopenharmony_ci 37cabdff1aSopenharmony_ci/* exponent encoding strategy */ 38cabdff1aSopenharmony_ci#define EXP_REUSE 0 39cabdff1aSopenharmony_ci#define EXP_NEW 1 40cabdff1aSopenharmony_ci 41cabdff1aSopenharmony_ci#define EXP_D15 1 42cabdff1aSopenharmony_ci#define EXP_D25 2 43cabdff1aSopenharmony_ci#define EXP_D45 3 44cabdff1aSopenharmony_ci 45cabdff1aSopenharmony_ci/** Delta bit allocation strategy */ 46cabdff1aSopenharmony_citypedef enum { 47cabdff1aSopenharmony_ci DBA_REUSE = 0, 48cabdff1aSopenharmony_ci DBA_NEW, 49cabdff1aSopenharmony_ci DBA_NONE, 50cabdff1aSopenharmony_ci DBA_RESERVED 51cabdff1aSopenharmony_ci} AC3DeltaStrategy; 52cabdff1aSopenharmony_ci 53cabdff1aSopenharmony_ci/** Channel mode (audio coding mode) */ 54cabdff1aSopenharmony_citypedef enum { 55cabdff1aSopenharmony_ci AC3_CHMODE_DUALMONO = 0, 56cabdff1aSopenharmony_ci AC3_CHMODE_MONO, 57cabdff1aSopenharmony_ci AC3_CHMODE_STEREO, 58cabdff1aSopenharmony_ci AC3_CHMODE_3F, 59cabdff1aSopenharmony_ci AC3_CHMODE_2F1R, 60cabdff1aSopenharmony_ci AC3_CHMODE_3F1R, 61cabdff1aSopenharmony_ci AC3_CHMODE_2F2R, 62cabdff1aSopenharmony_ci AC3_CHMODE_3F2R 63cabdff1aSopenharmony_ci} AC3ChannelMode; 64cabdff1aSopenharmony_ci 65cabdff1aSopenharmony_ci/** Dolby Surround mode */ 66cabdff1aSopenharmony_citypedef enum AC3DolbySurroundMode { 67cabdff1aSopenharmony_ci AC3_DSURMOD_NOTINDICATED = 0, 68cabdff1aSopenharmony_ci AC3_DSURMOD_OFF, 69cabdff1aSopenharmony_ci AC3_DSURMOD_ON, 70cabdff1aSopenharmony_ci AC3_DSURMOD_RESERVED 71cabdff1aSopenharmony_ci} AC3DolbySurroundMode; 72cabdff1aSopenharmony_ci 73cabdff1aSopenharmony_ci/** Dolby Surround EX mode */ 74cabdff1aSopenharmony_citypedef enum AC3DolbySurroundEXMode { 75cabdff1aSopenharmony_ci AC3_DSUREXMOD_NOTINDICATED = 0, 76cabdff1aSopenharmony_ci AC3_DSUREXMOD_OFF, 77cabdff1aSopenharmony_ci AC3_DSUREXMOD_ON, 78cabdff1aSopenharmony_ci AC3_DSUREXMOD_PLIIZ 79cabdff1aSopenharmony_ci} AC3DolbySurroundEXMode; 80cabdff1aSopenharmony_ci 81cabdff1aSopenharmony_ci/** Dolby Headphone mode */ 82cabdff1aSopenharmony_citypedef enum AC3DolbyHeadphoneMode { 83cabdff1aSopenharmony_ci AC3_DHEADPHONMOD_NOTINDICATED = 0, 84cabdff1aSopenharmony_ci AC3_DHEADPHONMOD_OFF, 85cabdff1aSopenharmony_ci AC3_DHEADPHONMOD_ON, 86cabdff1aSopenharmony_ci AC3_DHEADPHONMOD_RESERVED 87cabdff1aSopenharmony_ci} AC3DolbyHeadphoneMode; 88cabdff1aSopenharmony_ci 89cabdff1aSopenharmony_ci/** Preferred Stereo Downmix mode */ 90cabdff1aSopenharmony_citypedef enum AC3PreferredStereoDownmixMode { 91cabdff1aSopenharmony_ci AC3_DMIXMOD_NOTINDICATED = 0, 92cabdff1aSopenharmony_ci AC3_DMIXMOD_LTRT, 93cabdff1aSopenharmony_ci AC3_DMIXMOD_LORO, 94cabdff1aSopenharmony_ci AC3_DMIXMOD_DPLII // reserved value in A/52, but used by encoders to indicate DPL2 95cabdff1aSopenharmony_ci} AC3PreferredStereoDownmixMode; 96cabdff1aSopenharmony_ci 97cabdff1aSopenharmony_citypedef enum { 98cabdff1aSopenharmony_ci EAC3_FRAME_TYPE_INDEPENDENT = 0, 99cabdff1aSopenharmony_ci EAC3_FRAME_TYPE_DEPENDENT, 100cabdff1aSopenharmony_ci EAC3_FRAME_TYPE_AC3_CONVERT, 101cabdff1aSopenharmony_ci EAC3_FRAME_TYPE_RESERVED 102cabdff1aSopenharmony_ci} EAC3FrameType; 103cabdff1aSopenharmony_ci 104cabdff1aSopenharmony_ci#endif /* AVCODEC_AC3DEFS_H */ 105