sdl2-config.in
author Sam Lantinga
Sat, 08 Jun 2019 18:22:18 -0700
changeset 12803 70d338e248c8
parent 7876 d6373384b5ce
child 13729 89a457159af4
permissions -rw-r--r--
Fixed bug 4294 - Audio: perform more validation on conversion request

janisozaur

There are many cases which are not able to be handled by SDL's audio conversion routines, including too low (negative) rate, too high rate (impossible to allocate).

This patch aims to report such issues early and handle others in a graceful manner. The "INT32_MAX / RESAMPLER_SAMPLES_PER_ZERO_CROSSING" value is the conservative approach in terms of what can _technically_ be supported, but its value is 4'194'303, or just shy of 4.2MHz. I highly doubt any sane person would use such rates, especially in SDL2, so I would like to drive this limit further down, but would need some assistance to do that, as doing so would have to introduce an arbitrary value. Are you OK with such approach? What would a good value be? Wikipedia (https://en.wikipedia.org/wiki/High-resolution_audio) lists 96kHz as the highest sampling rate in use, even if I quadruple it for a good measure, to 384kHz it's still an order of magnitude lower than 4MHz.
slouken@0
     1
#!/bin/sh
slouken@0
     2
slouken@0
     3
prefix=@prefix@
slouken@0
     4
exec_prefix=@exec_prefix@
slouken@0
     5
exec_prefix_set=no
icculus@2100
     6
libdir=@libdir@
slouken@0
     7
slouken@1647
     8
@ENABLE_STATIC_FALSE@usage="\
slouken@6250
     9
@ENABLE_STATIC_FALSE@Usage: $0 [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs]"
slouken@1647
    10
@ENABLE_STATIC_TRUE@usage="\
slouken@6250
    11
@ENABLE_STATIC_TRUE@Usage: $0 [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs] [--static-libs]"
slouken@0
    12
slouken@0
    13
if test $# -eq 0; then
slouken@0
    14
      echo "${usage}" 1>&2
slouken@0
    15
      exit 1
slouken@0
    16
fi
slouken@0
    17
slouken@0
    18
while test $# -gt 0; do
slouken@0
    19
  case "$1" in
slouken@1895
    20
  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
slouken@0
    21
  *) optarg= ;;
slouken@0
    22
  esac
slouken@0
    23
slouken@0
    24
  case $1 in
slouken@0
    25
    --prefix=*)
slouken@0
    26
      prefix=$optarg
slouken@0
    27
      if test $exec_prefix_set = no ; then
slouken@0
    28
        exec_prefix=$optarg
slouken@0
    29
      fi
slouken@0
    30
      ;;
slouken@0
    31
    --prefix)
slouken@0
    32
      echo $prefix
slouken@0
    33
      ;;
slouken@0
    34
    --exec-prefix=*)
slouken@0
    35
      exec_prefix=$optarg
slouken@0
    36
      exec_prefix_set=yes
slouken@0
    37
      ;;
slouken@0
    38
    --exec-prefix)
slouken@0
    39
      echo $exec_prefix
slouken@0
    40
      ;;
slouken@0
    41
    --version)
slouken@0
    42
      echo @SDL_VERSION@
slouken@0
    43
      ;;
slouken@0
    44
    --cflags)
slouken@6250
    45
      echo -I@includedir@/SDL2 @SDL_CFLAGS@
slouken@0
    46
      ;;
slouken@0
    47
@ENABLE_SHARED_TRUE@    --libs)
slouken@7876
    48
@ENABLE_SHARED_TRUE@      echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_LIBS@
slouken@0
    49
@ENABLE_SHARED_TRUE@      ;;
slouken@0
    50
@ENABLE_STATIC_TRUE@@ENABLE_SHARED_TRUE@    --static-libs)
slouken@0
    51
@ENABLE_STATIC_TRUE@@ENABLE_SHARED_FALSE@    --libs|--static-libs)
slouken@1548
    52
@ENABLE_STATIC_TRUE@      echo -L@libdir@ @SDL_RLD_FLAGS@ @SDL_STATIC_LIBS@
slouken@0
    53
@ENABLE_STATIC_TRUE@      ;;
slouken@0
    54
    *)
slouken@0
    55
      echo "${usage}" 1>&2
slouken@0
    56
      exit 1
slouken@0
    57
      ;;
slouken@0
    58
  esac
slouken@0
    59
  shift
slouken@0
    60
done