decoder/wavpack: fixed WVC URI

Pass the current URI to wavpack_open_wvc().
This commit is contained in:
Max Kellermann 2010-01-20 12:08:44 +01:00
parent 2acad9fe1e
commit acb0ff1ea8

View File

@ -463,7 +463,8 @@ wavpack_input_init(struct wavpack_input *isp, struct decoder *decoder,
} }
static struct input_stream * static struct input_stream *
wavpack_open_wvc(struct decoder *decoder, struct wavpack_input *wpi) wavpack_open_wvc(struct decoder *decoder, const char *uri,
struct wavpack_input *wpi)
{ {
struct input_stream *is_wvc; struct input_stream *is_wvc;
char *wvc_url = NULL; char *wvc_url = NULL;
@ -474,10 +475,10 @@ wavpack_open_wvc(struct decoder *decoder, struct wavpack_input *wpi)
* As we use dc->utf8url, this function will be bad for * As we use dc->utf8url, this function will be bad for
* single files. utf8url is not absolute file path :/ * single files. utf8url is not absolute file path :/
*/ */
if (wpi->is->uri == NULL) if (uri == NULL)
return false; return false;
wvc_url = g_strconcat(wpi->is->uri, "c", NULL); wvc_url = g_strconcat(uri, "c", NULL);
is_wvc = input_stream_open(wvc_url, NULL); is_wvc = input_stream_open(wvc_url, NULL);
g_free(wvc_url); g_free(wvc_url);
@ -515,7 +516,7 @@ wavpack_streamdecode(struct decoder * decoder, struct input_stream *is)
struct wavpack_input isp, isp_wvc; struct wavpack_input isp, isp_wvc;
bool can_seek = is->seekable; bool can_seek = is->seekable;
is_wvc = wavpack_open_wvc(decoder, &isp_wvc); is_wvc = wavpack_open_wvc(decoder, is->uri, &isp_wvc);
if (is_wvc != NULL) { if (is_wvc != NULL) {
open_flags |= OPEN_WVC; open_flags |= OPEN_WVC;
can_seek &= is_wvc->seekable; can_seek &= is_wvc->seekable;