Showing the changes to libavfilter/f_loop.c (1 of 1 file). Show all
Unified · Split
| @@ -107,7 +107,7 @@ static int push_samples(AVFilterContext *ctx, int nb_samples) · 106 unmodified lines | ||
| 107 | 107 | } |
| 108 | 108 | out->pts = s->pts; |
| 109 | 109 | out->nb_samples = ret; |
| 110 | − s->pts += out->nb_samples; | |
| 110 | + s->pts += av_rescale_q(out->nb_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); | |
| 111 | 111 | i += out->nb_samples; |
| 112 | 112 | s->current_sample += out->nb_samples; |
| 113 | 113 | |
| @@ -145,7 +145,7 @@ static int afilter_frame(AVFilterLink *inlink, AVFrame *frame) · 31 unmodified lines | ||
| 145 | 145 | drain = FFMAX(0, s->start - s->ignored_samples); |
| 146 | 146 | s->pts = frame->pts; |
| 147 | 147 | av_audio_fifo_drain(s->fifo, drain); |
| 148 | − s->pts += s->start - s->ignored_samples; | |
| 148 | + s->pts += av_rescale_q(s->start - s->ignored_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); | |
| 149 | 149 | } |
| 150 | 150 | s->nb_samples += ret - drain; |
| 151 | 151 | drain = frame->nb_samples - written; |
| @@ -158,7 +158,7 @@ static int afilter_frame(AVFilterLink *inlink, AVFrame *frame) · 6 unmodified lines | ||
| 158 | 158 | av_audio_fifo_drain(s->left, drain); |
| 159 | 159 | } |
| 160 | 160 | frame->nb_samples = ret; |
| 161 | − s->pts += ret; | |
| 161 | + s->pts += av_rescale_q(ret, (AVRational){1, outlink->sample_rate}, outlink->time_base); | |
| 162 | 162 | ret = ff_filter_frame(outlink, frame); |
| 163 | 163 | } else { |
| 164 | 164 | int nb_samples = frame->nb_samples; |
| @@ -169,7 +169,7 @@ static int afilter_frame(AVFilterLink *inlink, AVFrame *frame) · 4 unmodified lines | ||
| 169 | 169 | } else { |
| 170 | 170 | s->ignored_samples += frame->nb_samples; |
| 171 | 171 | frame->pts = s->pts; |
| 172 | − s->pts += frame->nb_samples; | |
| 172 | + s->pts += av_rescale_q(frame->nb_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); | |
| 173 | 173 | ret = ff_filter_frame(outlink, frame); |
| 174 | 174 | } |
| 175 | 175 | |
| @@ -195,7 +195,7 @@ static int arequest_frame(AVFilterLink *outlink) · 19 unmodified lines | ||
| 195 | 195 | return AVERROR(ENOMEM); |
| 196 | 196 | av_audio_fifo_read(s->left, (void **)out->extended_data, nb_samples); |
| 197 | 197 | out->pts = s->pts; |
| 198 | − s->pts += nb_samples; | |
| 198 | + s->pts += av_rescale_q(nb_samples, (AVRational){1, outlink->sample_rate}, outlink->time_base); | |
| 199 | 199 | ret = ff_filter_frame(outlink, out); |
| 200 | 200 | if (ret < 0) |
| 201 | 201 | return ret; |