SOURCES (AC-branch): k3b-flac.patch (NEW) - flac 1.1.3 patch from ...

glen glen at pld-linux.org
Fri Jan 26 18:43:02 CET 2007


Author: glen                         Date: Fri Jan 26 17:43:02 2007 GMT
Module: SOURCES                       Tag: AC-branch
---- Log message:
- flac 1.1.3 patch from gentoo

---- Files affected:
SOURCES:
   k3b-flac.patch (NONE -> 1.1.2.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/k3b-flac.patch
diff -u /dev/null SOURCES/k3b-flac.patch:1.1.2.1
--- /dev/null	Fri Jan 26 18:43:02 2007
+++ SOURCES/k3b-flac.patch	Fri Jan 26 18:42:57 2007
@@ -0,0 +1,165 @@
+--- k3b-0.12.17/configure.in.in	2006-08-23 00:32:30.000000000 -0700
++++ k3b-0.12.17-b2/configure.in.in	2006-10-17 19:23:48.000000000 -0700
+@@ -248,7 +248,7 @@
+ have_flac=no
+ if test "$ac_cv_use_flac" = "yes"; then
+   KDE_CHECK_HEADERS(FLAC++/decoder.h, [
+-     AC_CHECK_LIB(FLAC,FLAC__seekable_stream_decoder_process_single,
++     AC_CHECK_LIB(FLAC,FLAC__stream_decoder_process_single,
+ 	        have_flac=yes,[],$all_libraries)])
+ 
+   # Hack to get the flac version since I was not able to handle the code from
+--- k3b-0.12.17/plugins/decoder/flac/k3bflacdecoder.cpp	2006-08-23 00:31:46.000000000 -0700
++++ k3b-0.12.17-b2/plugins/decoder/flac/k3bflacdecoder.cpp	2006-10-18 14:32:24.000000000 -0700
+@@ -36,11 +36,21 @@
+ #include <taglib/flacfile.h>
+ #endif
+ 
++#if !defined FLACPP_API_VERSION_CURRENT || FLACPP_API_VERSION_CURRENT < 6
++#define LEGACY_FLAC
++#else
++#undef LEGACY_FLAC
++#endif
++
+ K_EXPORT_COMPONENT_FACTORY( libk3bflacdecoder, K3bPluginFactory<K3bFLACDecoderFactory>( "libk3bflacdecoder" ) )
+ 
+ 
+ class K3bFLACDecoder::Private
++#ifdef LEGACY_FLAC
+   : public FLAC::Decoder::SeekableStream
++#else
++  : public FLAC::Decoder::Stream
++#endif
+ {
+ public:
+   void open(QFile* f) {
+@@ -64,7 +74,11 @@
+   }
+ 
+   Private(QFile* f)
++#ifdef LEGACY_FLAC
+     : FLAC::Decoder::SeekableStream(),
++#else
++    : FLAC::Decoder::Stream(),
++#endif
+       comments(0) {
+     internalBuffer = new QBuffer();
+     internalBuffer->open(IO_ReadWrite);
+@@ -93,10 +107,17 @@
+   FLAC__uint64 samples;
+   
+ protected:
++#ifdef LEGACY_FLAC
+   virtual FLAC__SeekableStreamDecoderReadStatus read_callback(FLAC__byte buffer[], unsigned *bytes);
+   virtual FLAC__SeekableStreamDecoderSeekStatus seek_callback(FLAC__uint64 absolute_byte_offset);
+   virtual FLAC__SeekableStreamDecoderTellStatus tell_callback(FLAC__uint64 *absolute_byte_offset);
+   virtual FLAC__SeekableStreamDecoderLengthStatus length_callback(FLAC__uint64 *stream_length);
++#else
++  virtual FLAC__StreamDecoderReadStatus read_callback(FLAC__byte buffer[], size_t *bytes);
++  virtual FLAC__StreamDecoderSeekStatus seek_callback(FLAC__uint64 absolute_byte_offset);
++  virtual FLAC__StreamDecoderTellStatus tell_callback(FLAC__uint64 *absolute_byte_offset);
++  virtual FLAC__StreamDecoderLengthStatus length_callback(FLAC__uint64 *stream_length);
++#endif
+   virtual bool eof_callback();
+   virtual void error_callback(FLAC__StreamDecoderErrorStatus){};
+   virtual void metadata_callback(const ::FLAC__StreamMetadata *metadata);
+@@ -112,6 +133,7 @@
+   return file->atEnd();
+ }
+ 
++#ifdef LEGACY_FLAC
+ FLAC__SeekableStreamDecoderReadStatus K3bFLACDecoder::Private::read_callback(FLAC__byte buffer[],                                                                             unsigned *bytes) {
+   long retval =  file->readBlock((char *)buffer, (*bytes));
+   if(-1 == retval) {
+@@ -121,7 +143,19 @@
+     return FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK;
+   }
+ }
++#else
++FLAC__StreamDecoderReadStatus K3bFLACDecoder::Private::read_callback(FLAC__byte buffer[],                                                                             size_t *bytes) {
++  long retval =  file->readBlock((char *)buffer, (*bytes));
++  if(-1 == retval) {
++    return FLAC__STREAM_DECODER_READ_STATUS_ABORT;
++  } else {
++    (*bytes) = retval;
++    return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
++  }
++}
++#endif
+ 
++#ifdef LEGACY_FLAC
+ FLAC__SeekableStreamDecoderSeekStatus 
+ K3bFLACDecoder::Private::seek_callback(FLAC__uint64 absolute_byte_offset) {
+   if(file->at(absolute_byte_offset) == FALSE)
+@@ -129,18 +163,43 @@
+   else
+     return FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK;
+ }
++#else
++FLAC__StreamDecoderSeekStatus 
++K3bFLACDecoder::Private::seek_callback(FLAC__uint64 absolute_byte_offset) {
++  if(file->at(absolute_byte_offset) == FALSE)
++    return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR;
++  else
++    return FLAC__STREAM_DECODER_SEEK_STATUS_OK;
++}
++#endif
+ 
++#ifdef LEGACY_FLAC
+ FLAC__SeekableStreamDecoderTellStatus 
+ K3bFLACDecoder::Private::tell_callback(FLAC__uint64 *absolute_byte_offset) {
+   (*absolute_byte_offset) = file->at();
+   return FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK;
+ }
++#else
++FLAC__StreamDecoderTellStatus 
++K3bFLACDecoder::Private::tell_callback(FLAC__uint64 *absolute_byte_offset) {
++  (*absolute_byte_offset) = file->at();
++  return FLAC__STREAM_DECODER_TELL_STATUS_OK;
++}
++#endif
+ 
++#ifdef LEGACY_FLAC
+ FLAC__SeekableStreamDecoderLengthStatus 
+ K3bFLACDecoder::Private::length_callback(FLAC__uint64 *stream_length) {
+   (*stream_length) = file->size();
+   return FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK;
+ }
++#else
++FLAC__StreamDecoderLengthStatus 
++K3bFLACDecoder::Private::length_callback(FLAC__uint64 *stream_length) {
++  (*stream_length) = file->size();
++  return FLAC__STREAM_DECODER_LENGTH_STATUS_OK;
++}
++#endif
+ 
+ 
+ void K3bFLACDecoder::Private::metadata_callback(const FLAC__StreamMetadata *metadata) {
+@@ -260,6 +319,7 @@
+   int bytesCopied;
+   int bytesAvailable;
+ 
++#ifdef LEGACY_FLAC
+   if(d->internalBuffer->size() == 0) {
+     // want more data
+     switch(d->get_state()) {
+@@ -274,6 +334,19 @@
+       return -1;
+     }
+   }
++#else
++  if(d->internalBuffer->size() == 0) {
++    // want more data
++    if(d->get_state() == FLAC__STREAM_DECODER_END_OF_STREAM)
++      d->finish();
++    else if(d->get_state() < FLAC__STREAM_DECODER_END_OF_STREAM) {
++      if(! d->process_single())
++        return -1;
++    }
++    else
++      return -1;
++  }
++#endif
+   
+   bytesAvailable = d->internalBuffer->size() - d->internalBuffer->at();
+   bytesToCopy = QMIN(maxLen, bytesAvailable);
================================================================


More information about the pld-cvs-commit mailing list