[FFmpeg-devel] [PATCH 11/25] avfilter/af_headphone: Avoid duplicating string needlessly
Paul B Mahol
onemda at gmail.com
Wed Sep 9 04:18:28 EEST 2020
On Tue, Sep 08, 2020 at 11:18:42PM +0200, Andreas Rheinhardt wrote:
> 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.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
> libavfilter/af_headphone.c | 9 ++-------
> 1 file changed, 2 insertions(+), 7 deletions(-)
Copy is needed to keep options state always known and reusable.
>
> diff --git a/libavfilter/af_headphone.c b/libavfilter/af_headphone.c
> index 32939af854..967f8ed5a6 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 {
> --
> 2.20.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list