FFmpeg
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavcodec
ac3enc_opts_template.c
Go to the documentation of this file.
1
/*
2
* AC-3 encoder options
3
* Copyright (c) 2011 Justin Ruggles <justin.ruggles@gmail.com>
4
*
5
* This file is part of Libav.
6
*
7
* Libav is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* Libav is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with Libav; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
#include "
libavutil/opt.h
"
23
#include "
internal.h
"
24
#include "
ac3.h
"
25
26
static
const
AVOption
ac3_options
[] = {
27
/* Metadata Options */
28
{
"per_frame_metadata"
,
"Allow Changing Metadata Per-Frame"
,
OFFSET
(allow_per_frame_metadata),
AV_OPT_TYPE_INT
, {.i64 = 0 }, 0, 1,
AC3ENC_PARAM
},
29
#if AC3ENC_TYPE != AC3ENC_TYPE_EAC3
30
/* AC-3 downmix levels */
31
{
"center_mixlev"
,
"Center Mix Level"
,
OFFSET
(
center_mix_level
),
AV_OPT_TYPE_FLOAT
, {.dbl =
LEVEL_MINUS_4POINT5DB
}, 0.0, 1.0,
AC3ENC_PARAM
},
32
{
"surround_mixlev"
,
"Surround Mix Level"
,
OFFSET
(
surround_mix_level
),
AV_OPT_TYPE_FLOAT
, {.dbl =
LEVEL_MINUS_6DB
}, 0.0, 1.0,
AC3ENC_PARAM
},
33
#endif
34
/* audio production information */
35
{
"mixing_level"
,
"Mixing Level"
,
OFFSET
(mixing_level),
AV_OPT_TYPE_INT
, {.i64 =
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
, 111,
AC3ENC_PARAM
},
36
{
"room_type"
,
"Room Type"
,
OFFSET
(room_type),
AV_OPT_TYPE_INT
, {.i64 =
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
AC3ENC_OPT_SMALL_ROOM
,
AC3ENC_PARAM
,
"room_type"
},
37
{
"notindicated"
,
"Not Indicated (default)"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_NOT_INDICATED
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"room_type"
},
38
{
"large"
,
"Large Room"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_LARGE_ROOM
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"room_type"
},
39
{
"small"
,
"Small Room"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_SMALL_ROOM
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"room_type"
},
40
/* other metadata options */
41
{
"copyright"
,
"Copyright Bit"
,
OFFSET
(copyright),
AV_OPT_TYPE_INT
, {.i64 =
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
, 1,
AC3ENC_PARAM
},
42
{
"dialnorm"
,
"Dialogue Level (dB)"
,
OFFSET
(dialogue_level),
AV_OPT_TYPE_INT
, {.i64 = -31 }, -31, -1,
AC3ENC_PARAM
},
43
{
"dsur_mode"
,
"Dolby Surround Mode"
,
OFFSET
(dolby_surround_mode),
AV_OPT_TYPE_INT
, {.i64 =
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
AC3ENC_OPT_MODE_ON
,
AC3ENC_PARAM
,
"dsur_mode"
},
44
{
"notindicated"
,
"Not Indicated (default)"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_NOT_INDICATED
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"dsur_mode"
},
45
{
"on"
,
"Dolby Surround Encoded"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_MODE_ON
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"dsur_mode"
},
46
{
"off"
,
"Not Dolby Surround Encoded"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_MODE_OFF
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"dsur_mode"
},
47
{
"original"
,
"Original Bit Stream"
,
OFFSET
(original),
AV_OPT_TYPE_INT
, {.i64 =
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
, 1,
AC3ENC_PARAM
},
48
/* extended bitstream information */
49
{
"dmix_mode"
,
"Preferred Stereo Downmix Mode"
,
OFFSET
(preferred_stereo_downmix),
AV_OPT_TYPE_INT
, {.i64 =
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
AC3ENC_OPT_DOWNMIX_LORO
,
AC3ENC_PARAM
,
"dmix_mode"
},
50
{
"notindicated"
,
"Not Indicated (default)"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_NOT_INDICATED
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"dmix_mode"
},
51
{
"ltrt"
,
"Lt/Rt Downmix Preferred"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_DOWNMIX_LTRT
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"dmix_mode"
},
52
{
"loro"
,
"Lo/Ro Downmix Preferred"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_DOWNMIX_LORO
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"dmix_mode"
},
53
{
"ltrt_cmixlev"
,
"Lt/Rt Center Mix Level"
,
OFFSET
(
ltrt_center_mix_level
),
AV_OPT_TYPE_FLOAT
, {.dbl = -1.0 }, -1.0, 2.0,
AC3ENC_PARAM
},
54
{
"ltrt_surmixlev"
,
"Lt/Rt Surround Mix Level"
,
OFFSET
(
ltrt_surround_mix_level
),
AV_OPT_TYPE_FLOAT
, {.dbl = -1.0 }, -1.0, 2.0,
AC3ENC_PARAM
},
55
{
"loro_cmixlev"
,
"Lo/Ro Center Mix Level"
,
OFFSET
(
loro_center_mix_level
),
AV_OPT_TYPE_FLOAT
, {.dbl = -1.0 }, -1.0, 2.0,
AC3ENC_PARAM
},
56
{
"loro_surmixlev"
,
"Lo/Ro Surround Mix Level"
,
OFFSET
(
loro_surround_mix_level
),
AV_OPT_TYPE_FLOAT
, {.dbl = -1.0 }, -1.0, 2.0,
AC3ENC_PARAM
},
57
{
"dsurex_mode"
,
"Dolby Surround EX Mode"
,
OFFSET
(dolby_surround_ex_mode),
AV_OPT_TYPE_INT
, {.i64 =
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
AC3ENC_OPT_MODE_ON
,
AC3ENC_PARAM
,
"dsurex_mode"
},
58
{
"notindicated"
,
"Not Indicated (default)"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_NOT_INDICATED
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"dsurex_mode"
},
59
{
"on"
,
"Dolby Surround EX Encoded"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_MODE_ON
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"dsurex_mode"
},
60
{
"off"
,
"Not Dolby Surround EX Encoded"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_MODE_OFF
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"dsurex_mode"
},
61
{
"dheadphone_mode"
,
"Dolby Headphone Mode"
,
OFFSET
(dolby_headphone_mode),
AV_OPT_TYPE_INT
, {.i64 =
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
AC3ENC_OPT_MODE_ON
,
AC3ENC_PARAM
,
"dheadphone_mode"
},
62
{
"notindicated"
,
"Not Indicated (default)"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_NOT_INDICATED
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"dheadphone_mode"
},
63
{
"on"
,
"Dolby Headphone Encoded"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_MODE_ON
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"dheadphone_mode"
},
64
{
"off"
,
"Not Dolby Headphone Encoded"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_MODE_OFF
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"dheadphone_mode"
},
65
{
"ad_conv_type"
,
"A/D Converter Type"
,
OFFSET
(ad_converter_type),
AV_OPT_TYPE_INT
, {.i64 =
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
AC3ENC_OPT_ADCONV_HDCD
,
AC3ENC_PARAM
,
"ad_conv_type"
},
66
{
"standard"
,
"Standard (default)"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_ADCONV_STANDARD
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"ad_conv_type"
},
67
{
"hdcd"
,
"HDCD"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_ADCONV_HDCD
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"ad_conv_type"
},
68
/* Other Encoding Options */
69
{
"stereo_rematrixing"
,
"Stereo Rematrixing"
,
OFFSET
(stereo_rematrixing),
AV_OPT_TYPE_INT
, {.i64 =
AC3ENC_OPT_ON
},
AC3ENC_OPT_OFF
,
AC3ENC_OPT_ON
,
AC3ENC_PARAM
},
70
{
"channel_coupling"
,
"Channel Coupling"
,
OFFSET
(channel_coupling),
AV_OPT_TYPE_INT
, {.i64 =
AC3ENC_OPT_AUTO
},
AC3ENC_OPT_AUTO
,
AC3ENC_OPT_ON
,
AC3ENC_PARAM
,
"channel_coupling"
},
71
{
"auto"
,
"Selected by the Encoder"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_AUTO
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"channel_coupling"
},
72
{
"cpl_start_band"
,
"Coupling Start Band"
,
OFFSET
(cpl_start),
AV_OPT_TYPE_INT
, {.i64 =
AC3ENC_OPT_AUTO
},
AC3ENC_OPT_AUTO
, 15,
AC3ENC_PARAM
,
"cpl_start_band"
},
73
{
"auto"
,
"Selected by the Encoder"
, 0,
AV_OPT_TYPE_CONST
, {.i64 =
AC3ENC_OPT_AUTO
}, INT_MIN, INT_MAX,
AC3ENC_PARAM
,
"cpl_start_band"
},
74
{
NULL
}
75
};
76
77
static
const
AVCodecDefault
ac3_defaults
[] = {
78
{
"b"
,
"0"
},
79
{
NULL
}
80
};
Generated on Sat May 25 2013 04:01:00 for FFmpeg by
1.8.2