JD2022-TU1/main/extern/Camcam/LIBS/X264 - Lib/WIGI_Encoder.cpp

95 lines
2 KiB
C++

#include <windows.h>
#include "CODEC.h"
#ifdef CODEC_WIGI
#define WIGI_PORT 43690
SOCKET WigiSocket;
bool b_Connected = false;
char AnswerOK[16] = "wigi 3.0 200 OK";
/* WigiWigi method */
/*
* WigiWigi is used by connecting to Wigi localhost, and then sending him requests
*/
bool WIGI_b_LocalConnect()
{
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
WORD wVersionRequested;
WSADATA wsaData;
int err, option;
ULONG trueval;
struct sockaddr_in address, dest_address;
char Key[50] = "00guid00apakian21921923doobaa\r\n";
char Answer[30];
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
wVersionRequested = MAKEWORD(2, 2);
err = WSAStartup(wVersionRequested, &wsaData);
if(err != 0) return false;
WigiSocket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if(WigiSocket == -1) return false;
/* Connect to WigiWigi local host (127.0.0.1), port 43690 */
memset(&dest_address, 0, sizeof(address));
dest_address.sin_family = AF_INET;
dest_address.sin_port = htons(WIGI_PORT);
err = dest_address.sin_addr.s_addr = inet_addr("127.0.0.1");
if(err == -1) return false;
err = connect(WigiSocket, (const sockaddr *) &dest_address, sizeof(dest_address));
if(err == -1) return false;
//char Ping[19] = "Ping\r\n";
/* Send keycode to be able to send commands to Wigi engine */
err = send(WigiSocket, Key, sizeof(Key), 0);
if(err == -1) return false;
err = recv(WigiSocket, Answer, sizeof(Answer), 0);
if(err == -1 /*|| strcmp(Answer, AnswerOK) != 0*/) return false;
b_Connected = true;
return true;
}
void *WIGI_Encode_INIT(MAP *PPicture)
{
if (!b_Connected)
if (!WIGI_b_LocalConnect())
return NULL;
//"#define InputFrame MyWindow HWND
return NULL;
}
u32 WIGI_Encode_FRAME(void *H,MAP *PPicture,char *Buffer,u32 FROMSCRATCH)
{
return 1;
}
void WIGI_Encode_CLOSE(void *H)
{
}
void *Encode_INIT(MAP *PPicture)
{
return WIGI_Encode_INIT(PPicture);
}
u32 Encode_FRAME(void *H, MAP *PPicture, char *Buffer, u32 FROMSCRATCH)
{
return WIGI_Encode_FRAME(H, PPicture, Buffer, FROMSCRATCH);
}
void Encode_CLOSE(void *H)
{
WIGI_Encode_CLOSE(H);
}
#endif