Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
c766eb1c
Commit
c766eb1c
authored
Aug 09, 2011
by
Justin Ruggles
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ac3enc: add macros for option names to make them more understandable.
parent
9542ca9f
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
94 additions
and
76 deletions
+94
-76
ac3enc.c
libavcodec/ac3enc.c
+46
-45
ac3enc.h
libavcodec/ac3enc.h
+17
-0
ac3enc_opts_template.c
libavcodec/ac3enc_opts_template.c
+31
-31
No files found.
libavcodec/ac3enc.c
View file @
c766eb1c
...
...
@@ -1664,9 +1664,9 @@ static void dprint_options(AC3EncodeContext *s)
if
(
opt
->
audio_production_info
)
{
av_dlog
(
avctx
,
"mixing_level: %ddB
\n
"
,
opt
->
mixing_level
);
switch
(
opt
->
room_type
)
{
case
0
:
av_strlcpy
(
strbuf
,
"notindicated"
,
32
);
break
;
case
1
:
av_strlcpy
(
strbuf
,
"large"
,
32
);
break
;
case
2
:
av_strlcpy
(
strbuf
,
"small"
,
32
);
break
;
case
AC3ENC_OPT_NOT_INDICATED
:
av_strlcpy
(
strbuf
,
"notindicated"
,
32
);
break
;
case
AC3ENC_OPT_LARGE_ROOM
:
av_strlcpy
(
strbuf
,
"large"
,
32
);
break
;
case
AC3ENC_OPT_SMALL_ROOM
:
av_strlcpy
(
strbuf
,
"small"
,
32
);
break
;
default:
snprintf
(
strbuf
,
32
,
"ERROR (%d)"
,
opt
->
room_type
);
}
av_dlog
(
avctx
,
"room_type: %s
\n
"
,
strbuf
);
...
...
@@ -1678,9 +1678,9 @@ static void dprint_options(AC3EncodeContext *s)
av_dlog
(
avctx
,
"dialnorm: %ddB
\n
"
,
opt
->
dialogue_level
);
if
(
s
->
channel_mode
==
AC3_CHMODE_STEREO
)
{
switch
(
opt
->
dolby_surround_mode
)
{
case
0
:
av_strlcpy
(
strbuf
,
"notindicated"
,
32
);
break
;
case
1
:
av_strlcpy
(
strbuf
,
"on"
,
32
);
break
;
case
2
:
av_strlcpy
(
strbuf
,
"off"
,
32
);
break
;
case
AC3ENC_OPT_NOT_INDICATED
:
av_strlcpy
(
strbuf
,
"notindicated"
,
32
);
break
;
case
AC3ENC_OPT_MODE_ON
:
av_strlcpy
(
strbuf
,
"on"
,
32
);
break
;
case
AC3ENC_OPT_MODE_OFF
:
av_strlcpy
(
strbuf
,
"off"
,
32
);
break
;
default:
snprintf
(
strbuf
,
32
,
"ERROR (%d)"
,
opt
->
dolby_surround_mode
);
}
av_dlog
(
avctx
,
"dsur_mode: %s
\n
"
,
strbuf
);
...
...
@@ -1692,9 +1692,9 @@ static void dprint_options(AC3EncodeContext *s)
if
(
s
->
bitstream_id
==
6
)
{
if
(
opt
->
extended_bsi_1
)
{
switch
(
opt
->
preferred_stereo_downmix
)
{
case
0
:
av_strlcpy
(
strbuf
,
"notindicated"
,
32
);
break
;
case
1
:
av_strlcpy
(
strbuf
,
"ltrt"
,
32
);
break
;
case
2
:
av_strlcpy
(
strbuf
,
"loro"
,
32
);
break
;
case
AC3ENC_OPT_NOT_INDICATED
:
av_strlcpy
(
strbuf
,
"notindicated"
,
32
);
break
;
case
AC3ENC_OPT_DOWNMIX_LTRT
:
av_strlcpy
(
strbuf
,
"ltrt"
,
32
);
break
;
case
AC3ENC_OPT_DOWNMIX_LORO
:
av_strlcpy
(
strbuf
,
"loro"
,
32
);
break
;
default:
snprintf
(
strbuf
,
32
,
"ERROR (%d)"
,
opt
->
preferred_stereo_downmix
);
}
av_dlog
(
avctx
,
"dmix_mode: %s
\n
"
,
strbuf
);
...
...
@@ -1711,23 +1711,23 @@ static void dprint_options(AC3EncodeContext *s)
}
if
(
opt
->
extended_bsi_2
)
{
switch
(
opt
->
dolby_surround_ex_mode
)
{
case
0
:
av_strlcpy
(
strbuf
,
"notindicated"
,
32
);
break
;
case
1
:
av_strlcpy
(
strbuf
,
"on"
,
32
);
break
;
case
2
:
av_strlcpy
(
strbuf
,
"off"
,
32
);
break
;
case
AC3ENC_OPT_NOT_INDICATED
:
av_strlcpy
(
strbuf
,
"notindicated"
,
32
);
break
;
case
AC3ENC_OPT_MODE_ON
:
av_strlcpy
(
strbuf
,
"on"
,
32
);
break
;
case
AC3ENC_OPT_MODE_OFF
:
av_strlcpy
(
strbuf
,
"off"
,
32
);
break
;
default:
snprintf
(
strbuf
,
32
,
"ERROR (%d)"
,
opt
->
dolby_surround_ex_mode
);
}
av_dlog
(
avctx
,
"dsurex_mode: %s
\n
"
,
strbuf
);
switch
(
opt
->
dolby_headphone_mode
)
{
case
0
:
av_strlcpy
(
strbuf
,
"notindicated"
,
32
);
break
;
case
1
:
av_strlcpy
(
strbuf
,
"on"
,
32
);
break
;
case
2
:
av_strlcpy
(
strbuf
,
"off"
,
32
);
break
;
case
AC3ENC_OPT_NOT_INDICATED
:
av_strlcpy
(
strbuf
,
"notindicated"
,
32
);
break
;
case
AC3ENC_OPT_MODE_ON
:
av_strlcpy
(
strbuf
,
"on"
,
32
);
break
;
case
AC3ENC_OPT_MODE_OFF
:
av_strlcpy
(
strbuf
,
"off"
,
32
);
break
;
default:
snprintf
(
strbuf
,
32
,
"ERROR (%d)"
,
opt
->
dolby_headphone_mode
);
}
av_dlog
(
avctx
,
"dheadphone_mode: %s
\n
"
,
strbuf
);
switch
(
opt
->
ad_converter_type
)
{
case
0
:
av_strlcpy
(
strbuf
,
"standard"
,
32
);
break
;
case
1
:
av_strlcpy
(
strbuf
,
"hdcd"
,
32
);
break
;
case
AC3ENC_OPT_ADCONV_STANDARD
:
av_strlcpy
(
strbuf
,
"standard"
,
32
);
break
;
case
AC3ENC_OPT_ADCONV_HDCD
:
av_strlcpy
(
strbuf
,
"hdcd"
,
32
);
break
;
default:
snprintf
(
strbuf
,
32
,
"ERROR (%d)"
,
opt
->
ad_converter_type
);
}
av_dlog
(
avctx
,
"ad_conv_type: %s
\n
"
,
strbuf
);
...
...
@@ -1791,7 +1791,7 @@ int ff_ac3_validate_metadata(AC3EncodeContext *s)
opt
->
eac3_info_metadata
=
0
;
/* determine mixing metadata / xbsi1 use */
if
(
s
->
channel_mode
>
AC3_CHMODE_STEREO
&&
opt
->
preferred_stereo_downmix
>=
0
)
{
if
(
s
->
channel_mode
>
AC3_CHMODE_STEREO
&&
opt
->
preferred_stereo_downmix
!=
AC3ENC_OPT_NONE
)
{
opt
->
extended_bsi_1
=
1
;
opt
->
eac3_mixing_metadata
=
1
;
}
...
...
@@ -1810,28 +1810,29 @@ int ff_ac3_validate_metadata(AC3EncodeContext *s)
/* determine info metadata use */
if
(
avctx
->
audio_service_type
!=
AV_AUDIO_SERVICE_TYPE_MAIN
)
opt
->
eac3_info_metadata
=
1
;
if
(
opt
->
copyright
>=
0
||
opt
->
original
>=
0
)
if
(
opt
->
copyright
!=
AC3ENC_OPT_NONE
||
opt
->
original
!=
AC3ENC_OPT_NONE
)
opt
->
eac3_info_metadata
=
1
;
if
(
s
->
channel_mode
==
AC3_CHMODE_STEREO
&&
(
opt
->
dolby_headphone_mode
>=
0
||
opt
->
dolby_surround_mode
>=
0
))
(
opt
->
dolby_headphone_mode
!=
AC3ENC_OPT_NONE
||
opt
->
dolby_surround_mode
!=
AC3ENC_OPT_NONE
))
opt
->
eac3_info_metadata
=
1
;
if
(
s
->
channel_mode
>=
AC3_CHMODE_2F2R
&&
opt
->
dolby_surround_ex_mode
>=
0
)
if
(
s
->
channel_mode
>=
AC3_CHMODE_2F2R
&&
opt
->
dolby_surround_ex_mode
!=
AC3ENC_OPT_NONE
)
opt
->
eac3_info_metadata
=
1
;
if
(
opt
->
mixing_level
>=
0
||
opt
->
room_type
>=
0
||
opt
->
ad_converter_type
>=
0
)
{
if
(
opt
->
mixing_level
!=
AC3ENC_OPT_NONE
||
opt
->
room_type
!=
AC3ENC_OPT_NONE
||
opt
->
ad_converter_type
!=
AC3ENC_OPT_NONE
)
{
opt
->
audio_production_info
=
1
;
opt
->
eac3_info_metadata
=
1
;
}
}
else
{
/* determine audio production info use */
if
(
opt
->
mixing_level
>=
0
||
opt
->
room_type
>=
0
)
if
(
opt
->
mixing_level
!=
AC3ENC_OPT_NONE
||
opt
->
room_type
!=
AC3ENC_OPT_NONE
)
opt
->
audio_production_info
=
1
;
/* determine xbsi2 use */
if
(
s
->
channel_mode
>=
AC3_CHMODE_2F2R
&&
opt
->
dolby_surround_ex_mode
>=
0
)
if
(
s
->
channel_mode
>=
AC3_CHMODE_2F2R
&&
opt
->
dolby_surround_ex_mode
!=
AC3ENC_OPT_NONE
)
opt
->
extended_bsi_2
=
1
;
if
(
s
->
channel_mode
==
AC3_CHMODE_STEREO
&&
opt
->
dolby_headphone_mode
>=
0
)
if
(
s
->
channel_mode
==
AC3_CHMODE_STEREO
&&
opt
->
dolby_headphone_mode
!=
AC3ENC_OPT_NONE
)
opt
->
extended_bsi_2
=
1
;
if
(
opt
->
ad_converter_type
>=
0
)
if
(
opt
->
ad_converter_type
!=
AC3ENC_OPT_NONE
)
opt
->
extended_bsi_2
=
1
;
}
...
...
@@ -1852,8 +1853,8 @@ int ff_ac3_validate_metadata(AC3EncodeContext *s)
/* validate extended bsi 1 / mixing metadata */
if
(
opt
->
extended_bsi_1
||
opt
->
eac3_mixing_metadata
)
{
/* default preferred stereo downmix */
if
(
opt
->
preferred_stereo_downmix
<
0
)
opt
->
preferred_stereo_downmix
=
0
;
if
(
opt
->
preferred_stereo_downmix
==
AC3ENC_OPT_NONE
)
opt
->
preferred_stereo_downmix
=
AC3ENC_OPT_NOT_INDICATED
;
if
(
!
s
->
eac3
||
s
->
has_center
)
{
/* validate Lt/Rt center mix level */
validate_mix_level
(
avctx
,
"ltrt_center_mix_level"
,
...
...
@@ -1895,35 +1896,35 @@ int ff_ac3_validate_metadata(AC3EncodeContext *s)
/* validate extended bsi 2 / info metadata */
if
(
opt
->
extended_bsi_2
||
opt
->
eac3_info_metadata
)
{
/* default dolby headphone mode */
if
(
opt
->
dolby_headphone_mode
<
0
)
opt
->
dolby_headphone_mode
=
0
;
if
(
opt
->
dolby_headphone_mode
==
AC3ENC_OPT_NONE
)
opt
->
dolby_headphone_mode
=
AC3ENC_OPT_NOT_INDICATED
;
/* default dolby surround ex mode */
if
(
opt
->
dolby_surround_ex_mode
<
0
)
opt
->
dolby_surround_ex_mode
=
0
;
if
(
opt
->
dolby_surround_ex_mode
==
AC3ENC_OPT_NONE
)
opt
->
dolby_surround_ex_mode
=
AC3ENC_OPT_NOT_INDICATED
;
/* default A/D converter type */
if
(
opt
->
ad_converter_type
<
0
)
opt
->
ad_converter_type
=
0
;
if
(
opt
->
ad_converter_type
==
AC3ENC_OPT_NONE
)
opt
->
ad_converter_type
=
AC3ENC_OPT_ADCONV_STANDARD
;
}
/* copyright & original defaults */
if
(
!
s
->
eac3
||
opt
->
eac3_info_metadata
)
{
/* default copyright */
if
(
opt
->
copyright
<
0
)
opt
->
copyright
=
0
;
if
(
opt
->
copyright
==
AC3ENC_OPT_NONE
)
opt
->
copyright
=
AC3ENC_OPT_OFF
;
/* default original */
if
(
opt
->
original
<
0
)
opt
->
original
=
1
;
if
(
opt
->
original
==
AC3ENC_OPT_NONE
)
opt
->
original
=
AC3ENC_OPT_ON
;
}
/* dolby surround mode default */
if
(
!
s
->
eac3
||
opt
->
eac3_info_metadata
)
{
if
(
opt
->
dolby_surround_mode
<
0
)
opt
->
dolby_surround_mode
=
0
;
if
(
opt
->
dolby_surround_mode
==
AC3ENC_OPT_NONE
)
opt
->
dolby_surround_mode
=
AC3ENC_OPT_NOT_INDICATED
;
}
/* validate audio production info */
if
(
opt
->
audio_production_info
)
{
if
(
opt
->
mixing_level
<
0
)
{
if
(
opt
->
mixing_level
==
AC3ENC_OPT_NONE
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"mixing_level must be set if "
"room_type is set
\n
"
);
return
AVERROR
(
EINVAL
);
...
...
@@ -1934,8 +1935,8 @@ int ff_ac3_validate_metadata(AC3EncodeContext *s)
return
AVERROR
(
EINVAL
);
}
/* default room type */
if
(
opt
->
room_type
<
0
)
opt
->
room_type
=
0
;
if
(
opt
->
room_type
==
AC3ENC_OPT_NONE
)
opt
->
room_type
=
AC3ENC_OPT_NOT_INDICATED
;
}
/* set bitstream id for alternate bitstream syntax */
...
...
@@ -2207,12 +2208,12 @@ static av_cold void set_bandwidth(AC3EncodeContext *s)
/* initialize coupling strategy */
if
(
s
->
cpl_enabled
)
{
if
(
s
->
options
.
cpl_start
>=
0
)
{
if
(
s
->
options
.
cpl_start
!=
AC3ENC_OPT_AUTO
)
{
cpl_start
=
s
->
options
.
cpl_start
;
}
else
{
cpl_start
=
ac3_coupling_start_tab
[
s
->
channel_mode
-
2
][
s
->
bit_alloc
.
sr_code
][
s
->
frame_size_code
/
2
];
if
(
cpl_start
<
0
)
{
if
(
s
->
options
.
channel_coupling
<
0
)
if
(
s
->
options
.
channel_coupling
==
AC3ENC_OPT_AUTO
)
s
->
cpl_enabled
=
0
;
else
cpl_start
=
15
;
...
...
libavcodec/ac3enc.h
View file @
c766eb1c
...
...
@@ -65,6 +65,23 @@ typedef int32_t CoefType;
typedef
int64_t
CoefSumType
;
#endif
/* common option values */
#define AC3ENC_OPT_NONE -1
#define AC3ENC_OPT_AUTO -1
#define AC3ENC_OPT_OFF 0
#define AC3ENC_OPT_ON 1
#define AC3ENC_OPT_NOT_INDICATED 0
#define AC3ENC_OPT_MODE_ON 1
#define AC3ENC_OPT_MODE_OFF 2
/* specific option values */
#define AC3ENC_OPT_LARGE_ROOM 1
#define AC3ENC_OPT_SMALL_ROOM 2
#define AC3ENC_OPT_DOWNMIX_LTRT 1
#define AC3ENC_OPT_DOWNMIX_LORO 2
#define AC3ENC_OPT_ADCONV_STANDARD 0
#define AC3ENC_OPT_ADCONV_HDCD 1
/**
* Encoding Options used by AVOption.
...
...
libavcodec/ac3enc_opts_template.c
View file @
c766eb1c
...
...
@@ -37,46 +37,46 @@ static const AVOption eac3_options[] = {
{
"surround_mixlev"
,
"Surround Mix Level"
,
OFFSET
(
surround_mix_level
),
FF_OPT_TYPE_FLOAT
,
{.
dbl
=
LEVEL_MINUS_6DB
},
0
.
0
,
1
.
0
,
AC3ENC_PARAM
},
#endif
/* audio production information */
{
"mixing_level"
,
"Mixing Level"
,
OFFSET
(
mixing_level
),
FF_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
111
,
AC3ENC_PARAM
},
{
"room_type"
,
"Room Type"
,
OFFSET
(
room_type
),
FF_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
2
,
AC3ENC_PARAM
,
"room_type"
},
{
"notindicated"
,
"Not Indicated (default)"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
0
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"room_type"
},
{
"large"
,
"Large Room"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
1
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"room_type"
},
{
"small"
,
"Small Room"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
2
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"room_type"
},
{
"mixing_level"
,
"Mixing Level"
,
OFFSET
(
mixing_level
),
FF_OPT_TYPE_INT
,
{.
dbl
=
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
111
,
AC3ENC_PARAM
},
{
"room_type"
,
"Room Type"
,
OFFSET
(
room_type
),
FF_OPT_TYPE_INT
,
{.
dbl
=
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
AC3ENC_OPT_SMALL_ROOM
,
AC3ENC_PARAM
,
"room_type"
},
{
"notindicated"
,
"Not Indicated (default)"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_NOT_INDICATED
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"room_type"
},
{
"large"
,
"Large Room"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_LARGE_ROOM
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"room_type"
},
{
"small"
,
"Small Room"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_SMALL_ROOM
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"room_type"
},
/* other metadata options */
{
"copyright"
,
"Copyright Bit"
,
OFFSET
(
copyright
),
FF_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
1
,
AC3ENC_PARAM
},
{
"copyright"
,
"Copyright Bit"
,
OFFSET
(
copyright
),
FF_OPT_TYPE_INT
,
{.
dbl
=
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
1
,
AC3ENC_PARAM
},
{
"dialnorm"
,
"Dialogue Level (dB)"
,
OFFSET
(
dialogue_level
),
FF_OPT_TYPE_INT
,
{.
dbl
=
-
31
},
-
31
,
-
1
,
AC3ENC_PARAM
},
{
"dsur_mode"
,
"Dolby Surround Mode"
,
OFFSET
(
dolby_surround_mode
),
FF_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
2
,
AC3ENC_PARAM
,
"dsur_mode"
},
{
"notindicated"
,
"Not Indicated (default)"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
0
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dsur_mode"
},
{
"on"
,
"Dolby Surround Encoded"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
1
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dsur_mode"
},
{
"off"
,
"Not Dolby Surround Encoded"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
2
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dsur_mode"
},
{
"original"
,
"Original Bit Stream"
,
OFFSET
(
original
),
FF_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
1
,
AC3ENC_PARAM
},
{
"dsur_mode"
,
"Dolby Surround Mode"
,
OFFSET
(
dolby_surround_mode
),
FF_OPT_TYPE_INT
,
{.
dbl
=
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
AC3ENC_OPT_MODE_OFF
,
AC3ENC_PARAM
,
"dsur_mode"
},
{
"notindicated"
,
"Not Indicated (default)"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_NOT_INDICATED
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dsur_mode"
},
{
"on"
,
"Dolby Surround Encoded"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_MODE_ON
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dsur_mode"
},
{
"off"
,
"Not Dolby Surround Encoded"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_MODE_OFF
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dsur_mode"
},
{
"original"
,
"Original Bit Stream"
,
OFFSET
(
original
),
FF_OPT_TYPE_INT
,
{.
dbl
=
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
1
,
AC3ENC_PARAM
},
/* extended bitstream information */
{
"dmix_mode"
,
"Preferred Stereo Downmix Mode"
,
OFFSET
(
preferred_stereo_downmix
),
FF_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
2
,
AC3ENC_PARAM
,
"dmix_mode"
},
{
"notindicated"
,
"Not Indicated (default)"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
0
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dmix_mode"
},
{
"ltrt"
,
"Lt/Rt Downmix Preferred"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
1
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dmix_mode"
},
{
"loro"
,
"Lo/Ro Downmix Preferred"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
2
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dmix_mode"
},
{
"dmix_mode"
,
"Preferred Stereo Downmix Mode"
,
OFFSET
(
preferred_stereo_downmix
),
FF_OPT_TYPE_INT
,
{.
dbl
=
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
AC3ENC_OPT_DOWNMIX_LORO
,
AC3ENC_PARAM
,
"dmix_mode"
},
{
"notindicated"
,
"Not Indicated (default)"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_NOT_INDICATED
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dmix_mode"
},
{
"ltrt"
,
"Lt/Rt Downmix Preferred"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_DOWNMIX_LTRT
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dmix_mode"
},
{
"loro"
,
"Lo/Ro Downmix Preferred"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_DOWNMIX_LORO
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dmix_mode"
},
{
"ltrt_cmixlev"
,
"Lt/Rt Center Mix Level"
,
OFFSET
(
ltrt_center_mix_level
),
FF_OPT_TYPE_FLOAT
,
{.
dbl
=
-
1
.
0
},
-
1
.
0
,
2
.
0
,
AC3ENC_PARAM
},
{
"ltrt_surmixlev"
,
"Lt/Rt Surround Mix Level"
,
OFFSET
(
ltrt_surround_mix_level
),
FF_OPT_TYPE_FLOAT
,
{.
dbl
=
-
1
.
0
},
-
1
.
0
,
2
.
0
,
AC3ENC_PARAM
},
{
"loro_cmixlev"
,
"Lo/Ro Center Mix Level"
,
OFFSET
(
loro_center_mix_level
),
FF_OPT_TYPE_FLOAT
,
{.
dbl
=
-
1
.
0
},
-
1
.
0
,
2
.
0
,
AC3ENC_PARAM
},
{
"loro_surmixlev"
,
"Lo/Ro Surround Mix Level"
,
OFFSET
(
loro_surround_mix_level
),
FF_OPT_TYPE_FLOAT
,
{.
dbl
=
-
1
.
0
},
-
1
.
0
,
2
.
0
,
AC3ENC_PARAM
},
{
"dsurex_mode"
,
"Dolby Surround EX Mode"
,
OFFSET
(
dolby_surround_ex_mode
),
FF_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
2
,
AC3ENC_PARAM
,
"dsurex_mode"
},
{
"notindicated"
,
"Not Indicated (default)"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
0
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dsurex_mode"
},
{
"on"
,
"Dolby Surround EX Encoded"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
1
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dsurex_mode"
},
{
"off"
,
"Not Dolby Surround EX Encoded"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
2
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dsurex_mode"
},
{
"dheadphone_mode"
,
"Dolby Headphone Mode"
,
OFFSET
(
dolby_headphone_mode
),
FF_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
2
,
AC3ENC_PARAM
,
"dheadphone_mode"
},
{
"notindicated"
,
"Not Indicated (default)"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
0
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dheadphone_mode"
},
{
"on"
,
"Dolby Headphone Encoded"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
1
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dheadphone_mode"
},
{
"off"
,
"Not Dolby Headphone Encoded"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
2
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dheadphone_mode"
},
{
"ad_conv_type"
,
"A/D Converter Type"
,
OFFSET
(
ad_converter_type
),
FF_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
1
,
AC3ENC_PARAM
,
"ad_conv_type"
},
{
"standard"
,
"Standard (default)"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
0
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"ad_conv_type"
},
{
"hdcd"
,
"HDCD"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
1
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"ad_conv_type"
},
{
"dsurex_mode"
,
"Dolby Surround EX Mode"
,
OFFSET
(
dolby_surround_ex_mode
),
FF_OPT_TYPE_INT
,
{.
dbl
=
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
AC3ENC_OPT_MODE_OFF
,
AC3ENC_PARAM
,
"dsurex_mode"
},
{
"notindicated"
,
"Not Indicated (default)"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_NOT_INDICATED
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dsurex_mode"
},
{
"on"
,
"Dolby Surround EX Encoded"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_MODE_ON
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dsurex_mode"
},
{
"off"
,
"Not Dolby Surround EX Encoded"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_MODE_OFF
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dsurex_mode"
},
{
"dheadphone_mode"
,
"Dolby Headphone Mode"
,
OFFSET
(
dolby_headphone_mode
),
FF_OPT_TYPE_INT
,
{.
dbl
=
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
AC3ENC_OPT_MODE_OFF
,
AC3ENC_PARAM
,
"dheadphone_mode"
},
{
"notindicated"
,
"Not Indicated (default)"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_NOT_INDICATED
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dheadphone_mode"
},
{
"on"
,
"Dolby Headphone Encoded"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_MODE_ON
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dheadphone_mode"
},
{
"off"
,
"Not Dolby Headphone Encoded"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_MODE_OFF
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"dheadphone_mode"
},
{
"ad_conv_type"
,
"A/D Converter Type"
,
OFFSET
(
ad_converter_type
),
FF_OPT_TYPE_INT
,
{.
dbl
=
AC3ENC_OPT_NONE
},
AC3ENC_OPT_NONE
,
AC3ENC_OPT_ADCONV_HDCD
,
AC3ENC_PARAM
,
"ad_conv_type"
},
{
"standard"
,
"Standard (default)"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_ADCONV_STANDARD
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"ad_conv_type"
},
{
"hdcd"
,
"HDCD"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_ADCONV_HDCD
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"ad_conv_type"
},
/* Other Encoding Options */
{
"stereo_rematrixing"
,
"Stereo Rematrixing"
,
OFFSET
(
stereo_rematrixing
),
FF_OPT_TYPE_INT
,
{.
dbl
=
1
},
0
,
1
,
AC3ENC_PARAM
},
{
"stereo_rematrixing"
,
"Stereo Rematrixing"
,
OFFSET
(
stereo_rematrixing
),
FF_OPT_TYPE_INT
,
{.
dbl
=
AC3ENC_OPT_ON
},
AC3ENC_OPT_OFF
,
AC3ENC_OPT_ON
,
AC3ENC_PARAM
},
#if AC3ENC_TYPE != AC3ENC_TYPE_AC3_FIXED
{
"channel_coupling"
,
"Channel Coupling"
,
OFFSET
(
channel_coupling
),
FF_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
1
,
AC3ENC_PARAM
,
"channel_coupling"
},
{
"auto"
,
"Selected by the Encoder"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
-
1
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"channel_coupling"
},
{
"cpl_start_band"
,
"Coupling Start Band"
,
OFFSET
(
cpl_start
),
FF_OPT_TYPE_INT
,
{.
dbl
=
-
1
},
-
1
,
15
,
AC3ENC_PARAM
,
"cpl_start_band"
},
{
"auto"
,
"Selected by the Encoder"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
-
1
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"cpl_start_band"
},
{
"channel_coupling"
,
"Channel Coupling"
,
OFFSET
(
channel_coupling
),
FF_OPT_TYPE_INT
,
{.
dbl
=
AC3ENC_OPT_AUTO
},
AC3ENC_OPT_AUTO
,
AC3ENC_OPT_ON
,
AC3ENC_PARAM
,
"channel_coupling"
},
{
"auto"
,
"Selected by the Encoder"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_AUTO
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"channel_coupling"
},
{
"cpl_start_band"
,
"Coupling Start Band"
,
OFFSET
(
cpl_start
),
FF_OPT_TYPE_INT
,
{.
dbl
=
AC3ENC_OPT_AUTO
},
AC3ENC_OPT_AUTO
,
15
,
AC3ENC_PARAM
,
"cpl_start_band"
},
{
"auto"
,
"Selected by the Encoder"
,
0
,
FF_OPT_TYPE_CONST
,
{.
dbl
=
AC3ENC_OPT_AUTO
},
INT_MIN
,
INT_MAX
,
AC3ENC_PARAM
,
"cpl_start_band"
},
#endif
{
NULL
}
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment