Browse code

af_aresample: fix rounding of negative timestamps

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Michael Niedermayer authored on 2012/11/27 00:25:47
Showing 1 changed files
... ...
@@ -191,11 +191,10 @@ static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamplesref)
191 191
         int64_t inpts = av_rescale(insamplesref->pts, inlink->time_base.num * (int64_t)outlink->sample_rate * inlink->sample_rate, inlink->time_base.den);
192 192
         int64_t outpts= swr_next_pts(aresample->swr, inpts);
193 193
         aresample->next_pts =
194
-        outsamplesref->pts  = (outpts + inlink->sample_rate/2) / inlink->sample_rate;
194
+        outsamplesref->pts  = ROUNDED_DIV(outpts, inlink->sample_rate);
195 195
     } else {
196 196
         outsamplesref->pts  = AV_NOPTS_VALUE;
197 197
     }
198
-
199 198
     n_out = swr_convert(aresample->swr, outsamplesref->extended_data, n_out,
200 199
                                  (void *)insamplesref->extended_data, n_in);
201 200
     if (n_out <= 0) {