From 2cc59816a6e6304e643bc5c7ca055dd2567cba9e Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 1 Jan 2008 10:09:56 +0000 Subject: Simplify decode cleanup logic a bit DECODE_STATE_STOP is always set as dc->state, and dc->stop is always cleared. So handle it in decodeStart once rather than doing it in every plugin. While we're at it, fix a long-standing (but difficult to trigger) bug in mpc_decode where we failed to return if mpc_decoder_initialize() fails. git-svn-id: https://svn.musicpd.org/mpd/trunk@7122 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/inputPlugins/oggvorbis_plugin.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) (limited to 'src/inputPlugins/oggvorbis_plugin.c') diff --git a/src/inputPlugins/oggvorbis_plugin.c b/src/inputPlugins/oggvorbis_plugin.c index 622e3807b..05c665386 100644 --- a/src/inputPlugins/oggvorbis_plugin.c +++ b/src/inputPlugins/oggvorbis_plugin.c @@ -92,11 +92,10 @@ static int ogg_seek_cb(void *vdata, ogg_int64_t offset, int whence) return seekInputStream(data->inStream, offset, whence); } +/* TODO: check Ogg libraries API and see if we can just not have this func */ static int ogg_close_cb(void *vdata) { - OggCallbackData *data = (OggCallbackData *) vdata; - - return closeInputStream(data->inStream); + return 0; } static long ogg_tell_cb(void *vdata) @@ -253,7 +252,6 @@ static int oggvorbis_decode(OutputBuffer * cb, DecoderControl * dc, callbacks.close_func = ogg_close_cb; callbacks.tell_func = ogg_tell_cb; if ((ret = ov_open_callbacks(&data, &vf, NULL, 0, callbacks)) < 0) { - closeInputStream(inStream); if (!dc->stop) { switch (ret) { case OV_EREAD: @@ -278,9 +276,6 @@ static int oggvorbis_decode(OutputBuffer * cb, DecoderControl * dc, ERROR("Error decoding Ogg Vorbis stream: %s\n", errorStr); return -1; - } else { - dc->state = DECODE_STATE_STOP; - dc->stop = 0; } return 0; } @@ -358,12 +353,6 @@ static int oggvorbis_decode(OutputBuffer * cb, DecoderControl * dc, flushOutputBuffer(cb); - if (dc->stop) { - dc->state = DECODE_STATE_STOP; - dc->stop = 0; - } else - dc->state = DECODE_STATE_STOP; - return 0; } -- cgit v1.2.3