diff options
author | Dave Yeo <daveryeo@telus.net> | 2013-05-27 23:22:10 -0700 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-05-28 12:49:20 +0200 |
commit | e615a777990f9c9cd6dd4d5d85cb21f6e43e5d74 (patch) | |
tree | 4e77dc0c26345532415afbec04d7eed6c5215644 /libavcodec | |
parent | 269fc8e04906ffd965aa19425ca90980b23c6508 (diff) | |
download | ffmpeg-e615a777990f9c9cd6dd4d5d85cb21f6e43e5d74.tar.gz |
os2threads: move from lavc to compat/
For useage in other places besides lavc. Needed after commit
90f9a5830b5d332de7ebb1ab45589f1870cbd65d
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/Makefile | 1 | ||||
-rw-r--r-- | libavcodec/frame_thread_encoder.c | 2 | ||||
-rw-r--r-- | libavcodec/os2threads.h | 162 | ||||
-rw-r--r-- | libavcodec/pthread.c | 2 | ||||
-rw-r--r-- | libavcodec/vp8.h | 2 |
5 files changed, 3 insertions, 166 deletions
diff --git a/libavcodec/Makefile b/libavcodec/Makefile index ad42d1aebb..32d51a1066 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -803,7 +803,6 @@ SKIPHEADERS-$(CONFIG_MPEG_XVMC_DECODER) += xvmc.h SKIPHEADERS-$(CONFIG_VAAPI) += vaapi_internal.h SKIPHEADERS-$(CONFIG_VDA) += vda.h SKIPHEADERS-$(CONFIG_VDPAU) += vdpau.h -SKIPHEADERS-$(HAVE_OS2THREADS) += os2threads.h TESTPROGS = cabac \ dct \ diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c index 80577ec9c4..b9acefc110 100644 --- a/libavcodec/frame_thread_encoder.c +++ b/libavcodec/frame_thread_encoder.c @@ -32,7 +32,7 @@ #elif HAVE_W32THREADS #include "compat/w32pthreads.h" #elif HAVE_OS2THREADS -#include "os2threads.h" +#include "compat/os2threads.h" #endif #define MAX_THREADS 64 diff --git a/libavcodec/os2threads.h b/libavcodec/os2threads.h deleted file mode 100644 index b816bff15f..0000000000 --- a/libavcodec/os2threads.h +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Copyright (c) 2011 KO Myung-Hun <komh@chollian.net> - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -/** - * @file - * os2threads to pthreads wrapper - */ - -#ifndef AVCODEC_OS2PTHREADS_H -#define AVCODEC_OS2PTHREADS_H - -#define INCL_DOS -#include <os2.h> - -#undef __STRICT_ANSI__ /* for _beginthread() */ -#include <stdlib.h> - -typedef TID pthread_t; -typedef void pthread_attr_t; - -typedef HMTX pthread_mutex_t; -typedef void pthread_mutexattr_t; - -typedef struct { - HEV event_sem; - int wait_count; -} pthread_cond_t; - -typedef void pthread_condattr_t; - -struct thread_arg { - void *(*start_routine)(void *); - void *arg; -}; - -static void thread_entry(void *arg) -{ - struct thread_arg *thread_arg = arg; - - thread_arg->start_routine(thread_arg->arg); - - av_free(thread_arg); -} - -static av_always_inline int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg) -{ - struct thread_arg *thread_arg; - - thread_arg = av_mallocz(sizeof(struct thread_arg)); - - thread_arg->start_routine = start_routine; - thread_arg->arg = arg; - - *thread = _beginthread(thread_entry, NULL, 256 * 1024, thread_arg); - - return 0; -} - -static av_always_inline int pthread_join(pthread_t thread, void **value_ptr) -{ - DosWaitThread((PTID)&thread, DCWW_WAIT); - - return 0; -} - -static av_always_inline int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr) -{ - DosCreateMutexSem(NULL, (PHMTX)mutex, 0, FALSE); - - return 0; -} - -static av_always_inline int pthread_mutex_destroy(pthread_mutex_t *mutex) -{ - DosCloseMutexSem(*(PHMTX)mutex); - - return 0; -} - -static av_always_inline int pthread_mutex_lock(pthread_mutex_t *mutex) -{ - DosRequestMutexSem(*(PHMTX)mutex, SEM_INDEFINITE_WAIT); - - return 0; -} - -static av_always_inline int pthread_mutex_unlock(pthread_mutex_t *mutex) -{ - DosReleaseMutexSem(*(PHMTX)mutex); - - return 0; -} - -static av_always_inline int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr) -{ - DosCreateEventSem(NULL, &cond->event_sem, DCE_POSTONE, FALSE); - - cond->wait_count = 0; - - return 0; -} - -static av_always_inline int pthread_cond_destroy(pthread_cond_t *cond) -{ - DosCloseEventSem(cond->event_sem); - - return 0; -} - -static av_always_inline int pthread_cond_signal(pthread_cond_t *cond) -{ - if (cond->wait_count > 0) { - DosPostEventSem(cond->event_sem); - - cond->wait_count--; - } - - return 0; -} - -static av_always_inline int pthread_cond_broadcast(pthread_cond_t *cond) -{ - while (cond->wait_count > 0) { - DosPostEventSem(cond->event_sem); - - cond->wait_count--; - } - - return 0; -} - -static av_always_inline int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) -{ - cond->wait_count++; - - pthread_mutex_unlock(mutex); - - DosWaitEventSem(cond->event_sem, SEM_INDEFINITE_WAIT); - - pthread_mutex_lock(mutex); - - return 0; -} - -#endif /* AVCODEC_OS2PTHREADS_H */ diff --git a/libavcodec/pthread.c b/libavcodec/pthread.c index 259dab0d8c..7968a61358 100644 --- a/libavcodec/pthread.c +++ b/libavcodec/pthread.c @@ -43,7 +43,7 @@ #elif HAVE_W32THREADS #include "compat/w32pthreads.h" #elif HAVE_OS2THREADS -#include "os2threads.h" +#include "compat/os2threads.h" #endif typedef int (action_func)(AVCodecContext *c, void *arg); diff --git a/libavcodec/vp8.h b/libavcodec/vp8.h index 1bba79e415..3bc06a7c58 100644 --- a/libavcodec/vp8.h +++ b/libavcodec/vp8.h @@ -38,7 +38,7 @@ #elif HAVE_W32THREADS #include "compat/w32pthreads.h" #elif HAVE_OS2THREADS -#include "os2threads.h" +#include "compat/os2threads.h" #endif #define VP8_MAX_QUANT 127 |