static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) { AResampleContext *aresample = ctx->priv; int ret = 0; char *argd = av_strdup(args); aresample->next_pts = AV_NOPTS_VALUE; aresample->swr = swr_alloc(); if (!aresample->swr) return AVERROR(ENOMEM); if (args) { char *ptr=argd, *token; while(token = av_strtok(ptr, ":", &ptr)) { char *value; av_strtok(token, "=", &value); if(value) { if((ret=av_opt_set(aresample->swr, token, value, 0)) < 0) goto end; } else { int out_rate; if ((ret = ff_parse_sample_rate(&out_rate, token, ctx)) < 0) goto end; if((ret = av_opt_set_int(aresample->swr, "osr", out_rate, 0)) < 0) goto end; } } } end: av_free(argd); return ret; }
static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) { AResampleContext *aresample = ctx->priv; int ret; if (args) { if ((ret = ff_parse_sample_rate(&aresample->out_rate, args, ctx)) < 0) return ret; } else { aresample->out_rate = -1; } return 0; }