aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/oggflac_plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/decoder/oggflac_plugin.c')
-rw-r--r--src/decoder/oggflac_plugin.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/decoder/oggflac_plugin.c b/src/decoder/oggflac_plugin.c
index 3f8d640f3..ffd622600 100644
--- a/src/decoder/oggflac_plugin.c
+++ b/src/decoder/oggflac_plugin.c
@@ -237,6 +237,12 @@ full_decoder_init_and_read_metadata(struct flac_data *data,
goto fail;
}
+ if (!data->have_stream_info) {
+ OggFLAC__seekable_stream_decoder_delete(decoder);
+ g_warning("no STREAMINFO packet found");
+ return NULL;
+ }
+
return decoder;
fail:
@@ -316,7 +322,9 @@ oggflac_decode(struct decoder * mpd_decoder, struct input_stream *input_stream)
}
decoder_initialized(mpd_decoder, &data.audio_format,
- input_stream->seekable, data.total_time);
+ input_stream->seekable,
+ (float)data.stream_info.total_samples /
+ (float)data.audio_format.sample_rate);
while (true) {
OggFLAC__seekable_stream_decoder_process_single(decoder);