OpenSDE Packages Database (without history before r20070)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

506 lines
20 KiB

  1. # --- SDE-COPYRIGHT-NOTE-BEGIN ---
  2. # This copyright note is auto-generated by ./scripts/Create-CopyPatch.
  3. #
  4. # Filename: package/.../libsndfile/flac.patch
  5. # Copyright (C) 2008 The OpenSDE Project
  6. #
  7. # More information can be found in the files COPYING and README.
  8. #
  9. # This patch file is dual-licensed. It is available under the license the
  10. # patched project is licensed under, as long as it is an OpenSource license
  11. # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
  12. # of the GNU General Public License as published by the Free Software
  13. # Foundation; either version 2 of the License, or (at your option) any later
  14. # version.
  15. # --- SDE-COPYRIGHT-NOTE-END ---
  16. diff -ru libsndfile-1.0.17/configure.ac libsndfile-1.0.17-b2/configure.ac
  17. --- libsndfile-1.0.17/configure.ac 2006-08-31 02:39:37.000000000 -0700
  18. +++ libsndfile-1.0.17-b2/configure.ac 2006-10-27 08:54:45.000000000 -0700
  19. @@ -339,7 +339,8 @@
  20. if test "x$HAVE_FLAC_1_1_1" = xyes ; then
  21. AC_DEFINE(HAVE_FLAC_1_1_1, [1], [Define to 1 if you have libflac 1.1.1])
  22. fi
  23. - FLAC_LIBS="-lFLAC"
  24. + # in FLAC 1.1.3 libOggFLAC was merged into libFLAC, hence we need -logg
  25. + FLAC_LIBS="-lFLAC -logg"
  26. fi
  27. fi
  28. diff -ru libsndfile-1.0.17/src/flac.c libsndfile-1.0.17-b2/src/flac.c
  29. --- libsndfile-1.0.17/src/flac.c 2006-08-31 02:22:19.000000000 -0700
  30. +++ libsndfile-1.0.17-b2/src/flac.c 2006-10-27 08:47:36.000000000 -0700
  31. @@ -46,6 +46,13 @@
  32. #include "sfendian.h"
  33. #include "float_cast.h"
  34. +/* FLAC 1.1.3 has FLAC_API_VERSION_CURRENT == 8 */
  35. +#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8
  36. +#define LEGACY_FLAC
  37. +#else
  38. +#undef LEGACY_FLAC
  39. +#endif
  40. +
  41. /*------------------------------------------------------------------------------
  42. ** Private static functions.
  43. */
  44. @@ -60,8 +67,14 @@
  45. } PFLAC_PCM ;
  46. typedef struct
  47. -{ FLAC__SeekableStreamDecoder *fsd ;
  48. +{
  49. +#ifdef LEGACY_FLAC
  50. + FLAC__SeekableStreamDecoder *fsd ;
  51. FLAC__SeekableStreamEncoder *fse ;
  52. +#else
  53. + FLAC__StreamDecoder *fsd ;
  54. + FLAC__StreamEncoder *fse ;
  55. +#endif
  56. PFLAC_PCM pcmtype ;
  57. void* ptr ;
  58. unsigned pos, len, remain ;
  59. @@ -108,6 +121,7 @@
  60. static int flac_command (SF_PRIVATE *psf, int command, void *data, int datasize) ;
  61. /* Decoder Callbacks */
  62. +#ifdef LEGACY_FLAC
  63. static FLAC__SeekableStreamDecoderReadStatus sf_flac_read_callback (const FLAC__SeekableStreamDecoder *decoder, FLAC__byte buffer [], unsigned *bytes, void *client_data) ;
  64. static FLAC__SeekableStreamDecoderSeekStatus sf_flac_seek_callback (const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) ;
  65. static FLAC__SeekableStreamDecoderTellStatus sf_flac_tell_callback (const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data) ;
  66. @@ -116,13 +130,29 @@
  67. static FLAC__StreamDecoderWriteStatus sf_flac_write_callback (const FLAC__SeekableStreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer [], void *client_data) ;
  68. static void sf_flac_meta_callback (const FLAC__SeekableStreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) ;
  69. static void sf_flac_error_callback (const FLAC__SeekableStreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data) ;
  70. +#else
  71. +static FLAC__StreamDecoderReadStatus sf_flac_read_callback (const FLAC__StreamDecoder *decoder, FLAC__byte buffer [], size_t *bytes, void *client_data) ;
  72. +static FLAC__StreamDecoderSeekStatus sf_flac_seek_callback (const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) ;
  73. +static FLAC__StreamDecoderTellStatus sf_flac_tell_callback (const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data) ;
  74. +static FLAC__StreamDecoderLengthStatus sf_flac_length_callback (const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data) ;
  75. +static FLAC__bool sf_flac_eof_callback (const FLAC__StreamDecoder *decoder, void *client_data) ;
  76. +static FLAC__StreamDecoderWriteStatus sf_flac_write_callback (const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer [], void *client_data) ;
  77. +static void sf_flac_meta_callback (const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) ;
  78. +static void sf_flac_error_callback (const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data) ;
  79. +#endif
  80. /* Encoder Callbacks */
  81. +#ifdef LEGACY_FLAC
  82. static FLAC__SeekableStreamEncoderSeekStatus sf_flac_enc_seek_callback (const FLAC__SeekableStreamEncoder *encoder, FLAC__uint64 absolute_byte_offset, void *client_data) ;
  83. #ifdef HAVE_FLAC_1_1_1
  84. static FLAC__SeekableStreamEncoderTellStatus sf_flac_enc_tell_callback (const FLAC__SeekableStreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data) ;
  85. #endif
  86. static FLAC__StreamEncoderWriteStatus sf_flac_enc_write_callback (const FLAC__SeekableStreamEncoder *encoder, const FLAC__byte buffer [], unsigned bytes, unsigned samples, unsigned current_frame, void *client_data) ;
  87. +#else
  88. +static FLAC__StreamEncoderSeekStatus sf_flac_enc_seek_callback (const FLAC__StreamEncoder *encoder, FLAC__uint64 absolute_byte_offset, void *client_data) ;
  89. +static FLAC__StreamEncoderTellStatus sf_flac_enc_tell_callback (const FLAC__StreamEncoder *encoder, FLAC__uint64 *absolute_byte_offset, void *client_data) ;
  90. +static FLAC__StreamEncoderWriteStatus sf_flac_enc_write_callback (const FLAC__StreamEncoder *encoder, const FLAC__byte buffer [], size_t bytes, unsigned samples, unsigned current_frame, void *client_data) ;
  91. +#endif
  92. static const int legal_sample_rates [] =
  93. { 8000, 16000, 22050, 24000, 32000, 44100, 48000, 96000
  94. @@ -283,51 +313,99 @@
  95. } /* flac_buffer_copy */
  96. +#ifdef LEGACY_FLAC
  97. static FLAC__SeekableStreamDecoderReadStatus
  98. sf_flac_read_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__byte buffer [], unsigned *bytes, void *client_data)
  99. +#else
  100. +static FLAC__StreamDecoderReadStatus
  101. +sf_flac_read_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__byte buffer [], size_t *bytes, void *client_data)
  102. +#endif
  103. { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
  104. *bytes = psf_fread (buffer, 1, *bytes, psf) ;
  105. if (*bytes > 0 && psf->error == 0)
  106. +#ifdef LEGACY_FLAC
  107. return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK ;
  108. return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR ;
  109. +#else
  110. + return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE ;
  111. +
  112. + return FLAC__STREAM_DECODER_READ_STATUS_ABORT ;
  113. +#endif
  114. } /* sf_flac_read_callback */
  115. +#ifdef LEGACY_FLAC
  116. static FLAC__SeekableStreamDecoderSeekStatus
  117. sf_flac_seek_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__uint64 absolute_byte_offset, void *client_data)
  118. +#else
  119. +static FLAC__StreamDecoderSeekStatus
  120. +sf_flac_seek_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__uint64 absolute_byte_offset, void *client_data)
  121. +#endif
  122. { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
  123. psf_fseek (psf, absolute_byte_offset, SEEK_SET) ;
  124. if (psf->error)
  125. +#ifdef LEGACY_FLAC
  126. return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR ;
  127. return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK ;
  128. +#else
  129. + return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR ;
  130. +
  131. + return FLAC__STREAM_DECODER_SEEK_STATUS_OK ;
  132. +#endif
  133. } /* sf_flac_seek_callback */
  134. +#ifdef LEGACY_FLAC
  135. static FLAC__SeekableStreamDecoderTellStatus
  136. sf_flac_tell_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__uint64 *absolute_byte_offset, void *client_data)
  137. +#else
  138. +static FLAC__StreamDecoderTellStatus
  139. +sf_flac_tell_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__uint64 *absolute_byte_offset, void *client_data)
  140. +#endif
  141. { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
  142. *absolute_byte_offset = psf_ftell (psf) ;
  143. if (psf->error)
  144. +#ifdef LEGACY_FLAC
  145. return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_ERROR ;
  146. return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK ;
  147. +#else
  148. + return FLAC__STREAM_DECODER_TELL_STATUS_ERROR ;
  149. +
  150. + return FLAC__STREAM_DECODER_TELL_STATUS_OK ;
  151. +#endif
  152. } /* sf_flac_tell_callback */
  153. +#ifdef LEGACY_FLAC
  154. static FLAC__SeekableStreamDecoderLengthStatus
  155. sf_flac_length_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__uint64 *stream_length, void *client_data)
  156. +#else
  157. +static FLAC__StreamDecoderLengthStatus
  158. +sf_flac_length_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__uint64 *stream_length, void *client_data)
  159. +#endif
  160. { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
  161. if ((*stream_length = psf->filelength) == 0)
  162. +#ifdef LEGACY_FLAC
  163. return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_ERROR ;
  164. return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK ;
  165. +#else
  166. + return FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR ;
  167. +
  168. + return FLAC__STREAM_DECODER_LENGTH_STATUS_OK ;
  169. +#endif
  170. } /* sf_flac_length_callback */
  171. static FLAC__bool
  172. +#ifdef LEGACY_FLAC
  173. sf_flac_eof_callback (const FLAC__SeekableStreamDecoder *UNUSED (decoder), void *client_data)
  174. +#else
  175. +sf_flac_eof_callback (const FLAC__StreamDecoder *UNUSED (decoder), void *client_data)
  176. +#endif
  177. { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
  178. if (psf_ftell (psf) == psf->filelength)
  179. @@ -337,7 +415,11 @@
  180. } /* sf_flac_eof_callback */
  181. static FLAC__StreamDecoderWriteStatus
  182. +#ifdef LEGACY_FLAC
  183. sf_flac_write_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), const FLAC__Frame *frame, const FLAC__int32 * const buffer [], void *client_data)
  184. +#else
  185. +sf_flac_write_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC__Frame *frame, const FLAC__int32 * const buffer [], void *client_data)
  186. +#endif
  187. { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
  188. FLAC_PRIVATE* pflac = (FLAC_PRIVATE*) psf->codec_data ;
  189. @@ -353,7 +435,11 @@
  190. } /* sf_flac_write_callback */
  191. static void
  192. +#ifdef LEGACY_FLAC
  193. sf_flac_meta_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), const FLAC__StreamMetadata *metadata, void *client_data)
  194. +#else
  195. +sf_flac_meta_callback (const FLAC__StreamDecoder * UNUSED (decoder), const FLAC__StreamMetadata *metadata, void *client_data)
  196. +#endif
  197. { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
  198. switch (metadata->type)
  199. @@ -387,7 +473,11 @@
  200. } /* sf_flac_meta_callback */
  201. static void
  202. +#ifdef LEGACY_FLAC
  203. sf_flac_error_callback (const FLAC__SeekableStreamDecoder * UNUSED (decoder), FLAC__StreamDecoderErrorStatus status, void *client_data)
  204. +#else
  205. +sf_flac_error_callback (const FLAC__StreamDecoder * UNUSED (decoder), FLAC__StreamDecoderErrorStatus status, void *client_data)
  206. +#endif
  207. { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
  208. psf_log_printf (psf, "ERROR : %s\n", FLAC__StreamDecoderErrorStatusString [status]) ;
  209. @@ -407,17 +497,29 @@
  210. return ;
  211. } /* sf_flac_error_callback */
  212. +#ifdef LEGACY_FLAC
  213. static FLAC__SeekableStreamEncoderSeekStatus
  214. sf_flac_enc_seek_callback (const FLAC__SeekableStreamEncoder * UNUSED (encoder), FLAC__uint64 absolute_byte_offset, void *client_data)
  215. +#else
  216. +static FLAC__StreamEncoderSeekStatus
  217. +sf_flac_enc_seek_callback (const FLAC__StreamEncoder * UNUSED (encoder), FLAC__uint64 absolute_byte_offset, void *client_data)
  218. +#endif
  219. { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
  220. psf_fseek (psf, absolute_byte_offset, SEEK_SET) ;
  221. if (psf->error)
  222. +#ifdef LEGACY_FLAC
  223. return FLAC__SEEKABLE_STREAM_ENCODER_SEEK_STATUS_ERROR ;
  224. return FLAC__SEEKABLE_STREAM_ENCODER_SEEK_STATUS_OK ;
  225. +#else
  226. + return FLAC__STREAM_ENCODER_SEEK_STATUS_ERROR ;
  227. +
  228. + return FLAC__STREAM_ENCODER_SEEK_STATUS_OK ;
  229. +#endif
  230. } /* sf_flac_enc_seek_callback */
  231. +#ifdef LEGACY_FLAC
  232. #ifdef HAVE_FLAC_1_1_1
  233. static FLAC__SeekableStreamEncoderTellStatus
  234. sf_flac_enc_tell_callback (const FLAC__SeekableStreamEncoder *UNUSED (encoder), FLAC__uint64 *absolute_byte_offset, void *client_data)
  235. @@ -430,9 +532,25 @@
  236. return FLAC__SEEKABLE_STREAM_ENCODER_TELL_STATUS_OK ;
  237. } /* sf_flac_enc_tell_callback */
  238. #endif
  239. +#else
  240. +static FLAC__StreamEncoderTellStatus
  241. +sf_flac_enc_tell_callback (const FLAC__StreamEncoder *UNUSED (encoder), FLAC__uint64 *absolute_byte_offset, void *client_data)
  242. +{ SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
  243. +
  244. + *absolute_byte_offset = psf_ftell (psf) ;
  245. + if (psf->error)
  246. + return FLAC__STREAM_ENCODER_TELL_STATUS_ERROR ;
  247. +
  248. + return FLAC__STREAM_ENCODER_TELL_STATUS_OK ;
  249. +} /* sf_flac_enc_tell_callback */
  250. +#endif
  251. static FLAC__StreamEncoderWriteStatus
  252. +#ifdef LEGACY_FLAC
  253. sf_flac_enc_write_callback (const FLAC__SeekableStreamEncoder * UNUSED (encoder), const FLAC__byte buffer [], unsigned bytes, unsigned UNUSED (samples), unsigned UNUSED (current_frame), void *client_data)
  254. +#else
  255. +sf_flac_enc_write_callback (const FLAC__StreamEncoder * UNUSED (encoder), const FLAC__byte buffer [], size_t bytes, unsigned UNUSED (samples), unsigned UNUSED (current_frame), void *client_data)
  256. +#endif
  257. { SF_PRIVATE *psf = (SF_PRIVATE*) client_data ;
  258. if (psf_fwrite (buffer, 1, bytes, psf) == bytes && psf->error == 0)
  259. @@ -509,15 +627,27 @@
  260. return 0 ;
  261. if (psf->mode == SFM_WRITE)
  262. - { FLAC__seekable_stream_encoder_finish (pflac->fse) ;
  263. + {
  264. +#ifdef LEGACY_FLAC
  265. + FLAC__seekable_stream_encoder_finish (pflac->fse) ;
  266. FLAC__seekable_stream_encoder_delete (pflac->fse) ;
  267. +#else
  268. + FLAC__stream_encoder_finish (pflac->fse) ;
  269. + FLAC__stream_encoder_delete (pflac->fse) ;
  270. +#endif
  271. if (pflac->encbuffer)
  272. free (pflac->encbuffer) ;
  273. } ;
  274. if (psf->mode == SFM_READ)
  275. - { FLAC__seekable_stream_decoder_finish (pflac->fsd) ;
  276. + {
  277. +#ifdef LEGACY_FLAC
  278. + FLAC__seekable_stream_decoder_finish (pflac->fsd) ;
  279. FLAC__seekable_stream_decoder_delete (pflac->fsd) ;
  280. +#else
  281. + FLAC__stream_decoder_finish (pflac->fsd) ;
  282. + FLAC__stream_decoder_delete (pflac->fsd) ;
  283. +#endif
  284. } ;
  285. for (k = 0 ; k < ARRAY_LEN (pflac->rbuffer) ; k++)
  286. @@ -546,17 +676,6 @@
  287. return SFE_FLAC_BAD_SAMPLE_RATE ;
  288. psf_fseek (psf, 0, SEEK_SET) ;
  289. - if ((pflac->fse = FLAC__seekable_stream_encoder_new ()) == NULL)
  290. - return SFE_FLAC_NEW_DECODER ;
  291. - FLAC__seekable_stream_encoder_set_write_callback (pflac->fse, sf_flac_enc_write_callback) ;
  292. - FLAC__seekable_stream_encoder_set_seek_callback (pflac->fse, sf_flac_enc_seek_callback) ;
  293. -
  294. -#ifdef HAVE_FLAC_1_1_1
  295. - FLAC__seekable_stream_encoder_set_tell_callback (pflac->fse, sf_flac_enc_tell_callback) ;
  296. -#endif
  297. - FLAC__seekable_stream_encoder_set_client_data (pflac->fse, psf) ;
  298. - FLAC__seekable_stream_encoder_set_channels (pflac->fse, psf->sf.channels) ;
  299. - FLAC__seekable_stream_encoder_set_sample_rate (pflac->fse, psf->sf.samplerate) ;
  300. switch (psf->sf.format & SF_FORMAT_SUBMASK)
  301. { case SF_FORMAT_PCM_S8 :
  302. @@ -574,12 +693,36 @@
  303. break ;
  304. } ;
  305. +#ifdef LEGACY_FLAC
  306. + if ((pflac->fse = FLAC__seekable_stream_encoder_new ()) == NULL)
  307. + return SFE_FLAC_NEW_DECODER ;
  308. + FLAC__seekable_stream_encoder_set_write_callback (pflac->fse, sf_flac_enc_write_callback) ;
  309. + FLAC__seekable_stream_encoder_set_seek_callback (pflac->fse, sf_flac_enc_seek_callback) ;
  310. +
  311. +#ifdef HAVE_FLAC_1_1_1
  312. + FLAC__seekable_stream_encoder_set_tell_callback (pflac->fse, sf_flac_enc_tell_callback) ;
  313. +#endif
  314. + FLAC__seekable_stream_encoder_set_client_data (pflac->fse, psf) ;
  315. + FLAC__seekable_stream_encoder_set_channels (pflac->fse, psf->sf.channels) ;
  316. + FLAC__seekable_stream_encoder_set_sample_rate (pflac->fse, psf->sf.samplerate) ;
  317. FLAC__seekable_stream_encoder_set_bits_per_sample (pflac->fse, bps) ;
  318. if ((bps = FLAC__seekable_stream_encoder_init (pflac->fse)) != FLAC__SEEKABLE_STREAM_DECODER_OK)
  319. { psf_log_printf (psf, "Error : FLAC encoder init returned error : %s\n", FLAC__seekable_stream_encoder_get_resolved_state_string (pflac->fse)) ;
  320. return SFE_FLAC_INIT_DECODER ;
  321. } ;
  322. +#else
  323. + if ((pflac->fse = FLAC__stream_encoder_new ()) == NULL)
  324. + return SFE_FLAC_NEW_DECODER ;
  325. + FLAC__stream_encoder_set_channels (pflac->fse, psf->sf.channels) ;
  326. + FLAC__stream_encoder_set_sample_rate (pflac->fse, psf->sf.samplerate) ;
  327. + FLAC__stream_encoder_set_bits_per_sample (pflac->fse, bps) ;
  328. +
  329. + if ((bps = FLAC__stream_encoder_init_stream (pflac->fse, sf_flac_enc_write_callback, sf_flac_enc_seek_callback, sf_flac_enc_tell_callback, NULL, psf)) != FLAC__STREAM_DECODER_INIT_STATUS_OK)
  330. + { psf_log_printf (psf, "Error : FLAC encoder init returned error : %s\n", FLAC__StreamEncoderInitStatusString[bps]) ;
  331. + return SFE_FLAC_INIT_DECODER ;
  332. + } ;
  333. +#endif
  334. if (psf->error == 0)
  335. psf->dataoffset = psf_ftell (psf) ;
  336. @@ -593,6 +736,7 @@
  337. { FLAC_PRIVATE* pflac = (FLAC_PRIVATE*) psf->codec_data ;
  338. psf_fseek (psf, 0, SEEK_SET) ;
  339. +#ifdef LEGACY_FLAC
  340. if ((pflac->fsd = FLAC__seekable_stream_decoder_new ()) == NULL)
  341. return SFE_FLAC_NEW_DECODER ;
  342. @@ -610,9 +754,22 @@
  343. return SFE_FLAC_INIT_DECODER ;
  344. FLAC__seekable_stream_decoder_process_until_end_of_metadata (pflac->fsd) ;
  345. +#else
  346. + if ((pflac->fsd = FLAC__stream_decoder_new ()) == NULL)
  347. + return SFE_FLAC_NEW_DECODER ;
  348. +
  349. + if (FLAC__stream_decoder_init_stream (pflac->fsd, sf_flac_read_callback, sf_flac_seek_callback, sf_flac_tell_callback, sf_flac_length_callback, sf_flac_eof_callback, sf_flac_write_callback, sf_flac_meta_callback, sf_flac_error_callback, psf) != FLAC__STREAM_DECODER_INIT_STATUS_OK)
  350. + return SFE_FLAC_INIT_DECODER ;
  351. +
  352. + FLAC__stream_decoder_process_until_end_of_metadata (pflac->fsd) ;
  353. +#endif
  354. if (psf->error == 0)
  355. { FLAC__uint64 position ;
  356. +#ifdef LEGACY_FLAC
  357. FLAC__seekable_stream_decoder_get_decode_position (pflac->fsd, &position) ;
  358. +#else
  359. + FLAC__stream_decoder_get_decode_position (pflac->fsd, &position) ;
  360. +#endif
  361. psf->dataoffset = position ;
  362. } ;
  363. @@ -676,10 +833,18 @@
  364. flac_buffer_copy (psf) ;
  365. while (pflac->pos < pflac->len)
  366. - { if (FLAC__seekable_stream_decoder_process_single (pflac->fsd) == 0)
  367. + {
  368. +#ifdef LEGACY_FLAC
  369. + if (FLAC__seekable_stream_decoder_process_single (pflac->fsd) == 0)
  370. break ;
  371. if (FLAC__seekable_stream_decoder_get_state (pflac->fsd) != FLAC__SEEKABLE_STREAM_DECODER_OK)
  372. break ;
  373. +#else
  374. + if (FLAC__stream_decoder_process_single (pflac->fsd) == 0)
  375. + break ;
  376. + if (FLAC__stream_decoder_get_state (pflac->fsd) >= FLAC__STREAM_DECODER_END_OF_STREAM)
  377. + break ;
  378. +#endif
  379. } ;
  380. pflac->ptr = NULL ;
  381. @@ -795,7 +960,11 @@
  382. while (len > 0)
  383. { writecount = (len >= bufferlen) ? bufferlen : (int) len ;
  384. convert (ptr + total, buffer, writecount) ;
  385. +#ifdef LEGACY_FLAC
  386. if (FLAC__seekable_stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels))
  387. +#else
  388. + if (FLAC__stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels))
  389. +#endif
  390. thiswrite = writecount ;
  391. else
  392. break ;
  393. @@ -837,7 +1006,11 @@
  394. while (len > 0)
  395. { writecount = (len >= bufferlen) ? bufferlen : (int) len ;
  396. convert (ptr + total, buffer, writecount) ;
  397. +#ifdef LEGACY_FLAC
  398. if (FLAC__seekable_stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels))
  399. +#else
  400. + if (FLAC__stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels))
  401. +#endif
  402. thiswrite = writecount ;
  403. else
  404. break ;
  405. @@ -879,7 +1052,11 @@
  406. while (len > 0)
  407. { writecount = (len >= bufferlen) ? bufferlen : (int) len ;
  408. convert (ptr + total, buffer, writecount, psf->norm_float) ;
  409. +#ifdef LEGACY_FLAC
  410. if (FLAC__seekable_stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels))
  411. +#else
  412. + if (FLAC__stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels))
  413. +#endif
  414. thiswrite = writecount ;
  415. else
  416. break ;
  417. @@ -1011,7 +1188,11 @@
  418. while (len > 0)
  419. { writecount = (len >= bufferlen) ? bufferlen : (int) len ;
  420. convert (ptr + total, buffer, writecount, psf->norm_double) ;
  421. +#ifdef LEGACY_FLAC
  422. if (FLAC__seekable_stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels))
  423. +#else
  424. + if (FLAC__stream_encoder_process_interleaved (pflac->fse, buffer, writecount/psf->sf.channels))
  425. +#endif
  426. thiswrite = writecount ;
  427. else
  428. break ;
  429. @@ -1131,10 +1312,17 @@
  430. if (psf->mode == SFM_READ)
  431. { FLAC__uint64 position ;
  432. +#ifdef LEGACY_FLAC
  433. if (FLAC__seekable_stream_decoder_seek_absolute (pflac->fsd, offset))
  434. { FLAC__seekable_stream_decoder_get_decode_position (pflac->fsd, &position) ;
  435. return offset ;
  436. } ;
  437. +#else
  438. + if (FLAC__stream_decoder_seek_absolute (pflac->fsd, offset))
  439. + { FLAC__stream_decoder_get_decode_position (pflac->fsd, &position) ;
  440. + return offset ;
  441. + } ;
  442. +#endif
  443. return ((sf_count_t) -1) ;
  444. } ;
  445. diff -urN libsndfile-1.0.17-orig/configure.ac libsndfile-1.0.17/configure.ac
  446. --- libsndfile-1.0.17-orig/configure.ac 2006-08-31 11:39:37.000000000 +0200
  447. +++ libsndfile-1.0.17/configure.ac 2007-06-20 18:53:59.333347643 +0200
  448. @@ -258,7 +258,7 @@
  449. ac_cv_sqlite3=no
  450. if test x$enable_sqlite != xno ; then
  451. - PKG_CHECK_MODULES(SQLITE3, sqlite3 >= 3.2, ac_cv_sqlite3=yes, ac_cv_sqlite3=no)
  452. + : #PKG_CHECK_MODULES(SQLITE3, sqlite3 >= 3.2, ac_cv_sqlite3=yes, ac_cv_sqlite3=no)
  453. fi
  454. if test x$ac_cv_sqlite3 = "xyes" ; then