r471 - in trunk: librtmp/rtmp.c librtmp/rtmp.h rtmpdump.c
Author: hyc Date: Wed May 5 07:47:18 2010 New Revision: 471 Log: Don't use the BufferEmpty toggle trick by default in librtmp, but set it by default in rtmpdump Modified: trunk/librtmp/rtmp.c trunk/librtmp/rtmp.h trunk/rtmpdump.c Modified: trunk/librtmp/rtmp.c ============================================================================== --- trunk/librtmp/rtmp.c Tue May 4 23:09:42 2010 (r470) +++ trunk/librtmp/rtmp.c Wed May 5 07:47:18 2010 (r471) @@ -2595,7 +2595,7 @@ HandleCtrl(RTMP *r, const RTMPPacket *pa case 31: tmp = AMF_DecodeInt32(packet->m_body + 2); RTMP_Log(RTMP_LOGDEBUG, "%s, Stream BufferEmpty %d", __FUNCTION__, tmp); - if ((r->Link.lFlags & RTMP_LF_LIVE) || (r->Link.protocol & RTMP_FEATURE_HTTP)) + if (!(r->Link.lFlags & RTMP_LF_BUFX)) break; if (!r->m_pausing) { Modified: trunk/librtmp/rtmp.h ============================================================================== --- trunk/librtmp/rtmp.h Tue May 4 23:09:42 2010 (r470) +++ trunk/librtmp/rtmp.h Wed May 5 07:47:18 2010 (r471) @@ -141,10 +141,11 @@ extern "C" int seekTime; int stopTime; -#define RTMP_LF_AUTH 0x0001 -#define RTMP_LF_LIVE 0x0002 -#define RTMP_LF_SWFV 0x0004 -#define RTMP_LF_PLST 0x0008 +#define RTMP_LF_AUTH 0x0001 /* using auth param */ +#define RTMP_LF_LIVE 0x0002 /* stream is live */ +#define RTMP_LF_SWFV 0x0004 /* do SWF verification */ +#define RTMP_LF_PLST 0x0008 /* send playlist before play */ +#define RTMP_LF_BUFX 0x0010 /* toggle stream on BufferEmpty msg */ int lFlags; int swfAge; Modified: trunk/rtmpdump.c ============================================================================== --- trunk/rtmpdump.c Tue May 4 23:09:42 2010 (r470) +++ trunk/rtmpdump.c Wed May 5 07:47:18 2010 (r471) @@ -1168,6 +1168,10 @@ main(int argc, char **argv) &tcUrl, &swfUrl, &pageUrl, &app, &auth, &swfHash, swfSize, &flashVer, &subscribepath, dSeek, dStopOffset, bLiveStream, timeout); + /* Try to keep the stream moving if it pauses on us */ + if (!bLiveStream && !(protocol & RTMP_FEATURE_HTTP)) + rtmp.Link.lFlags |= RTMP_LF_BUFX; + off_t size = 0; // ok, we have to get the timestamp of the last keyframe (only keyframes are seekable) / last audio frame (audio only streams)
participants (1)
-
hyc