--- configure | 14 +++++++++++--- libavdevice/jack.c | 12 ++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/configure b/configure index 287896f..f2f7c3d 100755 --- a/configure +++ b/configure @@ -1732,6 +1732,7 @@ BUILTIN_LIST=" mm_empty rdtsc sarestart + sem_timedwait sync_val_compare_and_swap " HAVE_LIST_CMDLINE=" @@ -1758,6 +1759,7 @@ HEADERS_LIST=" dev_ic_bt8xx_h dev_video_bktr_ioctl_bt848_h dev_video_meteor_ioctl_meteor_h + dispatch_dispatch_h direct_h dirent_h dlfcn_h @@ -2757,7 +2759,7 @@ gdigrab_indev_deps="CreateDIBSection" gdigrab_indev_extralibs="-lgdi32" gdigrab_indev_select="bmp_decoder" iec61883_indev_deps="libiec61883" -jack_indev_deps="jack_jack_h sem_timedwait" +jack_indev_deps="jack_jack_h" lavfi_indev_deps="avfilter" libcdio_indev_deps="libcdio" libdc1394_indev_deps="libdc1394" @@ -5303,6 +5305,7 @@ check_func mprotect check_func_headers time.h nanosleep || { check_func_headers time.h nanosleep -lrt && add_extralibs -lrt && LIBRT="-lrt"; } check_func sched_getaffinity check_func setrlimit +check_func sem_timedwait check_struct "sys/stat.h" "struct stat" st_mtim.tv_nsec -D_BSD_SOURCE check_func strerror_r check_func sysconf @@ -5330,6 +5333,7 @@ check_func_headers glob.h glob enabled xlib && check_func_headers "X11/Xlib.h X11/extensions/Xvlib.h" XvGetPortAttribute -lXv -lX11 -lXext +check_header dispatch/dispatch.h check_header direct.h check_header dirent.h check_header dlfcn.h @@ -5702,8 +5706,12 @@ check_header soundcard.h enabled_any alsa_indev alsa_outdev && check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound -enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack && check_func sem_timedwait && - check_func jack_port_get_latency_range -ljack +if enabled jack_indev; then + { check_lib2 jack/jack.h jack_client_open -ljack && + check_func jack_port_get_latency_range -ljack && + enabled_any sem_timedwait dispatch_dispatch_h; } || + disable jack_indev +fi enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio diff --git a/libavdevice/jack.c b/libavdevice/jack.c index 9ecbf9e..b5b8666 100644 --- a/libavdevice/jack.c +++ b/libavdevice/jack.c @@ -35,6 +35,18 @@ #include "timefilter.h" #include "avdevice.h" +#if HAVE_DISPATCH_DISPATCH_H + +#include <dispatch/dispatch.h> +#define sem_t dispatch_semaphore_t +#define sem_init(psem,x,val) *psem = dispatch_semaphore_create(val) +#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) + +#endif /* HAVE_DISPATCH_DISPATCH_H */ + /** * Size of the internal FIFO buffers as a number of audio packets */ -- 2.5.4 (Apple Git-61) Finally took the time to take a look at this one, works on my machine (OSX 10.11.3) with the latest ffmpeg from git; would appreciate maybe someone else to test it, see if it works on other people's machines as well, I don't see why it shouldn't but just to be sure :) Josh _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel