Sigrid Solveig Haflínudóttirmake the decoder compile and run with treason37423d45 years agoHistory
133 lines · 3.9 KB · C
RawDownload
/*! * \copy *     Copyright (c)  2009-2019, Cisco Systems *     All rights reserved. * *     Redistribution and use in source and binary forms, with or without *     modification, are permitted provided that the following conditions *     are met: * *        * Redistributions of source code must retain the above copyright *          notice, this list of conditions and the following disclaimer. * *        * Redistributions in binary form must reproduce the above copyright *          notice, this list of conditions and the following disclaimer in *          the documentation and/or other materials provided with the *          distribution. * *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *     "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT *     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS *     FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE *     COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, *     INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, *     BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER *     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT *     LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN *     ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE *     POSSIBILITY OF SUCH DAMAGE. * * * \file    wels_decoder_thread.h * * \brief   Interfaces introduced in thread programming * * \date    08/06/2018 Created * ************************************************************************************* */ #ifndef   _WELS_DECODER_THREAD_H_#define   _WELS_DECODER_THREAD_H_ #include "WelsThreadLib.h" typedef   int       WELS_MUTEX_ATTR; typedef struct tagWelsDecSemphore {  long max;  long v;  WELS_EVENT  e;  WELS_MUTEX  m;} SWelsDecSemphore; typedef struct tagWelsDecEvent {  int manualReset;  int isSignaled;  int c;  WELS_MUTEX m;} SWelsDecEvent; typedef struct tagWelsDecThread {  WELS_THREAD_HANDLE h;} SWelsDecThread; #define WelsDecThreadFunc(fn,a) void* fn(void* a)#define WelsDecThreadFuncArg(a) void* (*a)(void*) #define WELS_DEC_THREAD_WAIT_TIMEDOUT    ETIMEDOUT#define WELS_DEC_THREAD_WAIT_SIGNALED    EINTR#define WELS_DEC_THREAD_WAIT_INFINITE    -1 #define WelsDecThreadReturn   WELS_THREAD_ROUTINE_RETURN(0); int32_t GetCPUCount(); // Eventint EventCreate (SWelsDecEvent* e, int manualReset, int initialState);void EventPost (SWelsDecEvent* e);int EventWait (SWelsDecEvent* e, int32_t timeout);void EventReset (SWelsDecEvent* e);void EventDestroy (SWelsDecEvent* e); // Semaphoreint SemCreate (SWelsDecSemphore* s, long value, long max);int SemWait (SWelsDecSemphore* s, int32_t timeout);void SemRelease (SWelsDecSemphore* s, long* prev_count);void SemDestroy (SWelsDecSemphore* s); // Threadint ThreadCreate (SWelsDecThread* t, LPWELS_THREAD_ROUTINE tf, void* ta);int ThreadWait (SWelsDecThread* t); #define DECLARE_PROCTHREAD(name, argument) \  WelsDecThreadFunc(name,argument) #define DECLARE_PROCTHREAD_PTR(name) \  LPWELS_THREAD_ROUTINE name #define CREATE_THREAD(ph, threadproc,argument) \  ThreadCreate(ph, threadproc, (void*)argument) #define CREATE_EVENT(ph, manualreset,initial_state,name) \  EventCreate(ph,(int)(manualreset),(int)(initial_state)) #define CREATE_SEMAPHORE(ph, initial_count,max_count, name) \  SemCreate(ph, (long)initial_count,(long)(max_count)) #define CLOSE_EVENT(ph) \  EventDestroy(ph) #define CLOSE_SEMAPHORE(ph) \  SemDestroy(ph) #define SET_EVENT(ph) \  EventPost(ph) #define RESET_EVENT(ph) \  EventReset(ph) #define RELEASE_SEMAPHORE(ph) \  SemRelease(ph,NULL) #define WAIT_EVENT(ph,timeout) \  EventWait(ph, (int32_t)timeout) #define WAIT_THREAD(ph) \  ThreadWait(ph) #define WAIT_SEMAPHORE(ph,timeout) \  SemWait(ph,(int32_t)timeout) #endif

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t