mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
avfilter/fade: use inlink->frame_count.
This commit is contained in:
parent
3e1097b909
commit
461e810cfc
@ -54,7 +54,6 @@ typedef struct {
|
||||
int type;
|
||||
int factor, fade_per_frame;
|
||||
int start_frame, nb_frames;
|
||||
unsigned int frame_index;
|
||||
int hsub, vsub, bpp;
|
||||
unsigned int black_level, black_level_scaled;
|
||||
uint8_t is_packed_rgb;
|
||||
@ -278,7 +277,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
|
||||
if (s->fade_state == VF_FADE_WAITING) {
|
||||
s->factor=0;
|
||||
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
|
||||
s->fade_state = VF_FADE_FADING;
|
||||
|
||||
@ -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
|
||||
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->duration == 0) {
|
||||
// Fading based on frame count
|
||||
s->factor = (s->frame_index - s->start_frame) * s->fade_per_frame;
|
||||
if (s->frame_index > (s->start_frame + s->nb_frames)) {
|
||||
s->factor = (inlink->frame_count - s->start_frame) * s->fade_per_frame;
|
||||
if (inlink->frame_count > (s->start_frame + s->nb_frames)) {
|
||||
s->fade_state = VF_FADE_DONE;
|
||||
}
|
||||
|
||||
@ -342,8 +341,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
|
||||
}
|
||||
}
|
||||
|
||||
s->frame_index++;
|
||||
|
||||
return ff_filter_frame(inlink->dst->outputs[0], frame);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user