1 $NetBSD: patch-ag,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $
3 * Attempt fallback to ffmpeg decoder if loading the "native" one fails.
4 * Reset resampler/converter if it isn't necessary any more.
6 --- akode/lib/player.cpp.orig 2009-02-20 15:04:49 +0200
7 +++ akode/lib/player.cpp 2009-02-20 15:11:55 +0200
15 #define AKODE_DEBUG(x) {std::cerr << "akode: " << x << "\n";}
16 @@ -345,8 +345,11 @@ bool Player::load() {
20 - if (!d->decoder_handler.load(format))
21 + if (!d->decoder_handler.load(format)) {
22 AKODE_DEBUG("Could not load " << format << "-decoder");
23 + if (!d->decoder_handler.load("ffmpeg"))
24 + AKODE_DEBUG("Could not load ffmpeg-decoder");
28 if (!d->decoder_handler.isLoaded()) {
29 @@ -398,6 +401,9 @@ bool Player::load() {
30 if (d->sample_rate != first_frame.sample_rate) {
31 AKODE_DEBUG("Resampling to " << d->sample_rate);
32 d->resampler->setSampleRate(d->sample_rate);
34 + delete d->resampler;
37 int out_channels = d->sink->audioConfiguration()->channels;
38 int in_channels = first_frame.channels;
39 @@ -419,6 +425,9 @@ bool Player::load() {
40 d->converter = new Converter(out_width);
42 d->converter->setSampleWidth(out_width);
44 + delete d->converter;