On 02/17/2014 09:39 PM, Tim Walker wrote:
> This is actually defined in the A/52 specification.
> ---
> libavcodec/ac3enc.h | 1 +
> libavcodec/ac3enc_opts_template.c | 3 ++-
> 2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h
> index a66cd22..3c2b42d 100644
> --- a/libavcodec/ac3enc.h
> +++ b/libavcodec/ac3enc.h
> @@ -77,6 +77,7 @@ typedef int64_t CoefSumType;
> #define AC3ENC_OPT_NOT_INDICATED 0
> #define AC3ENC_OPT_MODE_ON 2
> #define AC3ENC_OPT_MODE_OFF 1
> +#define AC3ENC_OPT_MODE_RESERVED 3 // defined in A/52 for dsurexmod
> (indicates DPL2z)
>
> /* specific option values */
> #define AC3ENC_OPT_LARGE_ROOM 1
> diff --git a/libavcodec/ac3enc_opts_template.c
> b/libavcodec/ac3enc_opts_template.c
> index 8cb5ad1..e3f5b46 100644
> --- a/libavcodec/ac3enc_opts_template.c
> +++ b/libavcodec/ac3enc_opts_template.c
> @@ -55,10 +55,11 @@ static const AVOption ac3_options[] = {
> {"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},
> {"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},
> {"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},
> -{"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"},
> +{"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_RESERVED, AC3ENC_PARAM, "dsurex_mode"},
> {"notindicated", "Not Indicated (default)", 0, AV_OPT_TYPE_CONST,
> {.i64 = AC3ENC_OPT_NOT_INDICATED }, INT_MIN, INT_MAX, AC3ENC_PARAM,
> "dsurex_mode"},
> {"on", "Dolby Surround EX Encoded", 0, AV_OPT_TYPE_CONST,
> {.i64 = AC3ENC_OPT_MODE_ON }, INT_MIN, INT_MAX, AC3ENC_PARAM,
> "dsurex_mode"},
> {"off", "Not Dolby Surround EX Encoded", 0, AV_OPT_TYPE_CONST,
> {.i64 = AC3ENC_OPT_MODE_OFF }, INT_MIN, INT_MAX, AC3ENC_PARAM,
> "dsurex_mode"},
> + {"dpliiz", "Dolby Pro Logic IIz-encoded", 0, AV_OPT_TYPE_CONST,
> {.i64 = AC3ENC_OPT_MODE_RESERVED }, INT_MIN, INT_MAX, AC3ENC_PARAM,
> "dsurex_mode"},
> {"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"},
> {"notindicated", "Not Indicated (default)", 0, AV_OPT_TYPE_CONST,
> {.i64 = AC3ENC_OPT_NOT_INDICATED }, INT_MIN, INT_MAX, AC3ENC_PARAM,
> "dheadphone_mode"},
> {"on", "Dolby Headphone Encoded", 0, AV_OPT_TYPE_CONST,
> {.i64 = AC3ENC_OPT_MODE_ON }, INT_MIN, INT_MAX, AC3ENC_PARAM,
> "dheadphone_mode"},
Um, I don't quite get this patch. If A/52 says "Reserved" that means
don't use it. How can that be taken to mean DPL2z?
-Justin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel