|
|
@ -27,8 +27,7 @@ |
|
|
|
* audio compand filter |
|
|
|
* audio compand filter |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
#include <string.h> |
|
|
|
#include "libavutil/avstring.h" |
|
|
|
|
|
|
|
|
|
|
|
#include "libavutil/channel_layout.h" |
|
|
|
#include "libavutil/channel_layout.h" |
|
|
|
#include "libavutil/common.h" |
|
|
|
#include "libavutil/common.h" |
|
|
|
#include "libavutil/mathematics.h" |
|
|
|
#include "libavutil/mathematics.h" |
|
|
@ -368,7 +367,7 @@ static int config_output(AVFilterLink *outlink) |
|
|
|
|
|
|
|
|
|
|
|
p = s->attacks; |
|
|
|
p = s->attacks; |
|
|
|
for (i = 0, new_nb_items = 0; i < nb_attacks; i++) { |
|
|
|
for (i = 0, new_nb_items = 0; i < nb_attacks; i++) { |
|
|
|
char *tstr = strtok_r(p, "|", &saveptr); |
|
|
|
char *tstr = av_strtok(p, "|", &saveptr); |
|
|
|
p = NULL; |
|
|
|
p = NULL; |
|
|
|
new_nb_items += sscanf(tstr, "%f", &s->channels[i].attack) == 1; |
|
|
|
new_nb_items += sscanf(tstr, "%f", &s->channels[i].attack) == 1; |
|
|
|
if (s->channels[i].attack < 0) { |
|
|
|
if (s->channels[i].attack < 0) { |
|
|
@ -380,7 +379,7 @@ static int config_output(AVFilterLink *outlink) |
|
|
|
|
|
|
|
|
|
|
|
p = s->decays; |
|
|
|
p = s->decays; |
|
|
|
for (i = 0, new_nb_items = 0; i < nb_decays; i++) { |
|
|
|
for (i = 0, new_nb_items = 0; i < nb_decays; i++) { |
|
|
|
char *tstr = strtok_r(p, "|", &saveptr); |
|
|
|
char *tstr = av_strtok(p, "|", &saveptr); |
|
|
|
p = NULL; |
|
|
|
p = NULL; |
|
|
|
new_nb_items += sscanf(tstr, "%f", &s->channels[i].decay) == 1; |
|
|
|
new_nb_items += sscanf(tstr, "%f", &s->channels[i].decay) == 1; |
|
|
|
if (s->channels[i].decay < 0) { |
|
|
|
if (s->channels[i].decay < 0) { |
|
|
@ -401,7 +400,7 @@ static int config_output(AVFilterLink *outlink) |
|
|
|
#define S(x) s->segments[2 * ((x) + 1)] |
|
|
|
#define S(x) s->segments[2 * ((x) + 1)] |
|
|
|
p = s->points; |
|
|
|
p = s->points; |
|
|
|
for (i = 0, new_nb_items = 0; i < nb_points; i++) { |
|
|
|
for (i = 0, new_nb_items = 0; i < nb_points; i++) { |
|
|
|
char *tstr = strtok_r(p, "|", &saveptr); |
|
|
|
char *tstr = av_strtok(p, "|", &saveptr); |
|
|
|
p = NULL; |
|
|
|
p = NULL; |
|
|
|
if (sscanf(tstr, "%f/%f", &S(i).x, &S(i).y) != 2) { |
|
|
|
if (sscanf(tstr, "%f/%f", &S(i).x, &S(i).y) != 2) { |
|
|
|
av_log(ctx, AV_LOG_ERROR, |
|
|
|
av_log(ctx, AV_LOG_ERROR, |
|
|
|