From e39382dedd224a97a896034c43772fa3da924b15 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Fri, 5 Oct 2012 16:35:45 +0200
Subject: [PATCH] decoder/ffmpeg: ignore negative time stamps

Works around assertion failure in decoder_timestamp().
---
 NEWS                                | 2 ++
 src/decoder/ffmpeg_decoder_plugin.c | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index b280e6162..34d5f95aa 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,8 @@ ver 0.17.3 (2012/??/??)
   - recorder: fix I/O error check
   - shout: fix memory leak in error handler
   - recorder, shout: support Ogg packets that span more than one page
+* decoder:
+  - ffmpeg: ignore negative time stamps
 
 ver 0.17.2 (2012/09/30)
 * protocol:
diff --git a/src/decoder/ffmpeg_decoder_plugin.c b/src/decoder/ffmpeg_decoder_plugin.c
index bab6968e8..64227b85a 100644
--- a/src/decoder/ffmpeg_decoder_plugin.c
+++ b/src/decoder/ffmpeg_decoder_plugin.c
@@ -273,7 +273,7 @@ ffmpeg_send_packet(struct decoder *decoder, struct input_stream *is,
 		   AVCodecContext *codec_context,
 		   const AVRational *time_base)
 {
-	if (packet->pts != (int64_t)AV_NOPTS_VALUE)
+	if (packet->pts >= 0 && packet->pts != (int64_t)AV_NOPTS_VALUE)
 		decoder_timestamp(decoder,
 				  time_from_ffmpeg(packet->pts, *time_base));