lavfi/f_drawgraph: forward input frame durations
This commit is contained in:
@@ -168,7 +168,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
|
|||||||
AVDictionaryEntry *e;
|
AVDictionaryEntry *e;
|
||||||
AVFrame *out = s->out;
|
AVFrame *out = s->out;
|
||||||
AVFrame *clone = NULL;
|
AVFrame *clone = NULL;
|
||||||
int64_t in_pts, out_pts;
|
int64_t in_pts, out_pts, in_duration;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (s->slide == 4 && s->nb_values >= s->values_size[0] / sizeof(float)) {
|
if (s->slide == 4 && s->nb_values >= s->values_size[0] / sizeof(float)) {
|
||||||
@@ -320,6 +320,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
|
|||||||
s->x++;
|
s->x++;
|
||||||
|
|
||||||
in_pts = in->pts;
|
in_pts = in->pts;
|
||||||
|
in_duration = in->duration;
|
||||||
|
|
||||||
av_frame_free(&in);
|
av_frame_free(&in);
|
||||||
|
|
||||||
@@ -336,6 +337,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
|
|||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
clone->pts = s->prev_pts = out_pts;
|
clone->pts = s->prev_pts = out_pts;
|
||||||
|
clone->duration = av_rescale_q(in_duration, inlink->time_base, outlink->time_base);
|
||||||
return ff_filter_frame(outlink, clone);
|
return ff_filter_frame(outlink, clone);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user