diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-01-13 18:39:06 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-01-20 02:40:22 +0100 |
commit | bca27b0480b605a300b79881475b34f05a48ed62 (patch) | |
tree | e6e90c15582632d94571d416ae6c0932e6fe3629 | |
parent | c287efcc447917ea89d908204df343e265f62d31 (diff) | |
download | ffmpeg-bca27b0480b605a300b79881475b34f05a48ed62.tar.gz |
swr: fix handling of timestamps that cause multiple drops or silence injections
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit d676598f879ba01ddb62f9abe8e17b2e94cb91cd)
-rw-r--r-- | libswresample/swresample.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libswresample/swresample.c b/libswresample/swresample.c index 5d02aafb49..b8c646f154 100644 --- a/libswresample/swresample.c +++ b/libswresample/swresample.c @@ -770,7 +770,7 @@ int64_t swr_next_pts(struct SwrContext *s, int64_t pts){ if(s->min_compensation >= FLT_MAX) { return (s->outpts = pts - swr_get_delay(s, s->in_sample_rate * (int64_t)s->out_sample_rate)); } else { - int64_t delta = pts - swr_get_delay(s, s->in_sample_rate * (int64_t)s->out_sample_rate) - s->outpts; + int64_t delta = pts - swr_get_delay(s, s->in_sample_rate * (int64_t)s->out_sample_rate) - s->outpts + s->drop_output*(int64_t)s->in_sample_rate; double fdelta = delta /(double)(s->in_sample_rate * (int64_t)s->out_sample_rate); if(fabs(fdelta) > s->min_compensation) { |