aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/oggvorbis_plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/decoder/oggvorbis_plugin.c')
-rw-r--r--src/decoder/oggvorbis_plugin.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/decoder/oggvorbis_plugin.c b/src/decoder/oggvorbis_plugin.c
index 32660c2c0..cc6f8f119 100644
--- a/src/decoder/oggvorbis_plugin.c
+++ b/src/decoder/oggvorbis_plugin.c
@@ -214,6 +214,13 @@ oggvorbis_decode(struct decoder *decoder, struct input_stream *inStream)
const char *errorStr;
bool initialized = false;
+ if (ogg_stream_type_detect(inStream) != VORBIS)
+ return false;
+
+ /* rewind the stream, because ogg_stream_type_detect() has
+ moved it */
+ input_stream_seek(inStream, 0, SEEK_SET);
+
data.inStream = inStream;
data.decoder = decoder;
@@ -351,12 +358,6 @@ static struct tag *oggvorbis_TagDup(const char *file)
return ret;
}
-static bool
-oggvorbis_try_decode(struct input_stream *inStream)
-{
- return ogg_stream_type_detect(inStream) == VORBIS;
-}
-
static const char *const oggvorbis_Suffixes[] = { "ogg","oga", NULL };
static const char *const oggvorbis_MimeTypes[] = {
"application/ogg",
@@ -367,7 +368,6 @@ static const char *const oggvorbis_MimeTypes[] = {
const struct decoder_plugin oggvorbisPlugin = {
.name = "oggvorbis",
- .try_decode = oggvorbis_try_decode,
.stream_decode = oggvorbis_decode,
.tag_dup = oggvorbis_TagDup,
.suffixes = oggvorbis_Suffixes,