Commit 461e810c authored by Clément Bœsch's avatar Clément Bœsch

avfilter/fade: use inlink->frame_count.

parent 3e1097b9
...@@ -54,7 +54,6 @@ typedef struct { ...@@ -54,7 +54,6 @@ typedef struct {
int type; int type;
int factor, fade_per_frame; int factor, fade_per_frame;
int start_frame, nb_frames; int start_frame, nb_frames;
unsigned int frame_index;
int hsub, vsub, bpp; int hsub, vsub, bpp;
unsigned int black_level, black_level_scaled; unsigned int black_level, black_level_scaled;
uint8_t is_packed_rgb; uint8_t is_packed_rgb;
...@@ -278,7 +277,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) ...@@ -278,7 +277,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
if (s->fade_state == VF_FADE_WAITING) { if (s->fade_state == VF_FADE_WAITING) {
s->factor=0; s->factor=0;
if ((frame_timestamp >= (s->start_time/(double)AV_TIME_BASE)) if ((frame_timestamp >= (s->start_time/(double)AV_TIME_BASE))
&& (s->frame_index >= s->start_frame)) { && (inlink->frame_count >= s->start_frame)) {
// Time to start fading // Time to start fading
s->fade_state = VF_FADE_FADING; s->fade_state = VF_FADE_FADING;
...@@ -289,15 +288,15 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) ...@@ -289,15 +288,15 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
// Save start frame in case we are starting based on time and fading based on frames // Save start frame in case we are starting based on time and fading based on frames
if ((s->start_time != 0) && (s->start_frame == 0)) { if ((s->start_time != 0) && (s->start_frame == 0)) {
s->start_frame = s->frame_index; s->start_frame = inlink->frame_count;
} }
} }
} }
if (s->fade_state == VF_FADE_FADING) { if (s->fade_state == VF_FADE_FADING) {
if (s->duration == 0) { if (s->duration == 0) {
// Fading based on frame count // Fading based on frame count
s->factor = (s->frame_index - s->start_frame) * s->fade_per_frame; s->factor = (inlink->frame_count - s->start_frame) * s->fade_per_frame;
if (s->frame_index > (s->start_frame + s->nb_frames)) { if (inlink->frame_count > (s->start_frame + s->nb_frames)) {
s->fade_state = VF_FADE_DONE; s->fade_state = VF_FADE_DONE;
} }
...@@ -342,8 +341,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) ...@@ -342,8 +341,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
} }
} }
s->frame_index++;
return ff_filter_frame(inlink->dst->outputs[0], frame); return ff_filter_frame(inlink->dst->outputs[0], frame);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment