From 975be077200eed3568c2cdeb2fe8295ce73cca5b Mon Sep 17 00:00:00 2001 From: Erik Zandvliet Date: Mon, 21 Jun 2010 17:06:30 +0200 Subject: [PATCH] Filtering metadata --- Server/main.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Server/main.cpp b/Server/main.cpp index 809d2f76..e205e045 100644 --- a/Server/main.cpp +++ b/Server/main.cpp @@ -36,6 +36,7 @@ int main( int argc, char * argv[] ) { user ** connectionList = (user**) calloc (connections,sizeof(user*)); for (int i = 0; i < connections; i++) { connectionList[i] = new user; } char header[13];//FLV header is always 13 bytes + char metadata[BUFLEN]; int ret = 0; int frame_bodylength = 0; int current_buffer = 0; @@ -60,8 +61,16 @@ int main( int argc, char * argv[] ) { ringbuf[current_buffer]->size = 0; ringbuf[current_buffer]->number = -1; if (std::cin.peek() == 'F') { - //new FLV file, read the file head again. + //new FLV file, read the file header again. ret = fread(&header,1,13,stdin); + } else if( (int)std::cin.peek() == 12) { + //metadata encountered, let's filter it + ret = fread(&metadata,1,11,stdin); + frame_bodylength = 4; + frame_bodylength += metadata[3]; + frame_bodylength += (metadata[2] << 8); + frame_bodylength += (metadata[1] << 16); + ret = fread(&metadata,1,frame_bodylength,stdin); } else { //read FLV frame header - 11 bytes ret = fread(ringbuf[current_buffer]->data,1,11,stdin);