summaryrefslogtreecommitdiff
path: root/libavfilter/vf_hue.c
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2013-02-19 23:38:41 +0100
committerStefano Sabatini <stefasab@gmail.com>2013-02-20 11:28:59 +0100
commitd709a18ac2273321a98856e854b911f417db2cbd (patch)
tree156f1bfe1f35109f2b764946fb12a0ce0bdd39e0 /libavfilter/vf_hue.c
parent088f20a33251502851958a2b5468dbe07fbf3ff6 (diff)
lavfi/hue: simplify parsing by making use of option shorthands
Diffstat (limited to 'libavfilter/vf_hue.c')
-rw-r--r--libavfilter/vf_hue.c37
1 files changed, 3 insertions, 34 deletions
diff --git a/libavfilter/vf_hue.c b/libavfilter/vf_hue.c
index 7bc3d37dad..b36cbe4d81 100644
--- a/libavfilter/vf_hue.c
+++ b/libavfilter/vf_hue.c
@@ -130,14 +130,10 @@ static inline void compute_sin_and_cos(HueContext *hue)
static inline int set_options(AVFilterContext *ctx, const char *args)
{
HueContext *hue = ctx->priv;
- int n, ret;
- char c1 = 0, c2 = 0;
+ int ret;
char *old_hue_expr, *old_hue_deg_expr, *old_saturation_expr;
AVExpr *old_hue_pexpr, *old_hue_deg_pexpr, *old_saturation_pexpr;
-
- if (args) {
- /* named options syntax */
- if (strchr(args, '=')) {
+ static const char *shorthand[] = { "h", "s", NULL };
old_hue_expr = hue->hue_expr;
old_hue_deg_expr = hue->hue_deg_expr;
old_saturation_expr = hue->saturation_expr;
@@ -150,7 +146,7 @@ static inline int set_options(AVFilterContext *ctx, const char *args)
hue->hue_deg_expr = NULL;
hue->saturation_expr = NULL;
- if ((ret = av_set_options_string(hue, args, "=", ":")) < 0)
+ if ((ret = av_opt_set_from_string(hue, args, shorthand, "=", ":")) < 0)
return ret;
if (hue->hue_expr && hue->hue_deg_expr) {
av_log(ctx, AV_LOG_ERROR,
@@ -172,33 +168,6 @@ static inline int set_options(AVFilterContext *ctx, const char *args)
"H_expr:%s h_deg_expr:%s s_expr:%s\n",
hue->hue_expr, hue->hue_deg_expr, hue->saturation_expr);
- /* compatibility h:s syntax */
- } else {
- n = sscanf(args, "%f%c%f%c", &hue->hue_deg, &c1, &hue->saturation, &c2);
- if (n != 1 && (n != 3 || c1 != ':')) {
- av_log(ctx, AV_LOG_ERROR,
- "Invalid syntax for argument '%s': "
- "must be in the form 'hue[:saturation]'\n", args);
- return AVERROR(EINVAL);
- }
-
- if (hue->saturation < SAT_MIN_VAL || hue->saturation > SAT_MAX_VAL) {
- av_log(ctx, AV_LOG_ERROR,
- "Invalid value for saturation %0.1f: "
- "must be included between range %d and +%d\n",
- hue->saturation, SAT_MIN_VAL, SAT_MAX_VAL);
- return AVERROR(EINVAL);
- }
-
- hue->hue = hue->hue_deg * M_PI / 180;
- hue->flat_syntax = 1;
-
- av_log(ctx, AV_LOG_VERBOSE,
- "H:%0.1f h:%0.1f s:%0.1f\n",
- hue->hue, hue->hue_deg, hue->saturation);
- }
- }
-
compute_sin_and_cos(hue);
return 0;