Begin RTSP connector gemaakt
This commit is contained in:
parent
6e41963e6a
commit
9a7420e5b2
1 changed files with 30 additions and 0 deletions
30
util/flv_sock.cpp
Normal file
30
util/flv_sock.cpp
Normal file
|
@ -0,0 +1,30 @@
|
|||
SWBaseSocket::SWBaseError SWBerr;
|
||||
char * FLVbuffer;
|
||||
int FLV_len;
|
||||
int FLVbs = 0;
|
||||
|
||||
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 (FLVbs < 15){FLVbuffer = (char*)realloc(FLVbuffer, 15); FLVbs = 15;}
|
||||
//if received a whole header, receive a whole packet
|
||||
//if not, retry header next pass
|
||||
if (FLV_len == 0){
|
||||
if (ss.frecv(FLVbuffer, 11, &SWBerr) == 11){
|
||||
FLV_len = FLVbuffer[3] + 15;
|
||||
FLV_len += (FLVbuffer[2] << 8);
|
||||
FLV_len += (FLVbuffer[1] << 16);
|
||||
if (FLVbs < FLV_len){FLVbuffer = (char*)realloc(FLVbuffer, FLV_len);FLVbs = FLV_len;}
|
||||
}
|
||||
}else{
|
||||
if (ss.frecv(FLVbuffer+11, FLV_len-11, &SWBerr) == FLV_len-11){return true;}
|
||||
}
|
||||
return false;
|
||||
}//FLV_GetPacket
|
Loading…
Add table
Reference in a new issue