Commit 4d6d372a authored by Max Kellermann's avatar Max Kellermann

decoder/vorbis: use single global ov_callbacks constant

Initialize the ov_callbacks struct at compile time.
parent 0aeec905
...@@ -97,6 +97,13 @@ static long ogg_tell_cb(void *vdata) ...@@ -97,6 +97,13 @@ static long ogg_tell_cb(void *vdata)
return (long)data->input_stream->offset; return (long)data->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 * static const char *
vorbis_comment_value(const char *comment, const char *needle) vorbis_comment_value(const char *comment, const char *needle)
{ {
...@@ -241,7 +248,6 @@ vorbis_stream_decode(struct decoder *decoder, ...@@ -241,7 +248,6 @@ vorbis_stream_decode(struct decoder *decoder,
struct input_stream *input_stream) struct input_stream *input_stream)
{ {
OggVorbis_File vf; OggVorbis_File vf;
ov_callbacks callbacks;
OggCallbackData data; OggCallbackData data;
struct audio_format audio_format; struct audio_format audio_format;
int current_section; int current_section;
...@@ -266,13 +272,9 @@ vorbis_stream_decode(struct decoder *decoder, ...@@ -266,13 +272,9 @@ vorbis_stream_decode(struct decoder *decoder,
data.input_stream = input_stream; data.input_stream = input_stream;
data.seekable = input_stream->seekable && oggvorbis_seekable(decoder); data.seekable = input_stream->seekable && oggvorbis_seekable(decoder);
callbacks.read_func = ogg_read_cb; if ((ret = ov_open_callbacks(&data, &vf, NULL, 0,
callbacks.seek_func = ogg_seek_cb; vorbis_is_callbacks)) < 0) {
callbacks.close_func = ogg_close_cb;
callbacks.tell_func = ogg_tell_cb;
if ((ret = ov_open_callbacks(&data, &vf, NULL, 0, callbacks)) < 0) {
const char *error; const char *error;
if (decoder_get_command(decoder) != DECODE_COMMAND_NONE) if (decoder_get_command(decoder) != DECODE_COMMAND_NONE)
return; return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment