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. - Hendrik _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
