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

Reply via email to