On Mon, Mar 28, 2016 at 12:17 PM, Hendrik Leppkes <[email protected]> wrote: > On Mon, Mar 28, 2016 at 12:15 PM, Vittorio Giovara > <[email protected]> wrote: >> On Sun, Mar 27, 2016 at 8:52 PM, Luca Barbato <[email protected]> wrote: >>> From: Josh de Kock <[email protected]> >>> >>> Previously, with JACK installed, the configure script would enabled the >>> JACK indev; this broke on Mac OS X due to a incomplete pthreads >>> implementation. Some simple macros to map libdispatch to pthreads if on >>> OS X. >>> >>> Signed-off-by: Luca Barbato <[email protected]> >>> --- >>> >>> Now with an inline function, I avoided libav-specific macros on purpose. >>> >>> Makefile | 2 +- >>> compat/dispatch_semaphore.h | 42 ++++++++++++++++++++++++++++++++++++++++++ >>> configure | 7 ++++++- >>> libavdevice/jack.c | 5 +++++ >>> 4 files changed, 54 insertions(+), 2 deletions(-) >>> create mode 100644 compat/dispatch_semaphore.h >>> >>> diff --git a/Makefile b/Makefile >>> index 7b1e550..9ffce89 100644 >>> --- a/Makefile >>> +++ b/Makefile >>> @@ -104,7 +104,7 @@ FFLIBS := avutil >>> >>> DATA_FILES := $(wildcard $(SRC_PATH)/presets/*.avpreset) >>> >>> -SKIPHEADERS = cmdutils_common_opts.h compat/w32pthreads.h >>> +SKIPHEADERS = cmdutils_common_opts.h compat/w32pthreads.h >>> compat/dispatch_semaphore.h >> >> nit: order >> >>> include $(SRC_PATH)/common.mak >>> >>> diff --git a/compat/dispatch_semaphore.h b/compat/dispatch_semaphore.h >>> new file mode 100644 >>> index 0000000..6fe21f1 >>> --- /dev/null >>> +++ b/compat/dispatch_semaphore.h >>> @@ -0,0 +1,42 @@ >>> +/* >>> + * This file is part of Libav. >>> + * >>> + * Libav 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. >>> + * >>> + * Libav 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 Libav; if not, write to the Free Software >>> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA >>> 02110-1301 USA >>> + */ >>> + >>> +#ifndef COMPAT_DISPATCH_SEMAPHORE_H >>> +#define COMPAT_DISPATCH_SEMAPHORE_H >>> + >>> +#include <dispatch/dispatch.h> >>> +#include <errno.h> >>> + >>> +#define sem_t dispatch_semaphore_t >>> +#define sem_post(psem) dispatch_semaphore_signal(*psem) >>> +#define sem_wait(psem) dispatch_semaphore_wait(*psem, >>> DISPATCH_TIME_FOREVER) >>> +#define sem_timedwait(psem, val) dispatch_semaphore_wait(*psem, >>> dispatch_walltime(val, 0)) >>> +#define sem_destroy(psem) dispatch_release(*psem) >>> + >>> +static inline int compat_sem_init(dispatch_semaphore_t *psem, >>> + int unused, int val) >>> +{ >>> + int ret = !!(*psem = dispatch_semaphore_create(val)) - 1; >>> + if (ret < 0) >>> + errno = ENOMEM; >>> + return ret; >>> +} >> >> ENOMEM is positive no? To be a complete replacement you should return >> -1 and set errno variable. > > Thats what it does? ret is either 0 or -1, and errno is set.
just double checking, code is ok -- Vittorio _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
