#ifdef WIN32 #include #endif #ifdef WIN64 #include #endif #include "AviSocket.h" #include #include int main(int argc, char ** argv) { if( argc < 4 ){ printf("Command line: \n"); return 1; } printf("32 OR 64: %d\n",sizeof(int*)); char * server_name = argv[1]; int server_port; sscanf(argv[2],"%d", &server_port); char * video_file_name = argv[3]; #ifdef MS_WIN WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 0), &wsaData) != 0) /* Load Winsock 2.0 DLL */ { fprintf(stderr, "WSAStartup() failed"); return 1; } #endif AviSocket * aviSocket = new AviSocket(server_port, server_name); aviSocket -> write_filename_to_socket(video_file_name); int w, h, nframes; double fps, total_time_sec; if( aviSocket -> read_aviinfo_from_socket(w, h, nframes, fps, total_time_sec) == 0){ fprintf(stderr, "Server failed to open %s.\n Check server log\n", video_file_name); return 1; } unsigned char * pixmap = new unsigned char[3*w*h]; clock_t start, finish; start = clock (); int frame_number = 0, frame_count = 0; for(; frame_number < nframes; frame_number++, frame_count++) { aviSocket -> write_framenumber_to_socket(frame_number); int readw, readh; aviSocket -> read_frame_from_socket(readw, readh, pixmap); finish = clock (); printf("Frame number %d %.3f\n", frame_number, (double)frame_count*1000/(finish - start)); } frame_number = -1; aviSocket -> write_framenumber_to_socket(frame_number); aviSocket -> cleanUp(); }