Update Mac project for new libsndfile version

This commit is contained in:
Leland Lucius 2020-03-16 23:25:55 -05:00
parent 9fbbc05c11
commit 1ff88d9c8d
5 changed files with 776 additions and 182 deletions

View File

@ -106,7 +106,6 @@
1707404A0988EEBA008541CC /* ima_adpcm.c in Sources */ = {isa = PBXBuildFile; fileRef = 170734EC0988D6AD008541CC /* ima_adpcm.c */; };
1707404B0988EEBA008541CC /* interleave.c in Sources */ = {isa = PBXBuildFile; fileRef = 170734ED0988D6AD008541CC /* interleave.c */; };
1707404C0988EEBA008541CC /* ircam.c in Sources */ = {isa = PBXBuildFile; fileRef = 170734EE0988D6AD008541CC /* ircam.c */; };
1707404D0988EEBA008541CC /* macbinary3.c in Sources */ = {isa = PBXBuildFile; fileRef = 170734F00988D6AD008541CC /* macbinary3.c */; };
1707404E0988EEBA008541CC /* macos.c in Sources */ = {isa = PBXBuildFile; fileRef = 170734F10988D6AD008541CC /* macos.c */; };
1707404F0988EEBA008541CC /* mat4.c in Sources */ = {isa = PBXBuildFile; fileRef = 170734F50988D6AD008541CC /* mat4.c */; };
170740500988EEBA008541CC /* mat5.c in Sources */ = {isa = PBXBuildFile; fileRef = 170734F60988D6AD008541CC /* mat5.c */; };
@ -131,8 +130,6 @@
170740640988EEBA008541CC /* vox_adpcm.c in Sources */ = {isa = PBXBuildFile; fileRef = 170735130988D6AD008541CC /* vox_adpcm.c */; };
170740650988EEBA008541CC /* w64.c in Sources */ = {isa = PBXBuildFile; fileRef = 170735140988D6AD008541CC /* w64.c */; };
170740660988EEBA008541CC /* wav.c in Sources */ = {isa = PBXBuildFile; fileRef = 170735150988D6AD008541CC /* wav.c */; };
170740670988EEBA008541CC /* wav_w64.c in Sources */ = {isa = PBXBuildFile; fileRef = 170735160988D6AD008541CC /* wav_w64.c */; };
170740680988EEBA008541CC /* wav_w64.h in Headers */ = {isa = PBXBuildFile; fileRef = 170735170988D6AD008541CC /* wav_w64.h */; };
170740690988EEBA008541CC /* wve.c in Sources */ = {isa = PBXBuildFile; fileRef = 170735180988D6AD008541CC /* wve.c */; };
1707406A0988EEBA008541CC /* xi.c in Sources */ = {isa = PBXBuildFile; fileRef = 170735190988D6AD008541CC /* xi.c */; };
1707407C0988F1CC008541CC /* BPMDetect.h in Headers */ = {isa = PBXBuildFile; fileRef = 170737EB0988D6AF008541CC /* BPMDetect.h */; };
@ -714,6 +711,38 @@
28501F330CEED8C70029ABAA /* libvamp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28501F060CEED1F00029ABAA /* libvamp.a */; };
28530C4C0DF2105200555C94 /* HtmlWindow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28530C480DF2105200555C94 /* HtmlWindow.cpp */; };
28530C4D0DF2105200555C94 /* ProgressDialog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28530C4A0DF2105200555C94 /* ProgressDialog.cpp */; };
28557278242083CC00ACCF27 /* alac_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 28557263242083CC00ACCF27 /* alac_decoder.c */; };
28557279242083CC00ACCF27 /* ALACBitUtilities.c in Sources */ = {isa = PBXBuildFile; fileRef = 28557264242083CC00ACCF27 /* ALACBitUtilities.c */; };
2855727A242083CC00ACCF27 /* dplib.h in Headers */ = {isa = PBXBuildFile; fileRef = 28557266242083CC00ACCF27 /* dplib.h */; };
2855727B242083CC00ACCF27 /* matrix_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 28557267242083CC00ACCF27 /* matrix_dec.c */; };
2855727C242083CC00ACCF27 /* matrix_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 28557268242083CC00ACCF27 /* matrix_enc.c */; };
2855727D242083CC00ACCF27 /* ALACEncoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 28557269242083CC00ACCF27 /* ALACEncoder.h */; };
2855727E242083CC00ACCF27 /* ALACBitUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 2855726A242083CC00ACCF27 /* ALACBitUtilities.h */; };
2855727F242083CC00ACCF27 /* shift.h in Headers */ = {isa = PBXBuildFile; fileRef = 2855726B242083CC00ACCF27 /* shift.h */; };
28557280242083CC00ACCF27 /* alac_decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 2855726C242083CC00ACCF27 /* alac_decoder.h */; };
28557281242083CC00ACCF27 /* aglib.h in Headers */ = {isa = PBXBuildFile; fileRef = 2855726D242083CC00ACCF27 /* aglib.h */; };
28557282242083CC00ACCF27 /* EndianPortable.h in Headers */ = {isa = PBXBuildFile; fileRef = 2855726E242083CC00ACCF27 /* EndianPortable.h */; };
28557283242083CC00ACCF27 /* ag_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 2855726F242083CC00ACCF27 /* ag_dec.c */; };
28557284242083CC00ACCF27 /* dp_dec.c in Sources */ = {isa = PBXBuildFile; fileRef = 28557270242083CC00ACCF27 /* dp_dec.c */; };
28557285242083CC00ACCF27 /* ALACDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 28557271242083CC00ACCF27 /* ALACDecoder.h */; };
28557286242083CC00ACCF27 /* ALACAudioTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 28557272242083CC00ACCF27 /* ALACAudioTypes.h */; };
28557287242083CC00ACCF27 /* dp_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 28557273242083CC00ACCF27 /* dp_enc.c */; };
28557288242083CC00ACCF27 /* ag_enc.c in Sources */ = {isa = PBXBuildFile; fileRef = 28557274242083CC00ACCF27 /* ag_enc.c */; };
28557289242083CC00ACCF27 /* matrixlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 28557275242083CC00ACCF27 /* matrixlib.h */; };
2855728A242083CC00ACCF27 /* alac_codec.h in Headers */ = {isa = PBXBuildFile; fileRef = 28557276242083CC00ACCF27 /* alac_codec.h */; };
2855728B242083CC00ACCF27 /* alac_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 28557277242083CC00ACCF27 /* alac_encoder.c */; };
285572952420841C00ACCF27 /* ogg_vorbis.c in Sources */ = {isa = PBXBuildFile; fileRef = 2855728C2420841B00ACCF27 /* ogg_vorbis.c */; };
285572962420841C00ACCF27 /* ogg_vcomment.c in Sources */ = {isa = PBXBuildFile; fileRef = 2855728D2420841B00ACCF27 /* ogg_vcomment.c */; };
285572972420841C00ACCF27 /* ogg_speex.c in Sources */ = {isa = PBXBuildFile; fileRef = 2855728E2420841B00ACCF27 /* ogg_speex.c */; };
285572982420841C00ACCF27 /* wavlike.c in Sources */ = {isa = PBXBuildFile; fileRef = 2855728F2420841B00ACCF27 /* wavlike.c */; };
285572992420841C00ACCF27 /* ogg_pcm.c in Sources */ = {isa = PBXBuildFile; fileRef = 285572902420841B00ACCF27 /* ogg_pcm.c */; };
2855729A2420841C00ACCF27 /* ogg_opus.c in Sources */ = {isa = PBXBuildFile; fileRef = 285572912420841B00ACCF27 /* ogg_opus.c */; };
2855729B2420841C00ACCF27 /* cart.c in Sources */ = {isa = PBXBuildFile; fileRef = 285572922420841C00ACCF27 /* cart.c */; };
2855729C2420841C00ACCF27 /* nms_adpcm.c in Sources */ = {isa = PBXBuildFile; fileRef = 285572932420841C00ACCF27 /* nms_adpcm.c */; };
2855729D2420841C00ACCF27 /* alac.c in Sources */ = {isa = PBXBuildFile; fileRef = 285572942420841C00ACCF27 /* alac.c */; };
2855729F2420847600ACCF27 /* ogg_vcomment.h in Headers */ = {isa = PBXBuildFile; fileRef = 2855729E2420847600ACCF27 /* ogg_vcomment.h */; };
285572A22420849900ACCF27 /* ogg.h in Headers */ = {isa = PBXBuildFile; fileRef = 285572A02420849800ACCF27 /* ogg.h */; };
285572A32420849900ACCF27 /* wavlike.h in Headers */ = {isa = PBXBuildFile; fileRef = 285572A12420849800ACCF27 /* wavlike.h */; };
28560C910A75E40F00A3429E /* AutoRecovery.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 28560C8F0A75E40F00A3429E /* AutoRecovery.cpp */; };
285B11861833D14D0073B36C /* libexpat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FADDEF1833C3C500BA4141 /* libexpat.a */; };
285D3CB40F09FC8F007883FC /* PluginBufferingAdapter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 285D3CAC0F09FC8F007883FC /* PluginBufferingAdapter.cpp */; };
@ -1814,7 +1843,6 @@
170734EC0988D6AD008541CC /* ima_adpcm.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = ima_adpcm.c; sourceTree = "<group>"; tabWidth = 3; };
170734ED0988D6AD008541CC /* interleave.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = interleave.c; sourceTree = "<group>"; tabWidth = 3; };
170734EE0988D6AD008541CC /* ircam.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = ircam.c; sourceTree = "<group>"; tabWidth = 3; };
170734F00988D6AD008541CC /* macbinary3.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = macbinary3.c; sourceTree = "<group>"; tabWidth = 3; };
170734F10988D6AD008541CC /* macos.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = macos.c; sourceTree = "<group>"; tabWidth = 3; };
170734F50988D6AD008541CC /* mat4.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = mat4.c; sourceTree = "<group>"; tabWidth = 3; };
170734F60988D6AD008541CC /* mat5.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = mat5.c; sourceTree = "<group>"; tabWidth = 3; };
@ -1839,8 +1867,6 @@
170735130988D6AD008541CC /* vox_adpcm.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = vox_adpcm.c; sourceTree = "<group>"; tabWidth = 3; };
170735140988D6AD008541CC /* w64.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = w64.c; sourceTree = "<group>"; tabWidth = 3; };
170735150988D6AD008541CC /* wav.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = wav.c; sourceTree = "<group>"; tabWidth = 3; };
170735160988D6AD008541CC /* wav_w64.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = wav_w64.c; sourceTree = "<group>"; tabWidth = 3; };
170735170988D6AD008541CC /* wav_w64.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = wav_w64.h; sourceTree = "<group>"; tabWidth = 3; };
170735180988D6AD008541CC /* wve.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = wve.c; sourceTree = "<group>"; tabWidth = 3; };
170735190988D6AD008541CC /* xi.c */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.c; path = xi.c; sourceTree = "<group>"; tabWidth = 3; };
1707363D0988D6AE008541CC /* codec.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = codec.h; sourceTree = "<group>"; tabWidth = 3; };
@ -2653,6 +2679,38 @@
28530C490DF2105200555C94 /* HtmlWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = HtmlWindow.h; sourceTree = "<group>"; tabWidth = 3; };
28530C4A0DF2105200555C94 /* ProgressDialog.cpp */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.cpp.cpp; path = ProgressDialog.cpp; sourceTree = "<group>"; tabWidth = 3; };
28530C4B0DF2105200555C94 /* ProgressDialog.h */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = ProgressDialog.h; sourceTree = "<group>"; tabWidth = 3; };
28557263242083CC00ACCF27 /* alac_decoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = alac_decoder.c; sourceTree = "<group>"; };
28557264242083CC00ACCF27 /* ALACBitUtilities.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ALACBitUtilities.c; sourceTree = "<group>"; };
28557266242083CC00ACCF27 /* dplib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dplib.h; sourceTree = "<group>"; };
28557267242083CC00ACCF27 /* matrix_dec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = matrix_dec.c; sourceTree = "<group>"; };
28557268242083CC00ACCF27 /* matrix_enc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = matrix_enc.c; sourceTree = "<group>"; };
28557269242083CC00ACCF27 /* ALACEncoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ALACEncoder.h; sourceTree = "<group>"; };
2855726A242083CC00ACCF27 /* ALACBitUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ALACBitUtilities.h; sourceTree = "<group>"; };
2855726B242083CC00ACCF27 /* shift.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shift.h; sourceTree = "<group>"; };
2855726C242083CC00ACCF27 /* alac_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = alac_decoder.h; sourceTree = "<group>"; };
2855726D242083CC00ACCF27 /* aglib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aglib.h; sourceTree = "<group>"; };
2855726E242083CC00ACCF27 /* EndianPortable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EndianPortable.h; sourceTree = "<group>"; };
2855726F242083CC00ACCF27 /* ag_dec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ag_dec.c; sourceTree = "<group>"; };
28557270242083CC00ACCF27 /* dp_dec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dp_dec.c; sourceTree = "<group>"; };
28557271242083CC00ACCF27 /* ALACDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ALACDecoder.h; sourceTree = "<group>"; };
28557272242083CC00ACCF27 /* ALACAudioTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ALACAudioTypes.h; sourceTree = "<group>"; };
28557273242083CC00ACCF27 /* dp_enc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dp_enc.c; sourceTree = "<group>"; };
28557274242083CC00ACCF27 /* ag_enc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ag_enc.c; sourceTree = "<group>"; };
28557275242083CC00ACCF27 /* matrixlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = matrixlib.h; sourceTree = "<group>"; };
28557276242083CC00ACCF27 /* alac_codec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = alac_codec.h; sourceTree = "<group>"; };
28557277242083CC00ACCF27 /* alac_encoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = alac_encoder.c; sourceTree = "<group>"; };
2855728C2420841B00ACCF27 /* ogg_vorbis.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ogg_vorbis.c; sourceTree = "<group>"; };
2855728D2420841B00ACCF27 /* ogg_vcomment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ogg_vcomment.c; sourceTree = "<group>"; };
2855728E2420841B00ACCF27 /* ogg_speex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ogg_speex.c; sourceTree = "<group>"; };
2855728F2420841B00ACCF27 /* wavlike.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = wavlike.c; sourceTree = "<group>"; };
285572902420841B00ACCF27 /* ogg_pcm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ogg_pcm.c; sourceTree = "<group>"; };
285572912420841B00ACCF27 /* ogg_opus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ogg_opus.c; sourceTree = "<group>"; };
285572922420841C00ACCF27 /* cart.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cart.c; sourceTree = "<group>"; };
285572932420841C00ACCF27 /* nms_adpcm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nms_adpcm.c; sourceTree = "<group>"; };
285572942420841C00ACCF27 /* alac.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = alac.c; sourceTree = "<group>"; };
2855729E2420847600ACCF27 /* ogg_vcomment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ogg_vcomment.h; sourceTree = "<group>"; };
285572A02420849800ACCF27 /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ogg.h; sourceTree = "<group>"; };
285572A12420849800ACCF27 /* wavlike.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = wavlike.h; sourceTree = "<group>"; };
28560C8F0A75E40F00A3429E /* AutoRecovery.cpp */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.cpp.cpp; path = AutoRecovery.cpp; sourceTree = "<group>"; tabWidth = 3; };
28560C900A75E40F00A3429E /* AutoRecovery.h */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.c.h; path = AutoRecovery.h; sourceTree = "<group>"; tabWidth = 3; };
285D3CAC0F09FC8F007883FC /* PluginBufferingAdapter.cpp */ = {isa = PBXFileReference; fileEncoding = 5; indentWidth = 3; lastKnownFileType = sourcecode.cpp.cpp; name = PluginBufferingAdapter.cpp; path = "libvamp/src/vamp-hostsdk/PluginBufferingAdapter.cpp"; sourceTree = "<group>"; tabWidth = 3; };
@ -3928,15 +3986,18 @@
170734650988D6AD008541CC /* src */ = {
isa = PBXGroup;
children = (
28557262242083CC00ACCF27 /* ALAC */,
170734AB0988D6AD008541CC /* G72x */,
170734C20988D6AD008541CC /* GSM610 */,
170734970988D6AD008541CC /* aiff.c */,
285572942420841C00ACCF27 /* alac.c */,
170734980988D6AD008541CC /* alaw.c */,
170734990988D6AD008541CC /* au.c */,
287DBE830F3F6B2700C5BBED /* audio_detect.c */,
1707349C0988D6AD008541CC /* avr.c */,
283A11A40A2C0DE7004372C4 /* broadcast.c */,
176EE9DB09A2EC1000188F3B /* caf.c */,
285572922420841C00ACCF27 /* cart.c */,
288A54481346D1BA0050D774 /* chanmap.c */,
288A54491346D1BA0050D774 /* chanmap.h */,
287DBE840F3F6B2700C5BBED /* chunk.c */,
@ -3959,14 +4020,21 @@
287DBE860F3F6B2700C5BBED /* ima_oki_adpcm.h */,
170734ED0988D6AD008541CC /* interleave.c */,
170734EE0988D6AD008541CC /* ircam.c */,
170734F00988D6AD008541CC /* macbinary3.c */,
170734F10988D6AD008541CC /* macos.c */,
170734F50988D6AD008541CC /* mat4.c */,
170734F60988D6AD008541CC /* mat5.c */,
287DBE870F3F6B2700C5BBED /* mpc2k.c */,
170734F70988D6AD008541CC /* ms_adpcm.c */,
285572932420841C00ACCF27 /* nms_adpcm.c */,
170734F80988D6AD008541CC /* nist.c */,
170734F90988D6AD008541CC /* ogg.c */,
285572A02420849800ACCF27 /* ogg.h */,
285572912420841B00ACCF27 /* ogg_opus.c */,
285572902420841B00ACCF27 /* ogg_pcm.c */,
2855728E2420841B00ACCF27 /* ogg_speex.c */,
2855728D2420841B00ACCF27 /* ogg_vcomment.c */,
2855729E2420847600ACCF27 /* ogg_vcomment.h */,
2855728C2420841B00ACCF27 /* ogg_vorbis.c */,
170734FA0988D6AD008541CC /* paf.c */,
170734FB0988D6AD008541CC /* pcm.c */,
170734FC0988D6AD008541CC /* pvf.c */,
@ -3986,8 +4054,8 @@
170735130988D6AD008541CC /* vox_adpcm.c */,
170735140988D6AD008541CC /* w64.c */,
170735150988D6AD008541CC /* wav.c */,
170735160988D6AD008541CC /* wav_w64.c */,
170735170988D6AD008541CC /* wav_w64.h */,
2855728F2420841B00ACCF27 /* wavlike.c */,
285572A12420849800ACCF27 /* wavlike.h */,
170735180988D6AD008541CC /* wve.c */,
170735190988D6AD008541CC /* xi.c */,
);
@ -5796,6 +5864,33 @@
name = "vamp-sdk";
sourceTree = "<group>";
};
28557262242083CC00ACCF27 /* ALAC */ = {
isa = PBXGroup;
children = (
28557263242083CC00ACCF27 /* alac_decoder.c */,
28557264242083CC00ACCF27 /* ALACBitUtilities.c */,
28557266242083CC00ACCF27 /* dplib.h */,
28557267242083CC00ACCF27 /* matrix_dec.c */,
28557268242083CC00ACCF27 /* matrix_enc.c */,
28557269242083CC00ACCF27 /* ALACEncoder.h */,
2855726A242083CC00ACCF27 /* ALACBitUtilities.h */,
2855726B242083CC00ACCF27 /* shift.h */,
2855726C242083CC00ACCF27 /* alac_decoder.h */,
2855726D242083CC00ACCF27 /* aglib.h */,
2855726E242083CC00ACCF27 /* EndianPortable.h */,
2855726F242083CC00ACCF27 /* ag_dec.c */,
28557270242083CC00ACCF27 /* dp_dec.c */,
28557271242083CC00ACCF27 /* ALACDecoder.h */,
28557272242083CC00ACCF27 /* ALACAudioTypes.h */,
28557273242083CC00ACCF27 /* dp_enc.c */,
28557274242083CC00ACCF27 /* ag_enc.c */,
28557275242083CC00ACCF27 /* matrixlib.h */,
28557276242083CC00ACCF27 /* alac_codec.h */,
28557277242083CC00ACCF27 /* alac_encoder.c */,
);
path = ALAC;
sourceTree = "<group>";
};
285D3CAB0F09FC54007883FC /* vamp-hostsdk */ = {
isa = PBXGroup;
children = (
@ -6906,13 +7001,26 @@
files = (
170740270988EEBA008541CC /* common.h in Headers */,
170740350988EEBA008541CC /* g72x.h in Headers */,
285572A32420849900ACCF27 /* wavlike.h in Headers */,
2855728A242083CC00ACCF27 /* alac_codec.h in Headers */,
170740360988EEBA008541CC /* g72x_priv.h in Headers */,
2855727A242083CC00ACCF27 /* dplib.h in Headers */,
1707403B0988EEBA008541CC /* gsm.h in Headers */,
28557289242083CC00ACCF27 /* matrixlib.h in Headers */,
28557282242083CC00ACCF27 /* EndianPortable.h in Headers */,
285572A22420849900ACCF27 /* ogg.h in Headers */,
28557285242083CC00ACCF27 /* ALACDecoder.h in Headers */,
28557286242083CC00ACCF27 /* ALACAudioTypes.h in Headers */,
1707403C0988EEBA008541CC /* gsm610_priv.h in Headers */,
1707405B0988EEBA008541CC /* sf_unistd.h in Headers */,
2855727E242083CC00ACCF27 /* ALACBitUtilities.h in Headers */,
1707405C0988EEBA008541CC /* sfendian.h in Headers */,
170740680988EEBA008541CC /* wav_w64.h in Headers */,
2855727F242083CC00ACCF27 /* shift.h in Headers */,
2855727D242083CC00ACCF27 /* ALACEncoder.h in Headers */,
2855729F2420847600ACCF27 /* ogg_vcomment.h in Headers */,
28557281242083CC00ACCF27 /* aglib.h in Headers */,
287DBE8C0F3F6B2700C5BBED /* ima_oki_adpcm.h in Headers */,
28557280242083CC00ACCF27 /* alac_decoder.h in Headers */,
288A544C1346D1BA0050D774 /* chanmap.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -8268,12 +8376,16 @@
files = (
1707401F0988EEBA008541CC /* aiff.c in Sources */,
170740200988EEBA008541CC /* alaw.c in Sources */,
28557287242083CC00ACCF27 /* dp_enc.c in Sources */,
170740210988EEBA008541CC /* au.c in Sources */,
170740240988EEBA008541CC /* avr.c in Sources */,
170740250988EEBA008541CC /* command.c in Sources */,
170740260988EEBA008541CC /* common.c in Sources */,
170740290988EEBA008541CC /* dither.c in Sources */,
2855729B2420841C00ACCF27 /* cart.c in Sources */,
2855727C242083CC00ACCF27 /* matrix_enc.c in Sources */,
1707402A0988EEBA008541CC /* double64.c in Sources */,
28557284242083CC00ACCF27 /* dp_dec.c in Sources */,
1707402B0988EEBA008541CC /* dwd.c in Sources */,
1707402C0988EEBA008541CC /* dwvw.c in Sources */,
1707402D0988EEBA008541CC /* file_io.c in Sources */,
@ -8286,6 +8398,7 @@
170740370988EEBA008541CC /* add.c in Sources */,
170740380988EEBA008541CC /* code.c in Sources */,
1707403A0988EEBA008541CC /* decode.c in Sources */,
2855728B242083CC00ACCF27 /* alac_encoder.c in Sources */,
1707403D0988EEBA008541CC /* gsm_create.c in Sources */,
1707403E0988EEBA008541CC /* gsm_decode.c in Sources */,
1707403F0988EEBA008541CC /* gsm_destroy.c in Sources */,
@ -8293,16 +8406,18 @@
170740410988EEBA008541CC /* gsm_option.c in Sources */,
170740420988EEBA008541CC /* long_term.c in Sources */,
170740430988EEBA008541CC /* lpc.c in Sources */,
285572972420841C00ACCF27 /* ogg_speex.c in Sources */,
170740440988EEBA008541CC /* preprocess.c in Sources */,
170740450988EEBA008541CC /* rpe.c in Sources */,
170740460988EEBA008541CC /* short_term.c in Sources */,
170740470988EEBA008541CC /* table.c in Sources */,
170740480988EEBA008541CC /* gsm610.c in Sources */,
170740490988EEBA008541CC /* htk.c in Sources */,
2855729D2420841C00ACCF27 /* alac.c in Sources */,
1707404A0988EEBA008541CC /* ima_adpcm.c in Sources */,
1707404B0988EEBA008541CC /* interleave.c in Sources */,
1707404C0988EEBA008541CC /* ircam.c in Sources */,
1707404D0988EEBA008541CC /* macbinary3.c in Sources */,
28557278242083CC00ACCF27 /* alac_decoder.c in Sources */,
1707404E0988EEBA008541CC /* macos.c in Sources */,
1707404F0988EEBA008541CC /* mat4.c in Sources */,
170740500988EEBA008541CC /* mat5.c in Sources */,
@ -8313,6 +8428,8 @@
170740550988EEBA008541CC /* pcm.c in Sources */,
170740560988EEBA008541CC /* pvf.c in Sources */,
170740570988EEBA008541CC /* raw.c in Sources */,
285572982420841C00ACCF27 /* wavlike.c in Sources */,
285572952420841C00ACCF27 /* ogg_vorbis.c in Sources */,
170740580988EEBA008541CC /* rx2.c in Sources */,
170740590988EEBA008541CC /* sd2.c in Sources */,
1707405A0988EEBA008541CC /* sds.c in Sources */,
@ -8322,11 +8439,14 @@
170740610988EEBA008541CC /* txw.c in Sources */,
170740620988EEBA008541CC /* ulaw.c in Sources */,
170740630988EEBA008541CC /* voc.c in Sources */,
285572992420841C00ACCF27 /* ogg_pcm.c in Sources */,
170740640988EEBA008541CC /* vox_adpcm.c in Sources */,
170740650988EEBA008541CC /* w64.c in Sources */,
2855729C2420841C00ACCF27 /* nms_adpcm.c in Sources */,
170740660988EEBA008541CC /* wav.c in Sources */,
170740670988EEBA008541CC /* wav_w64.c in Sources */,
28557288242083CC00ACCF27 /* ag_enc.c in Sources */,
170740690988EEBA008541CC /* wve.c in Sources */,
285572962420841C00ACCF27 /* ogg_vcomment.c in Sources */,
1707406A0988EEBA008541CC /* xi.c in Sources */,
176EE9DE09A2EC1000188F3B /* caf.c in Sources */,
176EE9DF09A2EC1000188F3B /* flac.c in Sources */,
@ -8335,9 +8455,13 @@
287DBE890F3F6B2700C5BBED /* audio_detect.c in Sources */,
287DBE8A0F3F6B2700C5BBED /* chunk.c in Sources */,
287DBE8B0F3F6B2700C5BBED /* ima_oki_adpcm.c in Sources */,
28557279242083CC00ACCF27 /* ALACBitUtilities.c in Sources */,
287DBE8D0F3F6B2700C5BBED /* mpc2k.c in Sources */,
287DBE8E0F3F6B2700C5BBED /* rf64.c in Sources */,
2855727B242083CC00ACCF27 /* matrix_dec.c in Sources */,
288A544B1346D1BA0050D774 /* chanmap.c in Sources */,
28557283242083CC00ACCF27 /* ag_dec.c in Sources */,
2855729A2420841C00ACCF27 /* ogg_opus.c in Sources */,
288A544D1346D1BA0050D774 /* id3.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -9791,7 +9915,7 @@
GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H;
PRODUCT_NAME = sndfile;
SKIP_INSTALL = YES;
USER_HEADER_SEARCH_PATHS = "$(TOPLEVEL)/mac/config/$(arch)/lib-src/libsndfile/**";
USER_HEADER_SEARCH_PATHS = "$(TOPLEVEL)/mac/config/$(arch)/lib-src/libsndfile/** $(TOPLEVEL)/lib-src/libsndfile/src";
};
name = Debug;
};
@ -10128,7 +10252,7 @@
GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H;
PRODUCT_NAME = sndfile;
SKIP_INSTALL = YES;
USER_HEADER_SEARCH_PATHS = "$(TOPLEVEL)/mac/config/$(arch)/lib-src/libsndfile/**";
USER_HEADER_SEARCH_PATHS = "$(TOPLEVEL)/mac/config/$(arch)/lib-src/libsndfile/** $(TOPLEVEL)/lib-src/libsndfile/src";
};
name = Release;
};
@ -10567,7 +10691,7 @@
GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H;
PRODUCT_NAME = sndfile;
SKIP_INSTALL = YES;
USER_HEADER_SEARCH_PATHS = "$(TOPLEVEL)/mac/config/$(arch)/lib-src/libsndfile/**";
USER_HEADER_SEARCH_PATHS = "$(TOPLEVEL)/mac/config/$(arch)/lib-src/libsndfile/** $(TOPLEVEL)/lib-src/libsndfile/src";
};
name = Debug64;
};
@ -11028,7 +11152,7 @@
GCC_PREPROCESSOR_DEFINITIONS = HAVE_CONFIG_H;
PRODUCT_NAME = sndfile;
SKIP_INSTALL = YES;
USER_HEADER_SEARCH_PATHS = "$(TOPLEVEL)/mac/config/$(arch)/lib-src/libsndfile/**";
USER_HEADER_SEARCH_PATHS = "$(TOPLEVEL)/mac/config/$(arch)/lib-src/libsndfile/** $(TOPLEVEL)/lib-src/libsndfile/src";
};
name = Release64;
};

View File

@ -1,24 +1,30 @@
/* src/config.h. Generated from config.h.in by configure. */
/* src/config.h.in. Generated from configure.ac by autoheader. */
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
/* Set to 1 if the compile is GNU GCC. */
#define COMPILER_IS_GCC 1
#define COMPILER_IS_GCC 0
/* Target processor clips on negative float to int conversion. */
#define CPU_CLIPS_NEGATIVE 0
/* Host processor clips on negative float to int conversion. */
#define CPU_CLIPS_NEGATIVE 1
/* Target processor clips on positive float to int conversion. */
#define CPU_CLIPS_POSITIVE 0
/* Host processor clips on positive float to int conversion. */
#define CPU_CLIPS_POSITIVE 1
/* Target processor is big endian. */
/* Host processor is big endian. */
#define CPU_IS_BIG_ENDIAN 0
/* Target processor is little endian. */
/* Host processor is little endian. */
#define CPU_IS_LITTLE_ENDIAN 1
/* Set to 1 to enable experimental code. */
#define ENABLE_EXPERIMENTAL_CODE 0
/* Set to 1 if you have alsa */
/* #undef HAVE_ALSA */
/* Define to 1 if you have the <alsa/asoundlib.h> header file. */
/* #undef HAVE_ALSA_ASOUNDLIB_H */
@ -31,7 +37,7 @@
/* Define to 1 if you have the `ceil' function. */
#define HAVE_CEIL 1
/* Set to 1 if S_IRGRP is defined. */
/* Set to 0 if S_IRGRP is not defined. */
#define HAVE_DECL_S_IRGRP 1
/* Define to 1 if you have the <dlfcn.h> header file. */
@ -40,11 +46,8 @@
/* Define to 1 if you have the <endian.h> header file. */
/* #undef HAVE_ENDIAN_H */
/* Will be set to 1 if flac, ogg and vorbis are available. */
#define HAVE_EXTERNAL_LIBS 0
/* Set to 1 if the compile supports the struct hack. */
#define HAVE_FLEXIBLE_ARRAY 1
/* Will be set to 1 if flac, ogg, vorbis, and opus are available. */
#define HAVE_EXTERNAL_XIPH_LIBS 0
/* Define to 1 if you have the `floor' function. */
#define HAVE_FLOOR 1
@ -58,6 +61,9 @@
/* Define to 1 if you have the `fstat' function. */
#define HAVE_FSTAT 1
/* Define to 1 if you have the `fstat64' function. */
#define HAVE_FSTAT64 1
/* Define to 1 if you have the `fsync' function. */
#define HAVE_FSYNC 1
@ -79,9 +85,6 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the `m' library (-lm). */
#define HAVE_LIBM 1
/* Define to 1 if you have the <locale.h> header file. */
#define HAVE_LOCALE_H 1
@ -91,15 +94,18 @@
/* Define to 1 if you have the `localtime_r' function. */
#define HAVE_LOCALTIME_R 1
/* Define if you have C99's lrint function. */
/* Define to 1 if you have the `lrint' function. */
#define HAVE_LRINT 1
/* Define if you have C99's lrintf function. */
/* Define to 1 if you have the `lrintf' function. */
#define HAVE_LRINTF 1
/* Define to 1 if you have the `lseek' function. */
#define HAVE_LSEEK 1
/* Define to 1 if you have the `lseek64' function. */
/* #undef HAVE_LSEEK64 */
/* Define to 1 if you have the `malloc' function. */
#define HAVE_MALLOC 1
@ -115,12 +121,6 @@
/* Define to 1 if you have the `pipe' function. */
#define HAVE_PIPE 1
/* Define to 1 if you have the `pread' function. */
#define HAVE_PREAD 1
/* Define to 1 if you have the `pwrite' function. */
#define HAVE_PWRITE 1
/* Define to 1 if you have the `read' function. */
#define HAVE_READ 1
@ -130,8 +130,8 @@
/* Define to 1 if you have the `setlocale' function. */
#define HAVE_SETLOCALE 1
/* Define to 1 if you have the <sndio.h> header file. */
/* #undef HAVE_SNDIO_H */
/* Set to 1 if <sndio.h> is available. */
#define HAVE_SNDIO_H 0
/* Define to 1 if you have the `snprintf' function. */
#define HAVE_SNPRINTF 1
@ -139,9 +139,6 @@
/* Set to 1 if you have libsqlite3. */
#define HAVE_SQLITE3 0
/* Define to 1 if the system has the type `ssize_t'. */
#define HAVE_SSIZE_T 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
@ -178,15 +175,14 @@
/* Define to 1 if you have the `write' function. */
#define HAVE_WRITE 1
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
/* The host triplet of the compiled binary. */
#define HOST_TRIPLET x86_64-apple-darwin16.7.0
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
/* #undef NO_MINUS_C_MINUS_O */
/* Set to 1 if compiling for MacOSX */
#define OS_IS_MACOSX 1
/* Set to 1 if compiling for OpenBSD */
#define OS_IS_OPENBSD 0
/* Set to 1 if compiling for Win32 */
#define OS_IS_WIN32 0
@ -201,7 +197,7 @@
#define PACKAGE_NAME "libsndfile"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "libsndfile 1.0.24"
#define PACKAGE_STRING "libsndfile 1.0.29pre2"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libsndfile"
@ -210,7 +206,7 @@
#define PACKAGE_URL "http://www.mega-nerd.com/libsndfile/"
/* Define to the version of this package. */
#define PACKAGE_VERSION "1.0.24"
#define PACKAGE_VERSION "1.0.29pre2"
/* Set to maximum allowed value of sf_count_t type. */
#define SF_COUNT_MAX 0x7FFFFFFFFFFFFFFFLL
@ -227,18 +223,12 @@
/* The size of `int64_t', as computed by sizeof. */
#define SIZEOF_INT64_T 8
/* The size of `loff_t', as computed by sizeof. */
/* #undef SIZEOF_LOFF_T */
/* The size of `long', as computed by sizeof. */
#define SIZEOF_LONG 8
#define SIZEOF_LONG 4
/* The size of `long long', as computed by sizeof. */
#define SIZEOF_LONG_LONG 8
/* The size of `off64_t', as computed by sizeof. */
/* #undef SIZEOF_OFF64_T */
/* The size of `off_t', as computed by sizeof. */
#define SIZEOF_OFF_T 8
@ -249,13 +239,10 @@
#define SIZEOF_SHORT 2
/* The size of `size_t', as computed by sizeof. */
#define SIZEOF_SIZE_T 8
/* The size of `ssize_t', as computed by sizeof. */
#define SIZEOF_SSIZE_T 8
#define SIZEOF_SIZE_T 4
/* The size of `void*', as computed by sizeof. */
#define SIZEOF_VOIDP 8
#define SIZEOF_VOIDP 4
/* The size of `wchar_t', as computed by sizeof. */
#define SIZEOF_WCHAR_T 4
@ -266,35 +253,72 @@
/* Set to long if unknown. */
#define TYPEOF_SF_COUNT_T int64_t
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# define _ALL_SOURCE 1
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# define _POSIX_PTHREAD_SEMANTICS 1
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# define _TANDEM_SOURCE 1
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
# define __EXTENSIONS__ 1
#endif
/* Set to 1 to use the native windows API */
#define USE_WINDOWS_API 0
/* Version number of package */
#define VERSION "1.0.24"
#define VERSION "1.0.29pre2"
/* Set to 1 if windows DLL is being built. */
#define WIN32_TARGET_DLL 0
/* Target processor is big endian. */
#define WORDS_BIGENDIAN 0
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
/* # undef WORDS_BIGENDIAN */
# endif
#endif
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */
/* Define to make fseeko etc. visible, on some hosts. */
/* #undef _LARGEFILE_SOURCE */
/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */
/* Define to 1 if on MINIX. */
/* #undef _MINIX */
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
/* #undef _POSIX_1_SOURCE */
/* Define to 1 if you need to in order for `stat' and other things to work. */
/* #undef _POSIX_SOURCE */
/* Set to 1 to use C99 printf/snprintf in MinGW. */
/* #undef __USE_MINGW_ANSI_STDIO */
#undef CPU_IS_BIG_ENDIAN
#undef CPU_IS_LITTLE_ENDIAN
#if defined(__BIG_ENDIAN__)
#define CPU_IS_BIG_ENDIAN 1
#define CPU_IS_LITTLE_ENDIAN 0
#else
#define CPU_IS_BIG_ENDIAN 0
#define CPU_IS_LITTLE_ENDIAN 1
#endif
/* Define to `int' if <sys/types.h> does not define. */
/* #undef ssize_t */

View File

@ -1,5 +1,5 @@
/*
** Copyright (C) 1999-2011Erik de Castro Lopo <erikd@mega-nerd.com>
** Copyright (C) 1999-2016 Erik de Castro Lopo <erikd@mega-nerd.com>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU Lesser General Public License as published by
@ -30,6 +30,7 @@
#define SNDFILE_1
#include <stdio.h>
#include <stdint.h>
#include <sys/types.h>
#ifdef __cplusplus
@ -91,6 +92,10 @@ enum
SF_FORMAT_GSM610 = 0x0020, /* GSM 6.10 encoding. */
SF_FORMAT_VOX_ADPCM = 0x0021, /* OKI / Dialogix ADPCM */
SF_FORMAT_NMS_ADPCM_16 = 0x0022, /* 16kbs NMS G721-variant encoding. */
SF_FORMAT_NMS_ADPCM_24 = 0x0023, /* 24kbs NMS G721-variant encoding. */
SF_FORMAT_NMS_ADPCM_32 = 0x0024, /* 32kbs NMS G721-variant encoding. */
SF_FORMAT_G721_32 = 0x0030, /* 32kbs G721 ADPCM encoding. */
SF_FORMAT_G723_24 = 0x0031, /* 24kbs G723 ADPCM encoding. */
SF_FORMAT_G723_40 = 0x0032, /* 40kbs G723 ADPCM encoding. */
@ -104,6 +109,12 @@ enum
SF_FORMAT_DPCM_16 = 0x0051, /* 16 bit differential PCM (XI only) */
SF_FORMAT_VORBIS = 0x0060, /* Xiph Vorbis encoding. */
SF_FORMAT_OPUS = 0x0064, /* Xiph/Skype Opus encoding. */
SF_FORMAT_ALAC_16 = 0x0070, /* Apple Lossless Audio Codec (16 bit). */
SF_FORMAT_ALAC_20 = 0x0071, /* Apple Lossless Audio Codec (20 bit). */
SF_FORMAT_ALAC_24 = 0x0072, /* Apple Lossless Audio Codec (24 bit). */
SF_FORMAT_ALAC_32 = 0x0073, /* Apple Lossless Audio Codec (32 bit). */
/* Endian-ness options. */
@ -154,7 +165,6 @@ enum
SFC_GET_MAX_ALL_CHANNELS = 0x1045,
SFC_SET_ADD_PEAK_CHUNK = 0x1050,
SFC_SET_ADD_HEADER_PAD_CHUNK = 0x1051,
SFC_UPDATE_HEADER_NOW = 0x1060,
SFC_SET_UPDATE_HEADER_AUTO = 0x1061,
@ -174,6 +184,10 @@ enum
SFC_SET_CLIPPING = 0x10C0,
SFC_GET_CLIPPING = 0x10C1,
SFC_GET_CUE_COUNT = 0x10CD,
SFC_GET_CUE = 0x10CE,
SFC_SET_CUE = 0x10CF,
SFC_GET_INSTRUMENT = 0x10D0,
SFC_SET_INSTRUMENT = 0x10D1,
@ -191,17 +205,35 @@ enum
SFC_WAVEX_SET_AMBISONIC = 0x1200,
SFC_WAVEX_GET_AMBISONIC = 0x1201,
/*
** RF64 files can be set so that on-close, writable files that have less
** than 4GB of data in them are converted to RIFF/WAV, as per EBU
** recommendations.
*/
SFC_RF64_AUTO_DOWNGRADE = 0x1210,
SFC_SET_VBR_ENCODING_QUALITY = 0x1300,
SFC_SET_COMPRESSION_LEVEL = 0x1301,
/* Cart Chunk support */
SFC_SET_CART_INFO = 0x1400,
SFC_GET_CART_INFO = 0x1401,
/* Opus files original samplerate metadata */
SFC_SET_ORIGINAL_SAMPLERATE = 0x1500,
SFC_GET_ORIGINAL_SAMPLERATE = 0x1501,
/* Following commands for testing only. */
SFC_TEST_IEEE_FLOAT_REPLACE = 0x6001,
/*
** SFC_SET_ADD_* values are deprecated and will disappear at some
** These SFC_SET_ADD_* values are deprecated and will disappear at some
** time in the future. They are guaranteed to be here up to and
** including version 1.0.8 to avoid breakage of existng software.
** including version 1.0.8 to avoid breakage of existing software.
** They currently do nothing and will continue to do nothing.
*/
SFC_SET_ADD_HEADER_PAD_CHUNK = 0x1051,
SFC_SET_ADD_DITHER_ON_WRITE = 0x1070,
SFC_SET_ADD_DITHER_ON_READ = 0x1071
} ;
@ -232,7 +264,7 @@ enum
*/
#define SF_STR_FIRST SF_STR_TITLE
#define SF_STR_LAST SF_STR_LICENSE
#define SF_STR_LAST SF_STR_GENRE
enum
{ /* True and false */
@ -311,7 +343,7 @@ typedef struct SNDFILE_tag SNDFILE ;
** and the Microsoft compiler.
*/
#if (defined (_MSCVER) || defined (_MSC_VER))
#if (defined (_MSCVER) || defined (_MSC_VER) && (_MSC_VER < 1310))
typedef __int64 sf_count_t ;
#define SF_COUNT_MAX 0x7fffffffffffffffi64
#else
@ -383,6 +415,28 @@ typedef struct
sf_count_t length ;
} SF_EMBED_FILE_INFO ;
/*
** Struct used to retrieve cue marker information from a file
*/
typedef struct
{ int32_t indx ;
uint32_t position ;
int32_t fcc_chunk ;
int32_t chunk_start ;
int32_t block_start ;
uint32_t sample_offset ;
char name [256] ;
} SF_CUE_POINT ;
#define SF_CUES_VAR(count) \
struct \
{ uint32_t cue_count ; \
SF_CUE_POINT cue_points [count] ; \
}
typedef SF_CUES_VAR (100) SF_CUES ;
/*
** Structs used to retrieve music sample information from a file.
*/
@ -406,9 +460,9 @@ typedef struct
struct
{ int mode ;
unsigned int start ;
unsigned int end ;
unsigned int count ;
uint32_t start ;
uint32_t end ;
uint32_t count ;
} loops [16] ; /* make variable in a sensible way */
} SF_INSTRUMENT ;
@ -426,7 +480,7 @@ typedef struct
/* a full bar of 7/8 is 7 beats */
float bpm ; /* suggestion, as it can be calculated using other fields:*/
/* file's lenght, file's sampleRate and our time_sig_den*/
/* file's length, file's sampleRate and our time_sig_den*/
/* -> bpms are always the amount of _quarter notes_ per minute */
int root_key ; /* MIDI note, or -1 for None */
@ -439,23 +493,61 @@ typedef struct
*/
#define SF_BROADCAST_INFO_VAR(coding_hist_size) \
struct \
{ char description [256] ; \
char originator [32] ; \
char originator_reference [32] ; \
char origination_date [10] ; \
char origination_time [8] ; \
unsigned int time_reference_low ; \
unsigned int time_reference_high ; \
short version ; \
char umid [64] ; \
char reserved [190] ; \
unsigned int coding_history_size ; \
char coding_history [coding_hist_size] ; \
{ char description [256] ; \
char originator [32] ; \
char originator_reference [32] ; \
char origination_date [10] ; \
char origination_time [8] ; \
uint32_t time_reference_low ; \
uint32_t time_reference_high ; \
short version ; \
char umid [64] ; \
int16_t loudness_value ; \
int16_t loudness_range ; \
int16_t max_true_peak_level ; \
int16_t max_momentary_loudness ; \
int16_t max_shortterm_loudness ; \
char reserved [180] ; \
uint32_t coding_history_size ; \
char coding_history [coding_hist_size] ; \
}
/* SF_BROADCAST_INFO is the above struct with coding_history field of 256 bytes. */
typedef SF_BROADCAST_INFO_VAR (256) SF_BROADCAST_INFO ;
struct SF_CART_TIMER
{ char usage [4] ;
int32_t value ;
} ;
typedef struct SF_CART_TIMER SF_CART_TIMER ;
#define SF_CART_INFO_VAR(p_tag_text_size) \
struct \
{ char version [4] ; \
char title [64] ; \
char artist [64] ; \
char cut_id [64] ; \
char client_id [64] ; \
char category [64] ; \
char classification [64] ; \
char out_cue [64] ; \
char start_date [10] ; \
char start_time [8] ; \
char end_date [10] ; \
char end_time [8] ; \
char producer_app_id [64] ; \
char producer_app_version [64] ; \
char user_def [64] ; \
int32_t level_reference ; \
SF_CART_TIMER post_timers [8] ; \
char reserved [276] ; \
char url [1024] ; \
uint32_t tag_text_size ; \
char tag_text [p_tag_text_size] ; \
}
typedef SF_CART_INFO_VAR (256) SF_CART_INFO ;
/* Virtual I/O functionality. */
@ -487,7 +579,7 @@ SNDFILE* sf_open (const char *path, int mode, SF_INFO *sfinfo) ;
/* Use the existing file descriptor to create a SNDFILE object. If close_desc
** is TRUE, the file descriptor will be closed when sf_close() is called. If
** it is FALSE, the descritor will not be closed.
** it is FALSE, the descriptor will not be closed.
** When passed a descriptor like this, the library will assume that the start
** of file header is at the current file offset. This allows sound files within
** larger container files to be read and/or written.
@ -525,7 +617,7 @@ const char* sf_error_number (int errnum) ;
/* The following two error functions are deprecated but they will remain in the
** library for the forseeable future. The function sf_strerror() should be used
** library for the foreseeable future. The function sf_strerror() should be used
** in their place.
*/
@ -555,6 +647,12 @@ int sf_format_check (const SF_INFO *info) ;
** On error all of these functions return -1.
*/
enum
{ SF_SEEK_SET = SEEK_SET,
SF_SEEK_CUR = SEEK_CUR,
SF_SEEK_END = SEEK_END
} ;
sf_count_t sf_seek (SNDFILE *sndfile, sf_count_t frames, int whence) ;
@ -575,6 +673,18 @@ const char* sf_get_string (SNDFILE *sndfile, int str_type) ;
const char * sf_version_string (void) ;
/* Return the current byterate at this point in the file. The byte rate in this
** case is the number of bytes per second of audio data. For instance, for a
** stereo, 18 bit PCM encoded file with an 16kHz sample rate, the byte rate
** would be 2 (stereo) * 2 (two bytes per sample) * 16000 => 64000 bytes/sec.
** For some file formats the returned value will be accurate and exact, for some
** it will be a close approximation, for some it will be the average bitrate for
** the whole file and for some it will be a time varying value that was accurate
** when the file was most recently read or written.
** To get the bitrate, multiple this value by 8.
** Returns -1 for unknown.
*/
int sf_current_byterate (SNDFILE *sndfile) ;
/* Functions for reading/writing the waveform data of a sound file.
*/
@ -652,15 +762,110 @@ void sf_write_sync (SNDFILE *sndfile) ;
** #including <sndfile.h>
*/
#if ENABLE_SNDFILE_WINDOWS_PROTOTYPES
#if (defined (ENABLE_SNDFILE_WINDOWS_PROTOTYPES) && ENABLE_SNDFILE_WINDOWS_PROTOTYPES)
SNDFILE* sf_wchar_open (LPCWSTR wpath, int mode, SF_INFO *sfinfo) ;
#endif
/* Getting and setting of chunks from within a sound file.
**
** These functions allow the getting and setting of chunks within a sound file
** (for those formats which allow it).
**
** These functions fail safely. Specifically, they will not allow you to overwrite
** existing chunks or add extra versions of format specific reserved chunks but
** should allow you to retrieve any and all chunks (may not be implemented for
** all chunks or all file formats).
*/
struct SF_CHUNK_INFO
{ char id [64] ; /* The chunk identifier. */
unsigned id_size ; /* The size of the chunk identifier. */
unsigned datalen ; /* The size of that data. */
void *data ; /* Pointer to the data. */
} ;
typedef struct SF_CHUNK_INFO SF_CHUNK_INFO ;
/* Set the specified chunk info (must be done before any audio data is written
** to the file). This will fail for format specific reserved chunks.
** The chunk_info->data pointer must be valid until the file is closed.
** Returns SF_ERR_NO_ERROR on success or non-zero on failure.
*/
int sf_set_chunk (SNDFILE * sndfile, const SF_CHUNK_INFO * chunk_info) ;
/*
** An opaque structure to an iterator over the all chunks of a given id
*/
typedef struct SF_CHUNK_ITERATOR SF_CHUNK_ITERATOR ;
/* Get an iterator for all chunks matching chunk_info.
** The iterator will point to the first chunk matching chunk_info.
** Chunks are matching, if (chunk_info->id) matches the first
** (chunk_info->id_size) bytes of a chunk found in the SNDFILE* handle.
** If chunk_info is NULL, an iterator to all chunks in the SNDFILE* handle
** is returned.
** The values of chunk_info->datalen and chunk_info->data are ignored.
** If no matching chunks are found in the sndfile, NULL is returned.
** The returned iterator will stay valid until one of the following occurs:
** a) The sndfile is closed.
** b) A new chunk is added using sf_set_chunk().
** c) Another chunk iterator function is called on the same SNDFILE* handle
** that causes the iterator to be modified.
** The memory for the iterator belongs to the SNDFILE* handle and is freed when
** sf_close() is called.
*/
SF_CHUNK_ITERATOR *
sf_get_chunk_iterator (SNDFILE * sndfile, const SF_CHUNK_INFO * chunk_info) ;
/* Iterate through chunks by incrementing the iterator.
** Increments the iterator and returns a handle to the new one.
** After this call, iterator will no longer be valid, and you must use the
** newly returned handle from now on.
** The returned handle can be used to access the next chunk matching
** the criteria as defined in sf_get_chunk_iterator().
** If iterator points to the last chunk, this will free all resources
** associated with iterator and return NULL.
** The returned iterator will stay valid until sf_get_chunk_iterator_next
** is called again, the sndfile is closed or a new chunk us added.
*/
SF_CHUNK_ITERATOR *
sf_next_chunk_iterator (SF_CHUNK_ITERATOR * iterator) ;
/* Get the size of the specified chunk.
** If the specified chunk exists, the size will be returned in the
** datalen field of the SF_CHUNK_INFO struct.
** Additionally, the id of the chunk will be copied to the id
** field of the SF_CHUNK_INFO struct and it's id_size field will
** be updated accordingly.
** If the chunk doesn't exist chunk_info->datalen will be zero, and the
** id and id_size fields will be undefined.
** The function will return SF_ERR_NO_ERROR on success or non-zero on
** failure.
*/
int
sf_get_chunk_size (const SF_CHUNK_ITERATOR * it, SF_CHUNK_INFO * chunk_info) ;
/* Get the specified chunk data.
** If the specified chunk exists, up to chunk_info->datalen bytes of
** the chunk data will be copied into the chunk_info->data buffer
** (allocated by the caller) and the chunk_info->datalen field
** updated to reflect the size of the data. The id and id_size
** field will be updated according to the retrieved chunk
** If the chunk doesn't exist chunk_info->datalen will be zero, and the
** id and id_size fields will be undefined.
** The function will return SF_ERR_NO_ERROR on success or non-zero on
** failure.
*/
int
sf_get_chunk_data (const SF_CHUNK_ITERATOR * it, SF_CHUNK_INFO * chunk_info) ;
#ifdef __cplusplus
} /* extern "C" */
#endif /* __cplusplus */
#endif /* SNDFILE_H */

View File

@ -1,24 +1,30 @@
/* src/config.h. Generated from config.h.in by configure. */
/* src/config.h.in. Generated from configure.ac by autoheader. */
/* Set to 1 if the compile is GNU GCC. */
#define COMPILER_IS_GCC 1
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
/* Target processor clips on negative float to int conversion. */
/* Set to 1 if the compile is GNU GCC. */
#define COMPILER_IS_GCC 0
/* Host processor clips on negative float to int conversion. */
#define CPU_CLIPS_NEGATIVE 0
/* Target processor clips on positive float to int conversion. */
/* Host processor clips on positive float to int conversion. */
#define CPU_CLIPS_POSITIVE 0
/* Target processor is big endian. */
/* Host processor is big endian. */
#define CPU_IS_BIG_ENDIAN 0
/* Target processor is little endian. */
/* Host processor is little endian. */
#define CPU_IS_LITTLE_ENDIAN 1
/* Set to 1 to enable experimental code. */
#define ENABLE_EXPERIMENTAL_CODE 0
/* Set to 1 if you have alsa */
/* #undef HAVE_ALSA */
/* Define to 1 if you have the <alsa/asoundlib.h> header file. */
/* #undef HAVE_ALSA_ASOUNDLIB_H */
@ -31,7 +37,7 @@
/* Define to 1 if you have the `ceil' function. */
#define HAVE_CEIL 1
/* Set to 1 if S_IRGRP is defined. */
/* Set to 0 if S_IRGRP is not defined. */
#define HAVE_DECL_S_IRGRP 1
/* Define to 1 if you have the <dlfcn.h> header file. */
@ -40,11 +46,8 @@
/* Define to 1 if you have the <endian.h> header file. */
/* #undef HAVE_ENDIAN_H */
/* Will be set to 1 if flac, ogg and vorbis are available. */
#define HAVE_EXTERNAL_LIBS 0
/* Set to 1 if the compile supports the struct hack. */
#define HAVE_FLEXIBLE_ARRAY 1
/* Will be set to 1 if flac, ogg, vorbis, and opus are available. */
#define HAVE_EXTERNAL_XIPH_LIBS 0
/* Define to 1 if you have the `floor' function. */
#define HAVE_FLOOR 1
@ -58,6 +61,9 @@
/* Define to 1 if you have the `fstat' function. */
#define HAVE_FSTAT 1
/* Define to 1 if you have the `fstat64' function. */
#define HAVE_FSTAT64 1
/* Define to 1 if you have the `fsync' function. */
#define HAVE_FSYNC 1
@ -79,9 +85,6 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the `m' library (-lm). */
#define HAVE_LIBM 1
/* Define to 1 if you have the <locale.h> header file. */
#define HAVE_LOCALE_H 1
@ -91,15 +94,18 @@
/* Define to 1 if you have the `localtime_r' function. */
#define HAVE_LOCALTIME_R 1
/* Define if you have C99's lrint function. */
/* Define to 1 if you have the `lrint' function. */
#define HAVE_LRINT 1
/* Define if you have C99's lrintf function. */
/* Define to 1 if you have the `lrintf' function. */
#define HAVE_LRINTF 1
/* Define to 1 if you have the `lseek' function. */
#define HAVE_LSEEK 1
/* Define to 1 if you have the `lseek64' function. */
/* #undef HAVE_LSEEK64 */
/* Define to 1 if you have the `malloc' function. */
#define HAVE_MALLOC 1
@ -115,12 +121,6 @@
/* Define to 1 if you have the `pipe' function. */
#define HAVE_PIPE 1
/* Define to 1 if you have the `pread' function. */
#define HAVE_PREAD 1
/* Define to 1 if you have the `pwrite' function. */
#define HAVE_PWRITE 1
/* Define to 1 if you have the `read' function. */
#define HAVE_READ 1
@ -130,8 +130,8 @@
/* Define to 1 if you have the `setlocale' function. */
#define HAVE_SETLOCALE 1
/* Define to 1 if you have the <sndio.h> header file. */
/* #undef HAVE_SNDIO_H */
/* Set to 1 if <sndio.h> is available. */
#define HAVE_SNDIO_H 0
/* Define to 1 if you have the `snprintf' function. */
#define HAVE_SNPRINTF 1
@ -139,9 +139,6 @@
/* Set to 1 if you have libsqlite3. */
#define HAVE_SQLITE3 0
/* Define to 1 if the system has the type `ssize_t'. */
#define HAVE_SSIZE_T 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
@ -178,12 +175,14 @@
/* Define to 1 if you have the `write' function. */
#define HAVE_WRITE 1
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
/* The host triplet of the compiled binary. */
#define HOST_TRIPLET x86_64-apple-darwin19.3.0
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
/* Set to 1 if compiling for MacOSX */
#define OS_IS_MACOSX 1
/* Set to 1 if compiling for OpenBSD */
#define OS_IS_OPENBSD 0
/* Set to 1 if compiling for Win32 */
#define OS_IS_WIN32 0
@ -198,7 +197,7 @@
#define PACKAGE_NAME "libsndfile"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "libsndfile 1.0.24"
#define PACKAGE_STRING "libsndfile 1.0.29pre2"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libsndfile"
@ -207,7 +206,7 @@
#define PACKAGE_URL "http://www.mega-nerd.com/libsndfile/"
/* Define to the version of this package. */
#define PACKAGE_VERSION "1.0.24"
#define PACKAGE_VERSION "1.0.29pre2"
/* Set to maximum allowed value of sf_count_t type. */
#define SF_COUNT_MAX 0x7FFFFFFFFFFFFFFFLL
@ -224,18 +223,12 @@
/* The size of `int64_t', as computed by sizeof. */
#define SIZEOF_INT64_T 8
/* The size of `loff_t', as computed by sizeof. */
/* #undef SIZEOF_LOFF_T */
/* The size of `long', as computed by sizeof. */
#define SIZEOF_LONG 8
/* The size of `long long', as computed by sizeof. */
#define SIZEOF_LONG_LONG 8
/* The size of `off64_t', as computed by sizeof. */
/* #undef SIZEOF_OFF64_T */
/* The size of `off_t', as computed by sizeof. */
#define SIZEOF_OFF_T 8
@ -248,9 +241,6 @@
/* The size of `size_t', as computed by sizeof. */
#define SIZEOF_SIZE_T 8
/* The size of `ssize_t', as computed by sizeof. */
#define SIZEOF_SSIZE_T 8
/* The size of `void*', as computed by sizeof. */
#define SIZEOF_VOIDP 8
@ -263,26 +253,72 @@
/* Set to long if unknown. */
#define TYPEOF_SF_COUNT_T int64_t
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# define _ALL_SOURCE 1
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# define _POSIX_PTHREAD_SEMANTICS 1
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# define _TANDEM_SOURCE 1
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
# define __EXTENSIONS__ 1
#endif
/* Set to 1 to use the native windows API */
#define USE_WINDOWS_API 0
/* Version number of package */
#define VERSION "1.0.24"
#define VERSION "1.0.29pre2"
/* Set to 1 if windows DLL is being built. */
#define WIN32_TARGET_DLL 0
/* Target processor is big endian. */
#define WORDS_BIGENDIAN 0
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
/* # undef WORDS_BIGENDIAN */
# endif
#endif
/* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */
/* Define to make fseeko etc. visible, on some hosts. */
/* #undef _LARGEFILE_SOURCE */
/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */
/* Define to 1 if on MINIX. */
/* #undef _MINIX */
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
/* #undef _POSIX_1_SOURCE */
/* Define to 1 if you need to in order for `stat' and other things to work. */
/* #undef _POSIX_SOURCE */
/* Set to 1 to use C99 printf/snprintf in MinGW. */
/* #undef __USE_MINGW_ANSI_STDIO */
/* Define to `int' if <sys/types.h> does not define. */
/* #undef ssize_t */

View File

@ -1,5 +1,5 @@
/*
** Copyright (C) 1999-2011Erik de Castro Lopo <erikd@mega-nerd.com>
** Copyright (C) 1999-2016 Erik de Castro Lopo <erikd@mega-nerd.com>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU Lesser General Public License as published by
@ -30,6 +30,7 @@
#define SNDFILE_1
#include <stdio.h>
#include <stdint.h>
#include <sys/types.h>
#ifdef __cplusplus
@ -91,6 +92,10 @@ enum
SF_FORMAT_GSM610 = 0x0020, /* GSM 6.10 encoding. */
SF_FORMAT_VOX_ADPCM = 0x0021, /* OKI / Dialogix ADPCM */
SF_FORMAT_NMS_ADPCM_16 = 0x0022, /* 16kbs NMS G721-variant encoding. */
SF_FORMAT_NMS_ADPCM_24 = 0x0023, /* 24kbs NMS G721-variant encoding. */
SF_FORMAT_NMS_ADPCM_32 = 0x0024, /* 32kbs NMS G721-variant encoding. */
SF_FORMAT_G721_32 = 0x0030, /* 32kbs G721 ADPCM encoding. */
SF_FORMAT_G723_24 = 0x0031, /* 24kbs G723 ADPCM encoding. */
SF_FORMAT_G723_40 = 0x0032, /* 40kbs G723 ADPCM encoding. */
@ -104,6 +109,12 @@ enum
SF_FORMAT_DPCM_16 = 0x0051, /* 16 bit differential PCM (XI only) */
SF_FORMAT_VORBIS = 0x0060, /* Xiph Vorbis encoding. */
SF_FORMAT_OPUS = 0x0064, /* Xiph/Skype Opus encoding. */
SF_FORMAT_ALAC_16 = 0x0070, /* Apple Lossless Audio Codec (16 bit). */
SF_FORMAT_ALAC_20 = 0x0071, /* Apple Lossless Audio Codec (20 bit). */
SF_FORMAT_ALAC_24 = 0x0072, /* Apple Lossless Audio Codec (24 bit). */
SF_FORMAT_ALAC_32 = 0x0073, /* Apple Lossless Audio Codec (32 bit). */
/* Endian-ness options. */
@ -154,7 +165,6 @@ enum
SFC_GET_MAX_ALL_CHANNELS = 0x1045,
SFC_SET_ADD_PEAK_CHUNK = 0x1050,
SFC_SET_ADD_HEADER_PAD_CHUNK = 0x1051,
SFC_UPDATE_HEADER_NOW = 0x1060,
SFC_SET_UPDATE_HEADER_AUTO = 0x1061,
@ -174,6 +184,10 @@ enum
SFC_SET_CLIPPING = 0x10C0,
SFC_GET_CLIPPING = 0x10C1,
SFC_GET_CUE_COUNT = 0x10CD,
SFC_GET_CUE = 0x10CE,
SFC_SET_CUE = 0x10CF,
SFC_GET_INSTRUMENT = 0x10D0,
SFC_SET_INSTRUMENT = 0x10D1,
@ -191,17 +205,35 @@ enum
SFC_WAVEX_SET_AMBISONIC = 0x1200,
SFC_WAVEX_GET_AMBISONIC = 0x1201,
/*
** RF64 files can be set so that on-close, writable files that have less
** than 4GB of data in them are converted to RIFF/WAV, as per EBU
** recommendations.
*/
SFC_RF64_AUTO_DOWNGRADE = 0x1210,
SFC_SET_VBR_ENCODING_QUALITY = 0x1300,
SFC_SET_COMPRESSION_LEVEL = 0x1301,
/* Cart Chunk support */
SFC_SET_CART_INFO = 0x1400,
SFC_GET_CART_INFO = 0x1401,
/* Opus files original samplerate metadata */
SFC_SET_ORIGINAL_SAMPLERATE = 0x1500,
SFC_GET_ORIGINAL_SAMPLERATE = 0x1501,
/* Following commands for testing only. */
SFC_TEST_IEEE_FLOAT_REPLACE = 0x6001,
/*
** SFC_SET_ADD_* values are deprecated and will disappear at some
** These SFC_SET_ADD_* values are deprecated and will disappear at some
** time in the future. They are guaranteed to be here up to and
** including version 1.0.8 to avoid breakage of existng software.
** including version 1.0.8 to avoid breakage of existing software.
** They currently do nothing and will continue to do nothing.
*/
SFC_SET_ADD_HEADER_PAD_CHUNK = 0x1051,
SFC_SET_ADD_DITHER_ON_WRITE = 0x1070,
SFC_SET_ADD_DITHER_ON_READ = 0x1071
} ;
@ -232,7 +264,7 @@ enum
*/
#define SF_STR_FIRST SF_STR_TITLE
#define SF_STR_LAST SF_STR_LICENSE
#define SF_STR_LAST SF_STR_GENRE
enum
{ /* True and false */
@ -311,7 +343,7 @@ typedef struct SNDFILE_tag SNDFILE ;
** and the Microsoft compiler.
*/
#if (defined (_MSCVER) || defined (_MSC_VER))
#if (defined (_MSCVER) || defined (_MSC_VER) && (_MSC_VER < 1310))
typedef __int64 sf_count_t ;
#define SF_COUNT_MAX 0x7fffffffffffffffi64
#else
@ -383,6 +415,28 @@ typedef struct
sf_count_t length ;
} SF_EMBED_FILE_INFO ;
/*
** Struct used to retrieve cue marker information from a file
*/
typedef struct
{ int32_t indx ;
uint32_t position ;
int32_t fcc_chunk ;
int32_t chunk_start ;
int32_t block_start ;
uint32_t sample_offset ;
char name [256] ;
} SF_CUE_POINT ;
#define SF_CUES_VAR(count) \
struct \
{ uint32_t cue_count ; \
SF_CUE_POINT cue_points [count] ; \
}
typedef SF_CUES_VAR (100) SF_CUES ;
/*
** Structs used to retrieve music sample information from a file.
*/
@ -406,9 +460,9 @@ typedef struct
struct
{ int mode ;
unsigned int start ;
unsigned int end ;
unsigned int count ;
uint32_t start ;
uint32_t end ;
uint32_t count ;
} loops [16] ; /* make variable in a sensible way */
} SF_INSTRUMENT ;
@ -426,7 +480,7 @@ typedef struct
/* a full bar of 7/8 is 7 beats */
float bpm ; /* suggestion, as it can be calculated using other fields:*/
/* file's lenght, file's sampleRate and our time_sig_den*/
/* file's length, file's sampleRate and our time_sig_den*/
/* -> bpms are always the amount of _quarter notes_ per minute */
int root_key ; /* MIDI note, or -1 for None */
@ -439,23 +493,61 @@ typedef struct
*/
#define SF_BROADCAST_INFO_VAR(coding_hist_size) \
struct \
{ char description [256] ; \
char originator [32] ; \
char originator_reference [32] ; \
char origination_date [10] ; \
char origination_time [8] ; \
unsigned int time_reference_low ; \
unsigned int time_reference_high ; \
short version ; \
char umid [64] ; \
char reserved [190] ; \
unsigned int coding_history_size ; \
char coding_history [coding_hist_size] ; \
{ char description [256] ; \
char originator [32] ; \
char originator_reference [32] ; \
char origination_date [10] ; \
char origination_time [8] ; \
uint32_t time_reference_low ; \
uint32_t time_reference_high ; \
short version ; \
char umid [64] ; \
int16_t loudness_value ; \
int16_t loudness_range ; \
int16_t max_true_peak_level ; \
int16_t max_momentary_loudness ; \
int16_t max_shortterm_loudness ; \
char reserved [180] ; \
uint32_t coding_history_size ; \
char coding_history [coding_hist_size] ; \
}
/* SF_BROADCAST_INFO is the above struct with coding_history field of 256 bytes. */
typedef SF_BROADCAST_INFO_VAR (256) SF_BROADCAST_INFO ;
struct SF_CART_TIMER
{ char usage [4] ;
int32_t value ;
} ;
typedef struct SF_CART_TIMER SF_CART_TIMER ;
#define SF_CART_INFO_VAR(p_tag_text_size) \
struct \
{ char version [4] ; \
char title [64] ; \
char artist [64] ; \
char cut_id [64] ; \
char client_id [64] ; \
char category [64] ; \
char classification [64] ; \
char out_cue [64] ; \
char start_date [10] ; \
char start_time [8] ; \
char end_date [10] ; \
char end_time [8] ; \
char producer_app_id [64] ; \
char producer_app_version [64] ; \
char user_def [64] ; \
int32_t level_reference ; \
SF_CART_TIMER post_timers [8] ; \
char reserved [276] ; \
char url [1024] ; \
uint32_t tag_text_size ; \
char tag_text [p_tag_text_size] ; \
}
typedef SF_CART_INFO_VAR (256) SF_CART_INFO ;
/* Virtual I/O functionality. */
@ -487,7 +579,7 @@ SNDFILE* sf_open (const char *path, int mode, SF_INFO *sfinfo) ;
/* Use the existing file descriptor to create a SNDFILE object. If close_desc
** is TRUE, the file descriptor will be closed when sf_close() is called. If
** it is FALSE, the descritor will not be closed.
** it is FALSE, the descriptor will not be closed.
** When passed a descriptor like this, the library will assume that the start
** of file header is at the current file offset. This allows sound files within
** larger container files to be read and/or written.
@ -525,7 +617,7 @@ const char* sf_error_number (int errnum) ;
/* The following two error functions are deprecated but they will remain in the
** library for the forseeable future. The function sf_strerror() should be used
** library for the foreseeable future. The function sf_strerror() should be used
** in their place.
*/
@ -555,6 +647,12 @@ int sf_format_check (const SF_INFO *info) ;
** On error all of these functions return -1.
*/
enum
{ SF_SEEK_SET = SEEK_SET,
SF_SEEK_CUR = SEEK_CUR,
SF_SEEK_END = SEEK_END
} ;
sf_count_t sf_seek (SNDFILE *sndfile, sf_count_t frames, int whence) ;
@ -575,6 +673,18 @@ const char* sf_get_string (SNDFILE *sndfile, int str_type) ;
const char * sf_version_string (void) ;
/* Return the current byterate at this point in the file. The byte rate in this
** case is the number of bytes per second of audio data. For instance, for a
** stereo, 18 bit PCM encoded file with an 16kHz sample rate, the byte rate
** would be 2 (stereo) * 2 (two bytes per sample) * 16000 => 64000 bytes/sec.
** For some file formats the returned value will be accurate and exact, for some
** it will be a close approximation, for some it will be the average bitrate for
** the whole file and for some it will be a time varying value that was accurate
** when the file was most recently read or written.
** To get the bitrate, multiple this value by 8.
** Returns -1 for unknown.
*/
int sf_current_byterate (SNDFILE *sndfile) ;
/* Functions for reading/writing the waveform data of a sound file.
*/
@ -652,15 +762,110 @@ void sf_write_sync (SNDFILE *sndfile) ;
** #including <sndfile.h>
*/
#if ENABLE_SNDFILE_WINDOWS_PROTOTYPES
#if (defined (ENABLE_SNDFILE_WINDOWS_PROTOTYPES) && ENABLE_SNDFILE_WINDOWS_PROTOTYPES)
SNDFILE* sf_wchar_open (LPCWSTR wpath, int mode, SF_INFO *sfinfo) ;
#endif
/* Getting and setting of chunks from within a sound file.
**
** These functions allow the getting and setting of chunks within a sound file
** (for those formats which allow it).
**
** These functions fail safely. Specifically, they will not allow you to overwrite
** existing chunks or add extra versions of format specific reserved chunks but
** should allow you to retrieve any and all chunks (may not be implemented for
** all chunks or all file formats).
*/
struct SF_CHUNK_INFO
{ char id [64] ; /* The chunk identifier. */
unsigned id_size ; /* The size of the chunk identifier. */
unsigned datalen ; /* The size of that data. */
void *data ; /* Pointer to the data. */
} ;
typedef struct SF_CHUNK_INFO SF_CHUNK_INFO ;
/* Set the specified chunk info (must be done before any audio data is written
** to the file). This will fail for format specific reserved chunks.
** The chunk_info->data pointer must be valid until the file is closed.
** Returns SF_ERR_NO_ERROR on success or non-zero on failure.
*/
int sf_set_chunk (SNDFILE * sndfile, const SF_CHUNK_INFO * chunk_info) ;
/*
** An opaque structure to an iterator over the all chunks of a given id
*/
typedef struct SF_CHUNK_ITERATOR SF_CHUNK_ITERATOR ;
/* Get an iterator for all chunks matching chunk_info.
** The iterator will point to the first chunk matching chunk_info.
** Chunks are matching, if (chunk_info->id) matches the first
** (chunk_info->id_size) bytes of a chunk found in the SNDFILE* handle.
** If chunk_info is NULL, an iterator to all chunks in the SNDFILE* handle
** is returned.
** The values of chunk_info->datalen and chunk_info->data are ignored.
** If no matching chunks are found in the sndfile, NULL is returned.
** The returned iterator will stay valid until one of the following occurs:
** a) The sndfile is closed.
** b) A new chunk is added using sf_set_chunk().
** c) Another chunk iterator function is called on the same SNDFILE* handle
** that causes the iterator to be modified.
** The memory for the iterator belongs to the SNDFILE* handle and is freed when
** sf_close() is called.
*/
SF_CHUNK_ITERATOR *
sf_get_chunk_iterator (SNDFILE * sndfile, const SF_CHUNK_INFO * chunk_info) ;
/* Iterate through chunks by incrementing the iterator.
** Increments the iterator and returns a handle to the new one.
** After this call, iterator will no longer be valid, and you must use the
** newly returned handle from now on.
** The returned handle can be used to access the next chunk matching
** the criteria as defined in sf_get_chunk_iterator().
** If iterator points to the last chunk, this will free all resources
** associated with iterator and return NULL.
** The returned iterator will stay valid until sf_get_chunk_iterator_next
** is called again, the sndfile is closed or a new chunk us added.
*/
SF_CHUNK_ITERATOR *
sf_next_chunk_iterator (SF_CHUNK_ITERATOR * iterator) ;
/* Get the size of the specified chunk.
** If the specified chunk exists, the size will be returned in the
** datalen field of the SF_CHUNK_INFO struct.
** Additionally, the id of the chunk will be copied to the id
** field of the SF_CHUNK_INFO struct and it's id_size field will
** be updated accordingly.
** If the chunk doesn't exist chunk_info->datalen will be zero, and the
** id and id_size fields will be undefined.
** The function will return SF_ERR_NO_ERROR on success or non-zero on
** failure.
*/
int
sf_get_chunk_size (const SF_CHUNK_ITERATOR * it, SF_CHUNK_INFO * chunk_info) ;
/* Get the specified chunk data.
** If the specified chunk exists, up to chunk_info->datalen bytes of
** the chunk data will be copied into the chunk_info->data buffer
** (allocated by the caller) and the chunk_info->datalen field
** updated to reflect the size of the data. The id and id_size
** field will be updated according to the retrieved chunk
** If the chunk doesn't exist chunk_info->datalen will be zero, and the
** id and id_size fields will be undefined.
** The function will return SF_ERR_NO_ERROR on success or non-zero on
** failure.
*/
int
sf_get_chunk_data (const SF_CHUNK_ITERATOR * it, SF_CHUNK_INFO * chunk_info) ;
#ifdef __cplusplus
} /* extern "C" */
#endif /* __cplusplus */
#endif /* SNDFILE_H */