1 /**
2  * @file
3  * @brief Header file for ChannelLayout class
4  * @author Jonathan Thomas <jonathan@openshot.org>
5  *
6  * @ref License
7  */
8 
9 /* LICENSE
10  *
11  * Copyright (c) 2008-2019 OpenShot Studios, LLC
12  * <http://www.openshotstudios.com/>. This file is part of
13  * OpenShot Library (libopenshot), an open-source project dedicated to
14  * delivering high quality video editing and animation solutions to the
15  * world. For more information visit <http://www.openshot.org/>.
16  *
17  * OpenShot Library (libopenshot) is free software: you can redistribute it
18  * and/or modify it under the terms of the GNU Lesser General Public License
19  * as published by the Free Software Foundation, either version 3 of the
20  * License, or (at your option) any later version.
21  *
22  * OpenShot Library (libopenshot) is distributed in the hope that it will be
23  * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25  * GNU Lesser General Public License for more details.
26  *
27  * You should have received a copy of the GNU Lesser General Public License
28  * along with OpenShot Library. If not, see <http://www.gnu.org/licenses/>.
29  */
30 
31 #ifndef OPENSHOT_CHANNEL_LAYOUT_H
32 #define OPENSHOT_CHANNEL_LAYOUT_H
33 
34 // Include FFmpeg headers and macros
35 #include "FFmpegUtilities.h"
36 
37 namespace openshot
38 {
39 
40 /**
41  * @brief This enumeration determines the audio channel layout (such as stereo, mono, 5 point surround, etc...)
42  *
43  * When writing video and audio files, you will need to specify the channel layout of the audio stream. libopenshot
44  * can convert between many different channel layouts (such as stereo, mono, 5 point surround, etc...)
45  */
46 enum ChannelLayout
47 {
48 	LAYOUT_MONO = AV_CH_LAYOUT_MONO,
49 	LAYOUT_STEREO = AV_CH_LAYOUT_STEREO,
50 	LAYOUT_2POINT1 = AV_CH_LAYOUT_2POINT1,
51 	LAYOUT_2_1 = AV_CH_LAYOUT_2_1,
52 	LAYOUT_SURROUND = AV_CH_LAYOUT_SURROUND,
53 	LAYOUT_3POINT1 = AV_CH_LAYOUT_3POINT1,
54 	LAYOUT_4POINT0 = AV_CH_LAYOUT_4POINT0,
55 	LAYOUT_4POINT1 = AV_CH_LAYOUT_4POINT1,
56 	LAYOUT_2_2 = AV_CH_LAYOUT_2_2,
57 	LAYOUT_QUAD = AV_CH_LAYOUT_QUAD,
58 	LAYOUT_5POINT0 = AV_CH_LAYOUT_5POINT0,
59 	LAYOUT_5POINT1 = AV_CH_LAYOUT_5POINT1,
60 	LAYOUT_5POINT0_BACK = AV_CH_LAYOUT_5POINT0_BACK,
61 	LAYOUT_5POINT1_BACK = AV_CH_LAYOUT_5POINT1_BACK,
62 	LAYOUT_6POINT0 = AV_CH_LAYOUT_6POINT0,
63 	LAYOUT_6POINT0_FRONT = AV_CH_LAYOUT_6POINT0_FRONT,
64 	LAYOUT_HEXAGONAL = AV_CH_LAYOUT_HEXAGONAL,
65 	LAYOUT_6POINT1 = AV_CH_LAYOUT_6POINT1,
66 	LAYOUT_6POINT1_BACK = AV_CH_LAYOUT_6POINT1_BACK,
67 	LAYOUT_6POINT1_FRONT = AV_CH_LAYOUT_6POINT1_FRONT,
68 	LAYOUT_7POINT0 = AV_CH_LAYOUT_7POINT0,
69 	LAYOUT_7POINT0_FRONT = AV_CH_LAYOUT_7POINT0_FRONT,
70 	LAYOUT_7POINT1 = AV_CH_LAYOUT_7POINT1,
71 	LAYOUT_7POINT1_WIDE = AV_CH_LAYOUT_7POINT1_WIDE,
72 	LAYOUT_7POINT1_WIDE_BACK = AV_CH_LAYOUT_7POINT1_WIDE_BACK,
73 	LAYOUT_OCTAGONAL = AV_CH_LAYOUT_OCTAGONAL,
74 	LAYOUT_STEREO_DOWNMIX = AV_CH_LAYOUT_STEREO_DOWNMIX
75 };
76 
77 
78 
79 }
80 
81 #endif
82