From 89564be444d24f75ea5add8b6987e414cf7aa7d5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Martin=20Storsj=C3=B6?= Date: Fri, 17 Jan 2014 14:30:57 +0200 Subject: [PATCH] rtmpproto: Send a full, absolute timestamp if it isn't monotonically growing MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The normal differential timestamps can't handle negative differences, thus send a full packet header with an absolute timestamp in these cases. Signed-off-by: Martin Storsjö --- libavformat/rtmppkt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/rtmppkt.c b/libavformat/rtmppkt.c index f58f668..81621b1 100644 --- a/libavformat/rtmppkt.c +++ b/libavformat/rtmppkt.c @@ -313,7 +313,8 @@ int ff_rtmp_packet_write(URLContext *h, RTMPPacket *pkt, //if channel_id = 0, this is first presentation of prev_pkt, send full hdr. if (prev_pkt[pkt->channel_id].channel_id && - pkt->extra == prev_pkt[pkt->channel_id].extra) { + pkt->extra == prev_pkt[pkt->channel_id].extra && + pkt->timestamp >= prev_pkt[pkt->channel_id].timestamp) { if (pkt->type == prev_pkt[pkt->channel_id].type && pkt->size == prev_pkt[pkt->channel_id].size) { mode = RTMP_PS_FOURBYTES; -- 2.7.4