summaryrefslogtreecommitdiff
path: root/libavfilter/asrc_abuffer.c
diff options
context:
space:
mode:
authorStefano Sabatini <stefano.sabatini-lala@poste.it>2011-08-21 11:38:30 +0200
committerStefano Sabatini <stefano.sabatini-lala@poste.it>2011-08-21 11:38:30 +0200
commitc5d9bd1938f0e92c4ec16023ef1e1ff253cc9c51 (patch)
treeba8651bf1aaee99ea994f23960f895e2f33d6129 /libavfilter/asrc_abuffer.c
parent587c8ab9128455ccf2580c5350992e4a402dc8fd (diff)
asrc_abuffer: pass non-const string to strtok_r in init()
Fix GCC warning: asrc_abuffer.c: In function ‘init’: asrc_abuffer.c:258: warning: passing argument 1 of ‘strtok_r’ discards qualifiers from pointer target type
Diffstat (limited to 'libavfilter/asrc_abuffer.c')
-rw-r--r--libavfilter/asrc_abuffer.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libavfilter/asrc_abuffer.c b/libavfilter/asrc_abuffer.c
index badc2d8adf..cfa5f67486 100644
--- a/libavfilter/asrc_abuffer.c
+++ b/libavfilter/asrc_abuffer.c
@@ -249,10 +249,11 @@ int av_asrc_buffer_add_buffer(AVFilterContext *ctx,
pts, flags);
}
-static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
+static av_cold int init(AVFilterContext *ctx, const char *args0, void *opaque)
{
ABufferSourceContext *abuffer = ctx->priv;
char *arg = NULL, *ptr, chlayout_str[16];
+ char *args = av_strdup(args0);
int ret;
arg = strtok_r(args, ":", &ptr);
@@ -260,8 +261,10 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
#define ADD_FORMAT(fmt_name) \
if (!arg) \
goto arg_fail; \
- if ((ret = ff_parse_##fmt_name(&abuffer->fmt_name, arg, ctx)) < 0) \
+ if ((ret = ff_parse_##fmt_name(&abuffer->fmt_name, arg, ctx)) < 0) { \
+ av_freep(&args); \
return ret; \
+ } \
if (*args) \
arg = strtok_r(NULL, ":", &ptr)
@@ -281,12 +284,14 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
av_log(ctx, AV_LOG_INFO, "format:%s layout:%s rate:%d\n",
av_get_sample_fmt_name(abuffer->sample_format), chlayout_str,
abuffer->sample_rate);
+ av_freep(&args);
return 0;
arg_fail:
av_log(ctx, AV_LOG_ERROR, "Invalid arguments, must be of the form "
"sample_rate:sample_fmt:channel_layout:packing\n");
+ av_freep(&args);
return AVERROR(EINVAL);
}