blob: c70668859675e412874d0b6902764829714c7798 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
$NetBSD: patch-ag,v 1.1.1.1 2009/02/26 18:00:34 hasso Exp $
* Attempt fallback to ffmpeg decoder if loading the "native" one fails.
* Reset resampler/converter if it isn't necessary any more.
--- akode/lib/player.cpp.orig 2009-02-20 15:04:49 +0200
+++ akode/lib/player.cpp 2009-02-20 15:11:55 +0200
@@ -345,8 +345,11 @@ bool Player::load() {
d->src = 0;
return false;
}
- if (!d->decoder_handler.load(format))
+ if (!d->decoder_handler.load(format)) {
AKODE_DEBUG("Could not load " << format << "-decoder");
+ if (!d->decoder_handler.load("ffmpeg"))
+ AKODE_DEBUG("Could not load ffmpeg-decoder");
+ }
}
if (!d->decoder_handler.isLoaded()) {
@@ -398,6 +401,9 @@ bool Player::load() {
if (d->sample_rate != first_frame.sample_rate) {
AKODE_DEBUG("Resampling to " << d->sample_rate);
d->resampler->setSampleRate(d->sample_rate);
+ } else {
+ delete d->resampler;
+ d->resampler = 0;
}
int out_channels = d->sink->audioConfiguration()->channels;
int in_channels = first_frame.channels;
@@ -419,6 +425,9 @@ bool Player::load() {
d->converter = new Converter(out_width);
else
d->converter->setSampleWidth(out_width);
+ } else {
+ delete d->converter;
+ d->converter = 0;
}
}
else
|