Package: aqualung
Version: 0.9~beta10-1
Severity: normal
Tags: patch

--- Please enter the report below this line. ---
Hi,

Ogg vorbis file are now decoded by libsndfile instead of the standard
vorbis one (libvorbis-dev). I thinks recent libsndfile adds the support
for the ogg vorbis file.

The code was designed with a different code path in mind so
it does not support metadata (like format, tag etc...) but the sound
still working (just use a different decoder).

I attach a basic patch that skip libsndfile when the format is ogg
vorbis so it uses the expected code path (aka dec_vorbis). Tested on my
PC, sound and metadata work.

Best regards,
Gregory





--- System information. ---
Architecture: i386
Kernel:       Linux 2.6.29.5-ghost

Debian Release: squeeze/sid
  500 unstable        ftp.fr.debian.org 
    1 experimental    ftp.fr.debian.org 

--- Package information. ---
Depends                                     (Version) | Installed
=====================================================-+-========================
libasound2                                (>> 1.0.18) | 1.0.20-3
libatk1.0-0                               (>= 1.20.0) | 1.26.0-1
libavcodec52                  (>= 3:0.svn20090303-1)  |
4:0.5+svn20090420-2 OR libavcodec-unstripped-52   (>=
3:0.svn20090303-1) | libavformat52                 (>=
3:0.svn20090303-1)  | 4:0.5+svn20090420-2 OR libavformat-unstripped-52
(>= 3:0.svn20090303-1) | libavutil49                   (>=
3:0.svn20090303-1)  | 4:0.5+svn20090420-2 OR libavutil-unstripped-49
(>= 3:0.svn20090303-1) | libc6                                   (>=
2.3.6-6~) | 2.9-18 libcairo2                                  (>=
1.2.4) | 1.8.8-2 libcddb2
| 1.2.1-1 libcdio-cdda0                                         |
0.78.2+dfsg1-3 libcdio-paranoia0                                     |
0.78.2+dfsg1-3 libcdio7                                              |
0.78.2+dfsg1-3 libflac8                                              |
1.2.1-1.2 libfontconfig1                             (>= 2.4.0) |
2.6.0-4 libfreetype6                               (>= 2.2.1) | 2.3.9-5
libglib2.0-0                              (>= 2.14.0) | 2.20.4-1
libgtk2.0-0                               (>= 2.10.0) | 2.16.3-1
libifp4                                               | 1.0.0.2-3
libjack0                                 (>= 0.116.1) | 0.116.1-4
liblrdf0                                              | 0.4.0-1.2
libmad0                                (>= 0.15.1b-3) | 0.15.1b-4
libmodplug0c2                          (>= 1:0.7-4.1) | 1:0.8.7-1
libmpcdec3                                            | 1:1.2.2-2.1
libogg0                                   (>= 1.0rc3) | 1.1.3-5
liboggz1                                   (>= 0.9.9) | 0.9.9-4
libpango1.0-0                             (>= 1.14.0) | 1.24.3-1
libsamplerate0                                        | 0.1.7-2
libsndfile1                                           | 1.0.20-1
libspeex1                            (>= 1.2~beta3-1) | 1.2~rc1-1
libstdc++6                                 (>= 4.1.1) | 4.4.0-10
libusb-0.1-4                            (>= 2:0.1.12) | 2:0.1.12-13
libvorbis0a                                (>= 1.1.2) | 1.2.0.dfsg-5
libvorbisenc2                              (>= 1.1.2) | 1.2.0.dfsg-5
libvorbisfile3                             (>= 1.1.2) | 1.2.0.dfsg-5
libwavpack1                               (>= 4.40.0) | 4.50.1-1
libxml2                                   (>= 2.6.27) | 2.7.3.dfsg-1
zlib1g                                   (>= 1:1.1.4) |
1:1.2.3.3.dfsg-14


Package's Recommends field is empty.

Package's Suggests field is empty.




--- aqualung-0.9~beta10.orig/src/decoder/dec_sndfile.c
+++ aqualung-0.9~beta10/src/decoder/dec_sndfile.c
@@ -91,6 +91,14 @@
 		sf_close(pd->sf);
 		return DECODER_OPEN_BADLIB;
 	}
+
+        /* XXX don't use sndfile to decode Ogg vorbis file for the moment.
+         * Aqualung needs some update to properly support stuff like metadata.
+         */
+	if ((pd->sf_info.format & SF_FORMAT_SUBMASK) == SF_FORMAT_VORBIS) {
+		sf_close(pd->sf);
+		return DECODER_OPEN_BADLIB;
+	}
 #endif
 
 	if ((pd->sf_info.channels != 1) && (pd->sf_info.channels != 2)) {

Reply via email to