I have just done an NMU of libaudio-flac-decoder-perl to fix 
longstanding issues. Please find the diff attached.

-- 
  .''`.  Aurelien Jarno             | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   [EMAIL PROTECTED]         | [EMAIL PROTECTED]
   `-    people.debian.org/~aurel32 | www.aurel32.net
diff -u libaudio-flac-decoder-perl-0.2/debian/changelog libaudio-flac-decoder-perl-0.2/debian/changelog
--- libaudio-flac-decoder-perl-0.2/debian/changelog
+++ libaudio-flac-decoder-perl-0.2/debian/changelog
@@ -1,3 +1,10 @@
+libaudio-flac-decoder-perl (0.2-2.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Update to FLAC 1.1.4 API (Closes: #427748, #451862, #426665).
+
+ -- Aurelien Jarno <[EMAIL PROTECTED]>  Tue, 15 Jan 2008 17:25:16 +0100
+
 libaudio-flac-decoder-perl (0.2-2) unstable; urgency=low
 
   * Updated standards-version to 3.7.2.
only in patch2:
unchanged:
--- libaudio-flac-decoder-perl-0.2.orig/Decoder.xs
+++ libaudio-flac-decoder-perl-0.2/Decoder.xs
@@ -49,32 +49,23 @@
 #define my_hv_fetch(a,b)     hv_fetch(a,b,strlen(b),0)
 
 /* Create some generic (and shorter) names for these types. */
-typedef FLAC__SeekableStreamDecoder decoder_t;
-typedef FLAC__SeekableStreamDecoderReadStatus read_status_t;
+typedef FLAC__StreamDecoder decoder_t;
+typedef FLAC__StreamDecoderReadStatus read_status_t;
 
-#define FLACdecoder_new()                       FLAC__seekable_stream_decoder_new()
-#define FLACdecoder_init(x)                     FLAC__seekable_stream_decoder_init(x)
-#define FLACdecoder_process_metadata(x)         FLAC__seekable_stream_decoder_process_until_end_of_metadata(x)
-#define FLACdecoder_process_single(x)           FLAC__seekable_stream_decoder_process_single(x)
-#define FLACdecoder_finish(x)                   FLAC__seekable_stream_decoder_finish(x)
-#define FLACdecoder_delete(x)                   FLAC__seekable_stream_decoder_delete(x)
-#define FLACdecoder_set_read_callback(x, y)     FLAC__seekable_stream_decoder_set_read_callback(x, y)
-#define FLACdecoder_set_write_callback(x, y)    FLAC__seekable_stream_decoder_set_write_callback(x, y)
-#define FLACdecoder_set_metadata_callback(x, y) FLAC__seekable_stream_decoder_set_metadata_callback(x, y)
-#define FLACdecoder_set_error_callback(x, y)    FLAC__seekable_stream_decoder_set_error_callback(x, y)
-#define FLACdecoder_set_client_data(x, y)       FLAC__seekable_stream_decoder_set_client_data(x, y)
-#define FLACdecoder_set_seek_callback(x, y)     FLAC__seekable_stream_decoder_set_seek_callback(x, y)
-#define FLACdecoder_set_tell_callback(x, y)     FLAC__seekable_stream_decoder_set_tell_callback(x, y)
-#define FLACdecoder_set_length_callback(x, y)   FLAC__seekable_stream_decoder_set_length_callback(x, y)
-#define FLACdecoder_set_eof_callback(x, y)      FLAC__seekable_stream_decoder_set_eof_callback(x, y)
-#define FLACdecoder_seek_absolute(x, y)         FLAC__seekable_stream_decoder_seek_absolute(x, y)
-
-#define FLACdecoder_get_state(x)                FLAC__seekable_stream_decoder_get_state(x)
-#define FLACdecoder_get_channels(x)             FLAC__seekable_stream_decoder_get_channels(x)
-#define FLACdecoder_get_blocksize(x)		FLAC__seekable_stream_decoder_get_blocksize(x)
-#define FLACdecoder_get_sample_rate(x)		FLAC__seekable_stream_decoder_get_sample_rate(x)
-#define FLACdecoder_get_bits_per_sample(x)	FLAC__seekable_stream_decoder_get_bits_per_sample(x)
-#define FLACdecoder_get_decode_position(x, y)   FLAC__seekable_stream_decoder_get_decode_position(x, y)
+#define FLACdecoder_new()                       FLAC__stream_decoder_new()
+#define FLACdecoder_init_stream(q, r, s, t, u, v, w, x, y, z)                     FLAC__stream_decoder_init_stream(q, r, s, t, u, v, w, x, y, z)
+#define FLACdecoder_process_metadata(x)         FLAC__stream_decoder_process_until_end_of_metadata(x)
+#define FLACdecoder_process_single(x)           FLAC__stream_decoder_process_single(x)
+#define FLACdecoder_finish(x)                   FLAC__stream_decoder_finish(x)
+#define FLACdecoder_delete(x)                   FLAC__stream_decoder_delete(x)
+#define FLACdecoder_seek_absolute(x, y)         FLAC__stream_decoder_seek_absolute(x, y)
+
+#define FLACdecoder_get_state(x)                FLAC__stream_decoder_get_state(x)
+#define FLACdecoder_get_channels(x)             FLAC__stream_decoder_get_channels(x)
+#define FLACdecoder_get_blocksize(x)		FLAC__stream_decoder_get_blocksize(x)
+#define FLACdecoder_get_sample_rate(x)		FLAC__stream_decoder_get_sample_rate(x)
+#define FLACdecoder_get_bits_per_sample(x)	FLAC__stream_decoder_get_bits_per_sample(x)
+#define FLACdecoder_get_decode_position(x, y)   FLAC__stream_decoder_get_decode_position(x, y)
 
 #define SAMPLES_PER_WRITE 512
 
@@ -182,7 +173,7 @@
 	warn("FLAC decoder error_callback: %s\n", status);
 }
 
-static FLAC__SeekableStreamDecoderSeekStatus seek_callback(
+static FLAC__StreamDecoderSeekStatus seek_callback(
 	const decoder_t *decoder,
 	FLAC__uint64 absolute_byte_offset, void *client_data) {
 
@@ -190,17 +181,17 @@
 
 	/* can't seek on a socket */
 	if (datasource->is_streaming) {
-		return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
+		return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
 	}
 
 	if (PerlIO_seek(datasource->stream, absolute_byte_offset, SEEK_SET) >= 0) {
-		return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK;
+		return FLAC__STREAM_DECODER_SEEK_STATUS_OK;
 	}
 
-	return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR;
+	return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
 }
 
-static FLAC__SeekableStreamDecoderTellStatus tell_callback(
+static FLAC__StreamDecoderTellStatus tell_callback(
 	const decoder_t *decoder,
 	FLAC__uint64 *absolute_byte_offset, void *client_data) {
 
@@ -209,20 +200,20 @@
 	
 	/* can't tell on a socket */
 	if (datasource->is_streaming) {
-		return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_ERROR;
+		return FLAC__STREAM_DECODER_TELL_STATUS_ERROR;
 	}
 
 	pos = PerlIO_tell(datasource->stream);
 
 	if (pos < 0) {
-		return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_ERROR;
+		return FLAC__STREAM_DECODER_TELL_STATUS_ERROR;
 	}
 
 	*absolute_byte_offset = pos;
-	return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK;
+	return FLAC__STREAM_DECODER_TELL_STATUS_OK;
 }
 
-static FLAC__SeekableStreamDecoderLengthStatus length_callback(
+static FLAC__StreamDecoderLengthStatus length_callback(
 	const decoder_t *decoder,
 	FLAC__uint64 *stream_length, void *client_data) {
 
@@ -230,11 +221,11 @@
 
 	/* can't find the total length of a socket */
 	if (datasource->is_streaming) {
-		return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_ERROR;
+		return FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR;
 	}
 
 	*stream_length = datasource->stream_length;
-	return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK;
+	return FLAC__STREAM_DECODER_LENGTH_STATUS_OK;
 }
 
 static FLAC__bool eof_callback(
@@ -268,10 +259,10 @@
 	datasource->buffer_size = *bytes;
 
 	if (*bytes <= 0) {
-		return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR;
+		return FLAC__STREAM_DECODER_READ_STATUS_ABORT;
 	}
 
-	return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK;
+	return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
 }
 
 static FLAC__StreamDecoderWriteStatus write_callback(
@@ -369,16 +360,6 @@
 		XSRETURN_UNDEF;
 	}
 
-	FLACdecoder_set_read_callback(datasource->decoder, read_callback);
-	FLACdecoder_set_write_callback(datasource->decoder, write_callback);
-	FLACdecoder_set_metadata_callback(datasource->decoder, meta_callback);
-	FLACdecoder_set_error_callback(datasource->decoder, error_callback);
-	FLACdecoder_set_client_data(datasource->decoder, (void*)datasource);
-	FLACdecoder_set_seek_callback(datasource->decoder, seek_callback);
-	FLACdecoder_set_tell_callback(datasource->decoder, tell_callback);
-	FLACdecoder_set_length_callback(datasource->decoder, length_callback);
-	FLACdecoder_set_eof_callback(datasource->decoder, eof_callback);
-
 	if (!datasource->is_streaming) {
 
 		pos = PerlIO_tell(datasource->stream);
@@ -400,7 +381,7 @@
 		}
 	}
 
-	if (FLACdecoder_init(datasource->decoder) != FLAC__SEEKABLE_STREAM_DECODER_OK) {
+	if (FLACdecoder_init_stream(datasource->decoder, read_callback, seek_callback, tell_callback, length_callback, eof_callback, write_callback, meta_callback, error_callback, (void *)datasource) !=  FLAC__STREAM_DECODER_INIT_STATUS_OK) {
 
 		warn("Failed on initializing the decoder: [%d]\n", FLACdecoder_get_state(datasource->decoder));
 
@@ -459,7 +440,7 @@
 
 		unsigned s = datasource->wide_samples_in_reservoir;
 
-		if (FLACdecoder_get_state(datasource->decoder) == FLAC__SEEKABLE_STREAM_DECODER_END_OF_STREAM ) {
+		if (FLACdecoder_get_state(datasource->decoder) == FLAC__STREAM_DECODER_END_OF_STREAM ) {
 			break;
 
 		} else if (!FLACdecoder_process_single(datasource->decoder)) {
@@ -595,7 +576,7 @@
 		XSRETURN_UNDEF;
 	}
 
-	if (!FLAC__seekable_stream_decoder_reset(datasource->decoder)) {
+	if (!FLAC__stream_decoder_reset(datasource->decoder)) {
 		XSRETURN_UNDEF;
 	}
 

Reply via email to