[FFmpeg-cvslog] rtmpproto: Send a full, absolute timestamp if it isn' t monotonically growing
Martin Storsjö
git at videolan.org
Tue Jan 21 04:26:11 CET 2014
ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Fri Jan 17 14:30:57 2014 +0200| [89564be444d24f75ea5add8b6987e414cf7aa7d5] | committer: Martin Storsjö
rtmpproto: Send a full, absolute timestamp if it isn't monotonically growing
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ö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=89564be444d24f75ea5add8b6987e414cf7aa7d5
---
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;
More information about the ffmpeg-cvslog
mailing list