- 48,000 frames per second operation, - 48k lossless stereo, 5.1 and 7.1 surround sound - Multichannel and multi rate operation on ALSA, PipeWire, PulseAudio, FreeBSD, stdout and unix pipe output backends. Automatic, flexible and controllable output format (rate, sample format and channel count) selection. Full FFmpeg integration to support transcoding, resampling, and new audio formats. Better operation on lower powered devices down to e.g. Raspberry Pi B. Reduced Docker image sizes with a slimmed-down FFmpeg library. Enhanced timestamp handling for better synchronization. Improved the sync error calculation. A new "vernier" resampling and interpolation method for low-power CPUs. Bug fixes and minor enhancements. Note -- there are many breaking changes from previous versions of Shairport Sync!
29 lines
1.4 KiB
Bash
29 lines
1.4 KiB
Bash
# args: first is the source (XML) file, second is the destination directory
|
|
|
|
# converts the xml file to a plist file and converts that into a byte
|
|
# array defined in a .h and .c file
|
|
# for compilation
|
|
|
|
INPUT_FILE_NAME=`basename $1`
|
|
BASE_FILENAME=`echo ${INPUT_FILE_NAME%.*}`
|
|
LABEL=`echo _${BASE_FILENAME}_PLIST | tr '[:lower:]' '[:upper:]' | tr '.' '_'`
|
|
|
|
mkdir -p $2
|
|
|
|
printf "// Please do not edit this file!\n" > $2/$BASE_FILENAME.h
|
|
printf "// This file was automatically generated from $INPUT_FILE_NAME.\n\n" >> $2/$BASE_FILENAME.h
|
|
printf "#ifndef $LABEL\n" >> $2/$BASE_FILENAME.h
|
|
printf "#define $LABEL\n\n" >> $2/$BASE_FILENAME.h
|
|
printf "#include <stddef.h>\n\n" >> $2/$BASE_FILENAME.h
|
|
printf "extern unsigned char ${BASE_FILENAME}_plist[];\n" >> $2/$BASE_FILENAME.h
|
|
printf "extern size_t ${BASE_FILENAME}_plist_len;\n\n" >> $2/$BASE_FILENAME.h
|
|
printf "#endif // $LABEL\n" >> $2/$BASE_FILENAME.h
|
|
|
|
printf "// Please do not edit this file!\n" > $2/$BASE_FILENAME.c
|
|
printf "// This file was automatically generated from $INPUT_FILE_NAME.\n\n" >> $2/$BASE_FILENAME.c
|
|
printf "#include \"$BASE_FILENAME.h\"\n\n" >> $2/$BASE_FILENAME.c
|
|
printf "unsigned char ${BASE_FILENAME}_plist[] = {\n" >> $2/$BASE_FILENAME.c
|
|
plistutil -i $1 | xxd -i - >> $2/$BASE_FILENAME.c
|
|
printf " };\n\n" >> $2/$BASE_FILENAME.c
|
|
printf "size_t ${BASE_FILENAME}_plist_len = sizeof(${BASE_FILENAME}_plist);\n" >> $2/$BASE_FILENAME.c
|