From: Andreas Rheinhardt Date: Mon, 24 Aug 2020 21:03:45 +0000 (+0200) Subject: avfilter/af_headphone: Avoid duplicating string needlessly X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=bff1d0c6587243369f12c575f5dcb20d6e7e910b;hp=71daaafa3a7f0e3494b73055bdbb3fd8aa114173;p=ffmpeg avfilter/af_headphone: Avoid duplicating string needlessly The string given by an AVOption that contains the channel assignment is used only once; ergo it doesn't matter that parsing the string via av_strtok() is destructive. There is no need to make a copy. Reviewed-by: Paul B Mahol Signed-off-by: Andreas Rheinhardt --- diff --git a/libavfilter/af_headphone.c b/libavfilter/af_headphone.c index 32939af8546..967f8ed5a63 100644 --- a/libavfilter/af_headphone.c +++ b/libavfilter/af_headphone.c @@ -100,16 +100,13 @@ static int parse_channel_name(const char *arg, uint64_t *rchannel) static void parse_map(AVFilterContext *ctx) { HeadphoneContext *s = ctx->priv; - char *arg, *tokenizer, *p, *args = av_strdup(s->map); + char *arg, *tokenizer, *p; uint64_t used_channels = 0; - if (!args) - return; - p = args; - s->lfe_channel = -1; s->nb_inputs = 1; + p = s->map; while ((arg = av_strtok(p, "|", &tokenizer))) { uint64_t out_channel; @@ -133,8 +130,6 @@ static void parse_map(AVFilterContext *ctx) s->nb_inputs = 2; else s->nb_inputs = s->nb_irs + 1; - - av_free(args); } typedef struct ThreadData {