summaryrefslogtreecommitdiff
path: root/ffmpeg.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-03-29 22:32:53 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-03-29 22:32:53 +0200
commitd61ef05bc527a9375de5b70acc7125d2bd1bd473 (patch)
tree92aa6b1cd372f47cfcf5bcdd51123f6473b2a0eb /ffmpeg.c
parent30ced7e69f434bd49b39fb7c8ce02d9ba71babfc (diff)
ffmpeg: check pts like dts for being in the past.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'ffmpeg.c')
-rw-r--r--ffmpeg.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ffmpeg.c b/ffmpeg.c
index edd87a907f..6fcaa5b0ed 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -3129,7 +3129,8 @@ static int transcode(OutputFile *output_files, int nb_output_files,
int64_t pkt_pts = av_rescale_q(pkt.pts, ist->st->time_base, AV_TIME_BASE_Q);
delta = pkt_pts - ist->next_dts;
if ( delta < -1LL*dts_error_threshold*AV_TIME_BASE ||
- (delta > 1LL*dts_error_threshold*AV_TIME_BASE && ist->st->codec->codec_type != AVMEDIA_TYPE_SUBTITLE)) {
+ (delta > 1LL*dts_error_threshold*AV_TIME_BASE && ist->st->codec->codec_type != AVMEDIA_TYPE_SUBTITLE) ||
+ pkt_pts+1<ist->pts) {
av_log(NULL, AV_LOG_WARNING, "PTS %"PRId64", next:%"PRId64" invalid droping st:%d\n", pkt.pts, ist->next_dts, pkt.stream_index);
pkt.pts = AV_NOPTS_VALUE;
}