Ticket #43: jack-indev-osx.patch

File jack-indev-osx.patch, 2.8 KB (added by ethe, 10 years ago)

updated patch to use libdispatch when available

  • configure

    diff --git a/configure b/configure
    index 287896f..f2f7c3d 100755
    a b BUILTIN_LIST="  
    17321732    mm_empty
    17331733    rdtsc
    17341734    sarestart
     1735    sem_timedwait
    17351736    sync_val_compare_and_swap
    17361737"
    17371738HAVE_LIST_CMDLINE="
    HEADERS_LIST="  
    17581759    dev_ic_bt8xx_h
    17591760    dev_video_bktr_ioctl_bt848_h
    17601761    dev_video_meteor_ioctl_meteor_h
     1762    dispatch_dispatch_h
    17611763    direct_h
    17621764    dirent_h
    17631765    dlfcn_h
    gdigrab_indev_deps="CreateDIBSection"  
    27572759gdigrab_indev_extralibs="-lgdi32"
    27582760gdigrab_indev_select="bmp_decoder"
    27592761iec61883_indev_deps="libiec61883"
    2760 jack_indev_deps="jack_jack_h sem_timedwait"
     2762jack_indev_deps="jack_jack_h"
    27612763lavfi_indev_deps="avfilter"
    27622764libcdio_indev_deps="libcdio"
    27632765libdc1394_indev_deps="libdc1394"
    check_func mprotect  
    53035305check_func_headers time.h nanosleep || { check_func_headers time.h nanosleep -lrt && add_extralibs -lrt && LIBRT="-lrt"; }
    53045306check_func  sched_getaffinity
    53055307check_func  setrlimit
     5308check_func  sem_timedwait
    53065309check_struct "sys/stat.h" "struct stat" st_mtim.tv_nsec -D_BSD_SOURCE
    53075310check_func  strerror_r
    53085311check_func  sysconf
    check_func_headers glob.h glob  
    53305333enabled xlib &&
    53315334    check_func_headers "X11/Xlib.h X11/extensions/Xvlib.h" XvGetPortAttribute -lXv -lX11 -lXext
    53325335
     5336check_header dispatch/dispatch.h
    53335337check_header direct.h
    53345338check_header dirent.h
    53355339check_header dlfcn.h
    check_header soundcard.h  
    57025706enabled_any alsa_indev alsa_outdev &&
    57035707    check_lib2 alsa/asoundlib.h snd_pcm_htimestamp -lasound
    57045708
    5705 enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack && check_func sem_timedwait &&
    5706     check_func jack_port_get_latency_range -ljack
     5709if enabled jack_indev; then
     5710    { check_lib2 jack/jack.h jack_client_open -ljack &&
     5711      check_func jack_port_get_latency_range -ljack &&
     5712      enabled_any sem_timedwait dispatch_dispatch_h; } ||
     5713    disable jack_indev
     5714fi
    57075715
    57085716enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio
    57095717
  • libavdevice/jack.c

    diff --git a/libavdevice/jack.c b/libavdevice/jack.c
    index 9ecbf9e..b5b8666 100644
    a b  
    3535#include "timefilter.h"
    3636#include "avdevice.h"
    3737
     38#if HAVE_DISPATCH_DISPATCH_H
     39
     40#include <dispatch/dispatch.h>
     41#define sem_t dispatch_semaphore_t
     42#define sem_init(psem,x,val)  *psem = dispatch_semaphore_create(val)
     43#define sem_post(psem)                dispatch_semaphore_signal(*psem)
     44#define sem_wait(psem)                dispatch_semaphore_wait(*psem, DISPATCH_TIME_FOREVER)
     45#define sem_timedwait(psem, val)      dispatch_semaphore_wait(*psem, dispatch_walltime(val, 0))
     46#define sem_destroy(psem)             dispatch_release(*psem)
     47
     48#endif /* HAVE_DISPATCH_DISPATCH_H */
     49
    3850/**
    3951 * Size of the internal FIFO buffers as a number of audio packets
    4052 */