summaryrefslogtreecommitdiff
path: root/libavfilter/af_hdcd.c
diff options
context:
space:
mode:
authorBurt P <pburt0@gmail.com>2016-08-10 11:35:30 -0500
committerBurt P <pburt0@gmail.com>2016-08-21 13:48:08 -0500
commitaccbb00ba7b3eb84a6a5075b02e9343ebffc3f59 (patch)
tree3645d0079aaae1ead827df4174cbfe5e6bb467aa /libavfilter/af_hdcd.c
parent8c19732a423a979cb4c81ab15917f9d9175fb9cd (diff)
af_hdcd: add AVOption to disable autoconversion in the filter graph
Signed-off-by: Burt P <pburt0@gmail.com>
Diffstat (limited to 'libavfilter/af_hdcd.c')
-rw-r--r--libavfilter/af_hdcd.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/libavfilter/af_hdcd.c b/libavfilter/af_hdcd.c
index a137c119b9..8a3530c668 100644
--- a/libavfilter/af_hdcd.c
+++ b/libavfilter/af_hdcd.c
@@ -916,9 +916,11 @@ typedef struct HDCDContext {
* the amplitude to signal some specific aspect of the decoding
* process. See docs or HDCD_ANA_* defines. */
int analyze_mode;
- int ana_snb; /**< used in tone generation */
+ int ana_snb; /**< used in tone generation */
- int cdt_ms; /**< code detect timer period in ms */
+ int cdt_ms; /**< code detect timer period in ms */
+
+ int disable_autoconvert; /**< disable any format conversion or resampling in the filter graph */
/* end AVOption members */
/** config_input() and config_output() scan links for any resampling
@@ -941,6 +943,8 @@ typedef struct HDCDContext {
#define OFFSET(x) offsetof(HDCDContext, x)
#define A AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
static const AVOption hdcd_options[] = {
+ { "disable_autoconvert", "Disable any format conversion or resampling in the filter graph.",
+ OFFSET(disable_autoconvert), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, A },
{ "process_stereo", "Process stereo channels together. Only apply target_gain when both channels match.",
OFFSET(process_stereo), AV_OPT_TYPE_BOOL, { .i64 = HDCD_PROCESS_STEREO_DEFAULT }, 0, 1, A },
{ "cdt_ms", "Code detect timer period in ms.",
@@ -1718,7 +1722,13 @@ static av_cold int init(AVFilterContext *ctx)
(s->process_stereo) ? "process stereo channels together" : "process each channel separately");
av_log(ctx, AV_LOG_VERBOSE, "Force PE: %s\n",
(s->force_pe) ? "on" : "off");
- av_log(ctx, AV_LOG_VERBOSE, "Analyze mode: [%d] %s\n", s->analyze_mode, ana_mode_str[s->analyze_mode] );
+ av_log(ctx, AV_LOG_VERBOSE, "Analyze mode: [%d] %s\n",
+ s->analyze_mode, ana_mode_str[s->analyze_mode] );
+ if (s->disable_autoconvert)
+ avfilter_graph_set_auto_convert(ctx->graph, AVFILTER_AUTO_CONVERT_NONE);
+ av_log(ctx, AV_LOG_VERBOSE, "Auto-convert: %s (requested: %s)\n",
+ (ctx->graph->disable_auto_convert) ? "disabled" : "enabled",
+ (s->disable_autoconvert) ? "disable" : "do not disable" );
return 0;
}