All pastes #1903605 Raw Edit

clueless

public text v1 · immutable
#1903605 ·published 2010-07-19 12:25 UTC
rendered paste body
Index: rtmpdump.c===================================================================--- rtmpdump.c	(revision 508)+++ rtmpdump.c	(working copy)@@ -531,7 +531,7 @@ 	      // make sure we claim to have enough buffer time! 	      if (!bOverrideBufferTime && bufferTime < (duration * 1000.0)) 		{-		  bufferTime = (uint32_t) (duration * 1000.0) + 5000;	// extra 5sec to make sure we've got enough+		  bufferTime = (uint32_t) (duration * 10.0) + 5;	// extra 5sec to make sure we've got enough  		  RTMP_Log(RTMP_LOGDEBUG, 		      "Detected that buffer time is less than duration, resetting to: %dms",@@ -740,7 +740,7 @@   AVal subscribepath = { 0, 0 };   int port = -1;   int protocol = RTMP_PROTOCOL_UNDEFINED;-  int retries = 0;+  int retries = 5;   int bLiveStream = FALSE;	// is it a live stream? then we can't seek/resume   int bHashes = FALSE;		// display byte counters not hashes by default Index: librtmp/rtmp.c===================================================================--- librtmp/rtmp.c	(revision 508)+++ librtmp/rtmp.c	(working copy)@@ -25,6 +25,7 @@  #include <stdint.h> #include <stdlib.h>+#include <stdbool.h> #include <string.h> #include <assert.h> @@ -1930,6 +1931,35 @@   return RTMP_SendPacket(r, &packet, FALSE); } +SAVC(ping);+SAVC(pong);++static bool+SendPong(RTMP *r, double txn)+{+  RTMPPacket packet;+  char pbuf[256], *pend = pbuf + sizeof(pbuf);+  char *enc;++  packet.m_nChannel = 0x03;	/* control channel (invoke) */+  packet.m_headerType = RTMP_PACKET_SIZE_MEDIUM;+  packet.m_packetType = 0x14;	/* INVOKE */+  packet.m_nTimeStamp = 0x16 * r->m_nBWCheckCounter;	/* temp inc value. till we figure it out. */+  packet.m_nInfoField2 = 0;+  packet.m_hasAbsTimestamp = 0;+  packet.m_body = pbuf + RTMP_MAX_HEADER_SIZE;++  enc = packet.m_body;+  enc = AMF_EncodeString(enc, pend, &av_pong);+  enc = AMF_EncodeNumber(enc, pend, txn);+  *enc++ = AMF_NULL;++  packet.m_nBodySize = enc - packet.m_body;++  return RTMP_SendPacket(r, &packet, false);+}++ SAVC(play);  static int@@ -2322,6 +2352,10 @@       RTMP_Close(r);       ret = 1;     }+  else if (AVMATCH(&method, &av_ping))+    {+		SendPong(r, 3.0);+	}   else if (AVMATCH(&method, &av__onbwcheck))     {       SendCheckBWResult(r, txn);