diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-09-26 22:52:33 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-09-26 22:58:02 +0200 |
commit | a8e3815db5095fc52b9bd8637fc19cb638bd3aad (patch) | |
tree | 3fbd499818284071c85a4ddf672c5033f37de2a3 /libavformat/utils.c | |
parent | cddbafb56acf3fa7ac4556549bd8c911067f2324 (diff) | |
download | ffmpeg-a8e3815db5095fc52b9bd8637fc19cb638bd3aad.tar.gz |
lavf: factorize timestamp shift in update_initial_timestamps()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r-- | libavformat/utils.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index 5cb380a954..83b2d269f8 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -940,24 +940,26 @@ static void update_initial_timestamps(AVFormatContext *s, int stream_index, { AVStream *st= s->streams[stream_index]; AVPacketList *pktl= s->parse_queue ? s->parse_queue : s->packet_buffer; + int64_t shift; if(st->first_dts != AV_NOPTS_VALUE || dts == AV_NOPTS_VALUE || st->cur_dts == AV_NOPTS_VALUE || is_relative(dts)) return; st->first_dts= dts - (st->cur_dts - RELATIVE_TS_BASE); st->cur_dts= dts; + shift = st->first_dts - RELATIVE_TS_BASE; if (is_relative(pts)) - pts += st->first_dts - RELATIVE_TS_BASE; + pts += shift; for(; pktl; pktl= get_next_pkt(s, st, pktl)){ if(pktl->pkt.stream_index != stream_index) continue; if(is_relative(pktl->pkt.pts)) - pktl->pkt.pts += st->first_dts - RELATIVE_TS_BASE; + pktl->pkt.pts += shift; if(is_relative(pktl->pkt.dts)) - pktl->pkt.dts += st->first_dts - RELATIVE_TS_BASE; + pktl->pkt.dts += shift; if(st->start_time == AV_NOPTS_VALUE && pktl->pkt.pts != AV_NOPTS_VALUE) st->start_time= pktl->pkt.pts; |