summaryrefslogtreecommitdiff
path: root/libavformat/utils.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-07-28 20:04:05 +0300
committerMartin Storsjö <martin@martin.st>2013-07-29 09:49:58 +0300
commitc5b46a064d9991f2cd045c90179fccf35ecffc34 (patch)
treeec89cada73662182627623a710a9416e2c9c3f61 /libavformat/utils.c
parent2219e27b5b17d146e4ab71a3ed86dfc013fb7a93 (diff)
lavf: Don't interpret just slightly broken timestamps as wraparound
This avoids breaking some slightly incorrect (dts > pts) timestamps in sample HLS streams from Apple. Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r--libavformat/utils.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 80b1ce2f7c..3a11239e52 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -727,8 +727,9 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
pc && pc->pict_type != AV_PICTURE_TYPE_B)
presentation_delayed = 1;
- if(pkt->pts != AV_NOPTS_VALUE && pkt->dts != AV_NOPTS_VALUE && pkt->dts > pkt->pts && st->pts_wrap_bits<63
- /*&& pkt->dts-(1LL<<st->pts_wrap_bits) < pkt->pts*/){
+ if (pkt->pts != AV_NOPTS_VALUE && pkt->dts != AV_NOPTS_VALUE &&
+ st->pts_wrap_bits < 63 &&
+ pkt->dts - (1LL << (st->pts_wrap_bits - 1)) > pkt->pts) {
pkt->dts -= 1LL<<st->pts_wrap_bits;
}