diff options
-rw-r--r-- | src/decoder/vorbis_decoder_plugin.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/decoder/vorbis_decoder_plugin.c b/src/decoder/vorbis_decoder_plugin.c index 65d86cdc8..cf05626f2 100644 --- a/src/decoder/vorbis_decoder_plugin.c +++ b/src/decoder/vorbis_decoder_plugin.c @@ -97,6 +97,13 @@ static long ogg_tell_cb(void *data) return (long)vis->input_stream->offset; } +static const ov_callbacks vorbis_is_callbacks = { + .read_func = ogg_read_cb, + .seek_func = ogg_seek_cb, + .close_func = ogg_close_cb, + .tell_func = ogg_tell_cb, +}; + static const char * vorbis_strerror(int code) { @@ -251,7 +258,6 @@ vorbis_stream_decode(struct decoder *decoder, { GError *error = NULL; OggVorbis_File vf; - ov_callbacks callbacks; struct vorbis_input_stream vis; struct audio_format audio_format; float total_time; @@ -275,11 +281,8 @@ vorbis_stream_decode(struct decoder *decoder, vis.input_stream = input_stream; vis.seekable = oggvorbis_seekable(input_stream); - callbacks.read_func = ogg_read_cb; - callbacks.seek_func = ogg_seek_cb; - callbacks.close_func = ogg_close_cb; - callbacks.tell_func = ogg_tell_cb; - if ((ret = ov_open_callbacks(&vis, &vf, NULL, 0, callbacks)) < 0) { + if ((ret = ov_open_callbacks(&vis, &vf, NULL, 0, + vorbis_is_callbacks)) < 0) { if (decoder_get_command(decoder) != DECODE_COMMAND_NONE) return; |