int main(int argc, char **argv) { int ret = 0; LEVEL level = LOG_TRACE; OUTWAY outway = OUT_FILE; //测试未初始化就使用PRINTFLOG的情况 ret = PRINTLOG(LOG_TRACE, "未初始化\n"); printf("未初始化 返回值=%d\n", ret); //正常的使用方法 InitLog(level, outway); ret = PRINTLOG(LOG_TRACE, ">>%s %s %d %s\n",__TIME__, __FILE__, __LINE__, __FUNCTION__); printf("输出级别和初始化级别相同 返回值=%d\n", ret); PRINTLOG(LOG_TRACE, "<<%s %s %d %s\n",__TIME__, __FILE__, __LINE__, __FUNCTION__); FreeLog(); sleep(1); //输出级别不同于初始化级别的测试 level = LOG_INFO; InitLog(level, outway); ret = PRINTLOG(LOG_TRACE, " %s %s %d %s\n",__TIME__, __FILE__, __LINE__, __FUNCTION__); printf("输出级别低于初始化级别 返回值=%d\n", ret); PRINTLOG(LOG_WARNING, " %s %s %d %s\n",__TIME__, __FILE__, __LINE__, __FUNCTION__); FreeLog(); sleep(1); //测试多线程 level = LOG_TRACE; InitLog(level, outway); pthread_t t1, t2; pthread_create(&t1, NULL, testThreadOne, NULL); pthread_create(&t2, NULL, testThreadTwo, NULL); pthread_join(t1, NULL); pthread_join(t2, NULL); FreeLog(); return 0; }
int main() { int ret = 0; ret = InitLog(LOG_DEBUG, OUT_FILE); //ret = InitLog(LOG_DEBUG, OUT_STDOUT); PRINTLOG(LOG_DEBUG, "%s%d\n", "wuhongtao", 123, 999); PRINTLOG(LOG_DEBUG, "%s%d\n", "wuhongtao"); PRINTLOG(LOG_DEBUG, "%s%d\n", "wuhongtao", 789); PRINTLOG(LOG_DEBUG, "%s %d %s\n", __FILE__, __LINE__, __FUNCTION__); FreeLog(); _CrtDumpMemoryLeaks(); return 0; }
// Stop Cedar log void StopCedarLog() { if (cedar_log_ref == NULL) { return; } if (Release(cedar_log_ref) == 0) { FreeLog(cedar_log); cedar_log = NULL; cedar_log_ref = NULL; } }
void SSDTUnload( PDRIVER_OBJECT pDriverObject ) { UNICODE_STRING usDosDeviceName; if (Prot) CmUnRegisterCallback(Cookie); if (EventKernelSet) { ObDereferenceObject(EventKernelSet); EventKernelSet=NULL; } if (EventKernelWait) { ObDereferenceObject(EventKernelWait); EventKernelWait=NULL; } RtlInitUnicodeString( &usDosDeviceName, DEVICE_NAME ); IoDeleteSymbolicLink( &usDosDeviceName ); IoDeleteDevice( pDriverObject->DeviceObject ); FreeLog(); DbgPrint( "SSDT: Unload Success!" ); }
CCmdLog::~CCmdLog() { if (--m_nReffer <= 0) { FreeLog(); m_uStatus = CMDLOG_INVALID; } }
// Clean up Cedar void CleanupCedar(CEDAR *c) { UINT i; // Validate arguments if (c == NULL) { return; } WuFreeWebUI(c->WebUI); FreeCedarLayer3(c); /* for (i = 0;i < LIST_NUM(c->HubList);i++) { HUB *h = LIST_DATA(c->HubList, i); } */ for (i = 0;i < LIST_NUM(c->CaList);i++) { X *x = LIST_DATA(c->CaList, i); FreeX(x); } ReleaseList(c->CaList); ReleaseList(c->ListenerList); ReleaseList(c->HubList); ReleaseList(c->ConnectionList); //CleanupUDPEntry(c); ReleaseList(c->UDPEntryList); DeleteLock(c->lock); DeleteCounter(c->ConnectionIncrement); DeleteCounter(c->CurrentSessions); if (c->DebugLog != NULL) { FreeLog(c->DebugLog); } if (c->ServerX) { FreeX(c->ServerX); } if (c->ServerK) { FreeK(c->ServerK); } if (c->CipherList) { Free(c->CipherList); } for (i = 0;i < LIST_NUM(c->TrafficDiffList);i++) { TRAFFIC_DIFF *d = LIST_DATA(c->TrafficDiffList, i); Free(d->Name); Free(d->HubName); Free(d); } ReleaseList(c->TrafficDiffList); Free(c->ServerStr); Free(c->MachineName); Free(c->HttpUserAgent); Free(c->HttpAccept); Free(c->HttpAcceptLanguage); Free(c->HttpAcceptEncoding); FreeTraffic(c->Traffic); DeleteLock(c->TrafficLock); FreeNetSvcList(c); Free(c->VerString); Free(c->BuildInfo); FreeLocalBridgeList(c); DeleteCounter(c->AssignedBridgeLicense); DeleteCounter(c->AssignedClientLicense); FreeNoSslList(c); DeleteLock(c->CedarSuperLock); DeleteCounter(c->AcceptingSockets); ReleaseIntList(c->UdpPortList); DeleteLock(c->OpenVPNPublicPortsLock); DeleteLock(c->CurrentRegionLock); DeleteLock(c->CurrentTcpQueueSizeLock); DeleteLock(c->QueueBudgetLock); DeleteLock(c->FifoBudgetLock); DeleteCounter(c->CurrentActiveLinks); Free(c); }
int main(int argc, char **argv) { int ret = -1; uint8_t *data = NULL; unsigned long size = 0; int times = 0; int width = 0; int height = 0; char *dest = NULL; unsigned long dest_size = 0; long long pts = 0; long long dts = 0; AUDIOPACKET ap[30] = {0}; int ap_len = 0; int i = 0; CAPTURECONFIG captureConfig; PCAPTURECONFIG pCaptureConfig = &captureConfig; ENCODECONFIG encodeConfig; PENCODECONFIG pEncodeConfig = &encodeConfig; PENCODER pEncoder; PCAPTURE pCapture; DWORD start_time, end_time; pCaptureConfig->fps = 5; pCaptureConfig->channels = 2; pCaptureConfig->bits_per_sample = 16; pCaptureConfig->samples_per_sec = 48000; pCaptureConfig->avg_bytes_per_sec = 48000; pEncodeConfig->fps = 5; pEncodeConfig->width = 1366; pEncodeConfig->height = 768; pEncodeConfig->bit_rate = 400000; pEncodeConfig->channels = 2; pEncodeConfig->bits_per_sample = 16; pEncodeConfig->sample_rate = 48000; pEncodeConfig->avg_bytes_per_sec = 48000; pEncodeConfig->record = 1; memcpy(pEncodeConfig->record_file, "D:\\desktop_live.mp4", 20); InitLog(LOG_DEBUG, OUT_FILE); pCapture = InitCapture(pCaptureConfig); if (NULL == pCapture) { printf("init capture failed\n"); return -1; } pEncoder = InitEncoder(pEncodeConfig); if (NULL == pEncoder) { printf("init encoder failed\n"); return -1; } ret = StartCapture(pCapture); if (SECCESS != ret) { printf("start capture failed\n"); return -1; } start_time = end_time = timeGetTime(); while(10*1000 > (end_time - start_time)) { if (SECCESS == GetVideoFrame(pCapture, &data, &size, &width, &height)) { ret = EncodeVideo(pEncoder, data, width, height, &dest, &dest_size, &pts, &dts); if (ret == SECCESS) { free(dest); } times++; printf("video data size = %d\n", size); free(data); } if (SECCESS == GetAudioFrame(pCapture, &data, &size)) { ap_len = 0; ret = EncodeAudio(pEncoder, data, size, ap, &ap_len); if (ret == SECCESS) { for (i=0; i<ap_len; i++) { free(ap[i].data); } } printf("audio data size = %d\n", size); free(data); } end_time = timeGetTime(); } StopCapture(pCapture); FreeCapture(pCapture); FflushEncoder(pEncoder); FreeEncoder(pEncoder); FreeLog(); _CrtDumpMemoryLeaks(); return 0; }