mirror of https://github.com/mpv-player/mpv
af_scaletempo: minor simplification
This commit is contained in:
parent
c30d5f79b5
commit
ddbecd09b0
|
@ -76,9 +76,9 @@ typedef struct af_scaletempo_s
|
||||||
float ms_stride;
|
float ms_stride;
|
||||||
float percent_overlap;
|
float percent_overlap;
|
||||||
float ms_search;
|
float ms_search;
|
||||||
|
#define SCALE_TEMPO 1
|
||||||
|
#define SCALE_PITCH 2
|
||||||
int speed_opt;
|
int speed_opt;
|
||||||
short speed_tempo;
|
|
||||||
short speed_pitch;
|
|
||||||
} af_scaletempo_t;
|
} af_scaletempo_t;
|
||||||
|
|
||||||
static int fill_queue(struct af_instance *af, struct mp_audio *data, int offset)
|
static int fill_queue(struct af_instance *af, struct mp_audio *data, int offset)
|
||||||
|
@ -282,7 +282,7 @@ static void update_speed(struct af_instance *af, float speed)
|
||||||
|
|
||||||
s->speed = speed;
|
s->speed = speed;
|
||||||
|
|
||||||
double factor = s->speed_pitch ? 1.0 / s->speed : s->speed;
|
double factor = (s->speed_opt & SCALE_PITCH) ? 1.0 / s->speed : s->speed;
|
||||||
s->scale = factor * s->scale_nominal;
|
s->scale = factor * s->scale_nominal;
|
||||||
|
|
||||||
s->frames_stride_scaled = s->scale * s->frames_stride;
|
s->frames_stride_scaled = s->scale * s->frames_stride;
|
||||||
|
@ -434,11 +434,11 @@ static int control(struct af_instance *af, int cmd, void *arg)
|
||||||
}
|
}
|
||||||
case AF_CONTROL_SET_PLAYBACK_SPEED: {
|
case AF_CONTROL_SET_PLAYBACK_SPEED: {
|
||||||
double speed = *(double *)arg;
|
double speed = *(double *)arg;
|
||||||
if (s->speed_tempo) {
|
if (s->speed_opt & SCALE_TEMPO) {
|
||||||
if (s->speed_pitch)
|
if (s->speed_opt & SCALE_PITCH)
|
||||||
break;
|
break;
|
||||||
update_speed(af, speed);
|
update_speed(af, speed);
|
||||||
} else if (s->speed_pitch) {
|
} else if (s->speed_opt & SCALE_PITCH) {
|
||||||
update_speed(af, speed);
|
update_speed(af, speed);
|
||||||
break; // do not signal OK
|
break; // do not signal OK
|
||||||
}
|
}
|
||||||
|
@ -464,21 +464,12 @@ static void uninit(struct af_instance *af)
|
||||||
free(s->table_window);
|
free(s->table_window);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SCALE_TEMPO 1
|
|
||||||
#define SCALE_PITCH 2
|
|
||||||
|
|
||||||
// Allocate memory and set function pointers
|
// Allocate memory and set function pointers
|
||||||
static int af_open(struct af_instance *af)
|
static int af_open(struct af_instance *af)
|
||||||
{
|
{
|
||||||
af_scaletempo_t *s = af->priv;
|
|
||||||
|
|
||||||
af->control = control;
|
af->control = control;
|
||||||
af->uninit = uninit;
|
af->uninit = uninit;
|
||||||
af->filter_frame = filter;
|
af->filter_frame = filter;
|
||||||
|
|
||||||
s->speed_tempo = !!(s->speed_opt & SCALE_TEMPO);
|
|
||||||
s->speed_pitch = !!(s->speed_opt & SCALE_PITCH);
|
|
||||||
|
|
||||||
return AF_OK;
|
return AF_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue