Showing the changes to libavfilter (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 | out->pts = s->pts; | 108 | out->pts = s->pts; |
| 109 | out->nb_samples = ret; | 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 | i += out->nb_samples; | 111 | i += out->nb_samples; |
| 112 | s->current_sample += out->nb_samples; | 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 | drain = FFMAX(0, s->start - s->ignored_samples); | 145 | drain = FFMAX(0, s->start - s->ignored_samples); |
| 146 | s->pts = frame->pts; | 146 | s->pts = frame->pts; |
| 147 | av_audio_fifo_drain(s->fifo, drain); | 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 | s->nb_samples += ret - drain; | 150 | s->nb_samples += ret - drain; |
| 151 | drain = frame->nb_samples - written; | 151 | drain = frame->nb_samples - written; |
| @@ -158,7 +158,7 @@ static int afilter_frame(AVFilterLink *inlink, AVFrame *frame) · 6 unmodified lines | |||
| 158 | av_audio_fifo_drain(s->left, drain); | 158 | av_audio_fifo_drain(s->left, drain); |
| 159 | } | 159 | } |
| 160 | frame->nb_samples = ret; | 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 | ret = ff_filter_frame(outlink, frame); | 162 | ret = ff_filter_frame(outlink, frame); |
| 163 | } else { | 163 | } else { |
| 164 | int nb_samples = frame->nb_samples; | 164 | int nb_samples = frame->nb_samples; |
| @@ -169,7 +169,7 @@ static int afilter_frame(AVFilterLink *inlink, AVFrame *frame) · 4 unmodified lines | |||
| 169 | } else { | 169 | } else { |
| 170 | s->ignored_samples += frame->nb_samples; | 170 | s->ignored_samples += frame->nb_samples; |
| 171 | frame->pts = s->pts; | 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 | ret = ff_filter_frame(outlink, frame); | 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 | return AVERROR(ENOMEM); | 195 | return AVERROR(ENOMEM); |
| 196 | av_audio_fifo_read(s->left, (void **)out->extended_data, nb_samples); | 196 | av_audio_fifo_read(s->left, (void **)out->extended_data, nb_samples); |
| 197 | out->pts = s->pts; | 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 | ret = ff_filter_frame(outlink, out); | 199 | ret = ff_filter_frame(outlink, out); |
| 200 | if (ret < 0) | 200 | if (ret < 0) |
| 201 | return ret; | 201 | return ret; |