aboutsummaryrefslogtreecommitdiffstats
path: root/src/inputPlugins/oggflac_plugin.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-08-26 08:27:07 +0200
committerMax Kellermann <max@duempel.org>2008-08-26 08:27:07 +0200
commit17e9cc84c5f94c94c71b2a808b57d4655ee21d12 (patch)
treefbb3c0e6ac5af307ae7e5a4ca4ca525f904d5740 /src/inputPlugins/oggflac_plugin.c
parent78c55e24324c881541a87cd0003c60f378a43d68 (diff)
downloadmpd-17e9cc84c5f94c94c71b2a808b57d4655ee21d12.tar.gz
mpd-17e9cc84c5f94c94c71b2a808b57d4655ee21d12.tar.xz
mpd-17e9cc84c5f94c94c71b2a808b57d4655ee21d12.zip
added decoder_seek_where() and decoder_seek_error()
Provide access to seeking for the decoder plugins; they have to know where to seek, and they need a way to tell us that seeking has failed.
Diffstat (limited to 'src/inputPlugins/oggflac_plugin.c')
-rw-r--r--src/inputPlugins/oggflac_plugin.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/inputPlugins/oggflac_plugin.c b/src/inputPlugins/oggflac_plugin.c
index 38474d7d0..10acf75fe 100644
--- a/src/inputPlugins/oggflac_plugin.c
+++ b/src/inputPlugins/oggflac_plugin.c
@@ -333,7 +333,6 @@ static unsigned int oggflac_try_decode(InputStream * inStream)
static int oggflac_decode(struct decoder * mpd_decoder, InputStream * inStream)
{
- DecoderControl *dc = mpd_decoder->dc;
OggFLAC__SeekableStreamDecoder *decoder = NULL;
FlacData data;
int ret = 0;
@@ -354,7 +353,7 @@ static int oggflac_decode(struct decoder * mpd_decoder, InputStream * inStream)
break;
}
if (decoder_get_command(mpd_decoder) == DECODE_COMMAND_SEEK) {
- FLAC__uint64 sampleToSeek = dc->seekWhere *
+ FLAC__uint64 sampleToSeek = decoder_seek_where(mpd_decoder) *
data.audio_format.sampleRate + 0.5;
if (OggFLAC__seekable_stream_decoder_seek_absolute
(decoder, sampleToSeek)) {
@@ -362,9 +361,9 @@ static int oggflac_decode(struct decoder * mpd_decoder, InputStream * inStream)
data.time = ((float)sampleToSeek) /
data.audio_format.sampleRate;
data.position = 0;
+ decoder_command_finished(mpd_decoder);
} else
- dc.seekError = 1;
- decoder_command_finished(mpd_decoder);
+ decoder_seek_error(mpd_decoder);
}
}