diff options
author | Max Kellermann <max@duempel.org> | 2008-11-21 20:27:30 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-11-21 20:27:30 +0100 |
commit | 976d5045c671700b1e16ed2b98e746a67fa91e8b (patch) | |
tree | 06acf6433adcaf822c212be15a099ff40c62eb04 /src/decoder/oggvorbis_plugin.c | |
parent | be9e60d55ef191b5b50a9d1eb2337a6b1199c8d4 (diff) | |
download | mpd-976d5045c671700b1e16ed2b98e746a67fa91e8b.tar.gz mpd-976d5045c671700b1e16ed2b98e746a67fa91e8b.tar.xz mpd-976d5045c671700b1e16ed2b98e746a67fa91e8b.zip |
decoder: check audio_format_valid() in all decoders
Refuse to play audio formats which are not supported by MPD.
Diffstat (limited to 'src/decoder/oggvorbis_plugin.c')
-rw-r--r-- | src/decoder/oggvorbis_plugin.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/decoder/oggvorbis_plugin.c b/src/decoder/oggvorbis_plugin.c index 539a8e092..3a5614fd0 100644 --- a/src/decoder/oggvorbis_plugin.c +++ b/src/decoder/oggvorbis_plugin.c @@ -288,6 +288,15 @@ oggvorbis_decode(struct decoder *decoder, struct input_stream *inStream) audio_format.channels = vi->channels; audio_format.sample_rate = vi->rate; + + if (!audio_format_valid(&audio_format)) { + g_warning("Invalid audio format: %u:%u:%u\n", + audio_format.sample_rate, + audio_format.bits, + audio_format.channels); + break; + } + if (!initialized) { float total_time = ov_time_total(&vf, -1); if (total_time < 0) |