From 206eb006a981539622a037c3859209e5040bb3b5 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Mon, 8 Nov 2010 03:19:17 +0100 Subject: [PATCH] FLV Socket lezer fix --- util/flv_sock.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/util/flv_sock.cpp b/util/flv_sock.cpp index 8d6c55a4..60bc3abe 100644 --- a/util/flv_sock.cpp +++ b/util/flv_sock.cpp @@ -2,17 +2,21 @@ SWBaseSocket::SWBaseError SWBerr; char * FLVbuffer; int FLV_len; int FLVbs = 0; +bool HeaderDone = false; +static char FLVheader[13]; void FLV_Readheader(SWUnixSocket & ss){ - static char header[13]; - while (ss.frecv(header, 13, &SWBerr) != 13){ - //wait - } }//FLV_Readheader void FLV_Dump(){FLV_len = 0;} bool FLV_GetPacket(SWUnixSocket & ss){ + if (!HeaderDone){ + if (ss.frecv(FLVheader, 13, &SWBerr) == 13){HeaderDone = true;} + return false; + } + + if (FLVbs < 15){FLVbuffer = (char*)realloc(FLVbuffer, 15); FLVbs = 15;} //if received a whole header, receive a whole packet //if not, retry header next pass