[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.0
From:       Alex Merry <huntedhacker () tiscali ! co ! uk>
Date:       2008-01-28 14:56:13
Message-ID: 1201532173.697147.3927.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 767696 by alexmerry:

Backport fix for FLAC > 1.1.2.

CCBUG: 153503



 M  +6 -5      kdelibs/cmake/modules/FindFlac.cmake  
 M  +16 -1     kdemultimedia/kioslave/audiocd/plugins/flac/encoderflac.cpp  


--- branches/KDE/4.0/kdelibs/cmake/modules/FindFlac.cmake #767695:767696
@@ -5,6 +5,9 @@
 #  FLAC_INCLUDE_DIR - the Flac include directory
 #  FLAC_LIBRARIES - Link these to use Flac
 #  FLAC_OGGFLAC_LIBRARIES - Link these to use OggFlac
+#
+# No version checking is done - use FLAC_API_VERSION_CURRENT to
+# conditionally compile version-dependent code
 
 # Copyright (c) 2006, Laurent Montel, <montel@kde.org>
 # Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
@@ -23,18 +26,16 @@
 
 FIND_LIBRARY(FLAC_OGG_LIBRARY NAMES OggFLAC)
 
-check_library_exists(FLAC FLAC__stream_encoder_set_write_callback "" \
HAVE_STREAM_ENCODER_WRITE_CALLBACK)  
 
-
-IF(FLAC_INCLUDE_DIR AND FLAC_LIBRARIES AND HAVE_STREAM_ENCODER_WRITE_CALLBACK)
+IF(FLAC_INCLUDE_DIR AND FLAC_LIBRARIES)
    SET(FLAC_FOUND TRUE)
    IF (FLAC_OGG_LIBRARY)
       SET(FLAC_OGGFLAC_LIBRARIES ${FLAC_OGG_LIBRARY} ${FLAC_LIBRARIES})
    ENDIF (FLAC_OGG_LIBRARY)
-ELSE(FLAC_INCLUDE_DIR AND FLAC_LIBRARIES AND HAVE_STREAM_ENCODER_WRITE_CALLBACK)
+ELSE(FLAC_INCLUDE_DIR AND FLAC_LIBRARIES)
    SET(FLAC_FOUND FALSE)
-ENDIF(FLAC_INCLUDE_DIR AND FLAC_LIBRARIES AND HAVE_STREAM_ENCODER_WRITE_CALLBACK)
+ENDIF(FLAC_INCLUDE_DIR AND FLAC_LIBRARIES)
 
 IF(FLAC_FOUND)
    IF(NOT Flac_FIND_QUIETLY)
--- branches/KDE/4.0/kdemultimedia/kioslave/audiocd/plugins/flac/encoderflac.cpp \
#767695:767696 @@ -48,7 +48,16 @@
     unsigned long data;
 };
 
-static FLAC__StreamEncoderWriteStatus WriteCallback(const FLAC__StreamEncoder \
*encoder, const FLAC__byte buffer[], unsigned bytes, unsigned samples, unsigned \
current_frame, void *client_data) +static FLAC__StreamEncoderWriteStatus \
WriteCallback(const FLAC__StreamEncoder *encoder, +                                   \
const FLAC__byte buffer[], +#if !defined(FLAC_API_VERSION_CURRENT) || \
FLAC_API_VERSION_CURRENT <= 7 +                                                    \
unsigned bytes, +#else
+                                                    size_t bytes,
+#endif
+                                                    unsigned samples,
+                                                    unsigned current_frame,
+                                                    void *client_data)
 {
     EncoderFLAC::Private *d = (EncoderFLAC::Private*)client_data;
 
@@ -110,9 +119,11 @@
 long EncoderFLAC::readInit(long size) {
     kDebug(7117) << "EncoderFLAC::readInit() called";
     d->data = 0;
+#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT <= 7
     FLAC__stream_encoder_set_write_callback(d->encoder, WriteCallback);
     FLAC__stream_encoder_set_metadata_callback(d->encoder, MetadataCallback);
     FLAC__stream_encoder_set_client_data(d->encoder, d);
+#endif
 
     // The options match approximely those of flac compression-level-3
     FLAC__stream_encoder_set_do_mid_side_stereo(d->encoder, true);
@@ -125,7 +136,11 @@
     if (size > 0)
         FLAC__stream_encoder_set_total_samples_estimate(d->encoder, size/4);
 
+#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT <= 7
     FLAC__stream_encoder_init(d->encoder);
+#else
+    FLAC__stream_encoder_init_stream(d->encoder, WriteCallback, NULL, NULL, \
MetadataCallback, d); +#endif
     return d->data;
 }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic