Mercurial > libavformat.hg
changeset 3056:4ce8908f4593 libavformat
Get rid of a fake timestamp discontinuity at the begin of V.VOB.
This solution is not really correct but it is quite simple. Correct would
be to do a second pass over the packets after all the headers have been
collected.
author | michael |
---|---|
date | Wed, 20 Feb 2008 03:40:07 +0000 |
parents | ed3653834ada |
children | b2853b499660 |
files | utils.c |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/utils.c Wed Feb 20 03:20:06 2008 +0000 +++ b/utils.c Wed Feb 20 03:40:07 2008 +0000 @@ -641,7 +641,8 @@ for(; pktl; pktl= pktl->next){ if(pktl->pkt.stream_index != pkt->stream_index) continue; - if(pktl->pkt.pts == pktl->pkt.dts && pktl->pkt.dts == AV_NOPTS_VALUE){ + if(pktl->pkt.pts == pktl->pkt.dts && pktl->pkt.dts == AV_NOPTS_VALUE + && !pktl->pkt.duration){ pktl->pkt.pts= pktl->pkt.dts= st->cur_dts; st->cur_dts += pkt->duration; pktl->pkt.duration= pkt->duration; @@ -666,7 +667,7 @@ if (den && num) { pkt->duration = av_rescale(1, num * (int64_t)st->time_base.den, den * (int64_t)st->time_base.num); - if(pkt->dts == AV_NOPTS_VALUE && pkt->pts == AV_NOPTS_VALUE && st->cur_dts == 0) + if(st->cur_dts == 0) update_initial_durations(s, st, pkt); } }