aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-11-02 17:06:32 +0100
committerMax Kellermann <max@duempel.org>2008-11-02 17:06:32 +0100
commit4d069b49919da991482ec46daacde62113dad7e8 (patch)
tree1c0d3274b7f50722627911204d42bdcd2bb189b7
parent460b15d29c125a70c37dd484fb0268698331504d (diff)
downloadmpd-4d069b49919da991482ec46daacde62113dad7e8.tar.gz
mpd-4d069b49919da991482ec46daacde62113dad7e8.tar.xz
mpd-4d069b49919da991482ec46daacde62113dad7e8.zip
ogg, ffmpeg: try to decode, even when the stream is not seekable
Ogg and ffmpeg detection was disabled when the stream was not seekable, because the detection was too expensive. Since the curl input stream can now rewind the stream cheaply, we can re-enable detection on streams.
-rw-r--r--src/decoder/ffmpeg_plugin.c2
-rw-r--r--src/decoder/oggflac_plugin.c5
-rw-r--r--src/decoder/oggvorbis_plugin.c5
3 files changed, 1 insertions, 11 deletions
diff --git a/src/decoder/ffmpeg_plugin.c b/src/decoder/ffmpeg_plugin.c
index 5137d412f..96ea2e5be 100644
--- a/src/decoder/ffmpeg_plugin.c
+++ b/src/decoder/ffmpeg_plugin.c
@@ -210,7 +210,7 @@ ffmpeg_helper(struct input_stream *input, bool (*callback)(BasePtrs *ptrs),
static bool
ffmpeg_try_decode(struct input_stream *input)
{
- return input->seekable && ffmpeg_helper(input, NULL, NULL);
+ return ffmpeg_helper(input, NULL, NULL);
}
static enum decoder_command
diff --git a/src/decoder/oggflac_plugin.c b/src/decoder/oggflac_plugin.c
index 506f93f08..412de7081 100644
--- a/src/decoder/oggflac_plugin.c
+++ b/src/decoder/oggflac_plugin.c
@@ -281,11 +281,6 @@ static struct tag *oggflac_TagDup(const char *file)
static bool oggflac_try_decode(struct input_stream *inStream)
{
- if (!inStream->seekable)
- /* we cannot seek after the detection, so don't bother
- checking */
- return true;
-
return ogg_stream_type_detect(inStream) == FLAC;
}
diff --git a/src/decoder/oggvorbis_plugin.c b/src/decoder/oggvorbis_plugin.c
index 47192ae68..d5402aa66 100644
--- a/src/decoder/oggvorbis_plugin.c
+++ b/src/decoder/oggvorbis_plugin.c
@@ -364,11 +364,6 @@ static struct tag *oggvorbis_TagDup(const char *file)
static bool
oggvorbis_try_decode(struct input_stream *inStream)
{
- if (!inStream->seekable)
- /* we cannot seek after the detection, so don't bother
- checking */
- return true;
-
return ogg_stream_type_detect(inStream) == VORBIS;
}