Commit ca1fc131 authored by Max Kellermann's avatar Max Kellermann

decoder_api: removed function decoder_get_uri()

Use input_stream.uri.
parent 9cb7760c
...@@ -162,7 +162,7 @@ append_uri_suffix(struct ffmpeg_stream *stream, const char *uri) ...@@ -162,7 +162,7 @@ append_uri_suffix(struct ffmpeg_stream *stream, const char *uri)
} }
static bool static bool
ffmpeg_helper(const char *uri, struct input_stream *input, ffmpeg_helper(struct input_stream *input,
bool (*callback)(struct ffmpeg_context *ctx), bool (*callback)(struct ffmpeg_context *ctx),
struct ffmpeg_context *ctx) struct ffmpeg_context *ctx)
{ {
...@@ -175,8 +175,8 @@ ffmpeg_helper(const char *uri, struct input_stream *input, ...@@ -175,8 +175,8 @@ ffmpeg_helper(const char *uri, struct input_stream *input,
}; };
bool ret; bool ret;
if (uri != NULL) if (input->uri != NULL)
append_uri_suffix(&stream, uri); append_uri_suffix(&stream, input->uri);
stream.input = input; stream.input = input;
if (ctx && ctx->decoder) { if (ctx && ctx->decoder) {
...@@ -385,8 +385,7 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input) ...@@ -385,8 +385,7 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input)
ctx.input = input; ctx.input = input;
ctx.decoder = decoder; ctx.decoder = decoder;
ffmpeg_helper(decoder_get_uri(decoder), input, ffmpeg_helper(input, ffmpeg_decode_internal, &ctx);
ffmpeg_decode_internal, &ctx);
} }
#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(31<<8)+0) #if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(31<<8)+0)
...@@ -459,7 +458,7 @@ ffmpeg_stream_tag(struct input_stream *is) ...@@ -459,7 +458,7 @@ ffmpeg_stream_tag(struct input_stream *is)
ctx.decoder = NULL; ctx.decoder = NULL;
ctx.tag = tag_new(); ctx.tag = tag_new();
ret = ffmpeg_helper(NULL, is, ffmpeg_tag_internal, &ctx); ret = ffmpeg_helper(is, ffmpeg_tag_internal, &ctx);
if (!ret) { if (!ret) {
tag_free(ctx.tag); tag_free(ctx.tag);
ctx.tag = NULL; ctx.tag = NULL;
......
...@@ -245,19 +245,10 @@ vorbis_send_comments(struct decoder *decoder, struct input_stream *is, ...@@ -245,19 +245,10 @@ vorbis_send_comments(struct decoder *decoder, struct input_stream *is,
} }
static bool static bool
oggvorbis_seekable(struct decoder *decoder) oggvorbis_seekable(const struct input_stream *is)
{ {
char *uri; return is->seekable &&
bool seekable; (is->uri == NULL || !uri_has_scheme(is->uri));
uri = decoder_get_uri(decoder);
/* disable seeking on remote streams, because libvorbis seeks
around like crazy, and due to being very expensive, this
delays song playback by 10 or 20 seconds */
seekable = !uri_has_scheme(uri);
g_free(uri);
return seekable;
} }
/* public */ /* public */
...@@ -289,7 +280,7 @@ vorbis_stream_decode(struct decoder *decoder, ...@@ -289,7 +280,7 @@ vorbis_stream_decode(struct decoder *decoder,
data.decoder = decoder; data.decoder = decoder;
data.input_stream = input_stream; data.input_stream = input_stream;
data.seekable = input_stream->seekable && oggvorbis_seekable(decoder); data.seekable = oggvorbis_seekable(input_stream);
callbacks.read_func = ogg_read_cb; callbacks.read_func = ogg_read_cb;
callbacks.seek_func = ogg_seek_cb; callbacks.seek_func = ogg_seek_cb;
......
...@@ -466,7 +466,6 @@ static struct input_stream * ...@@ -466,7 +466,6 @@ static struct input_stream *
wavpack_open_wvc(struct decoder *decoder, struct wavpack_input *wpi) wavpack_open_wvc(struct decoder *decoder, struct wavpack_input *wpi)
{ {
struct input_stream *is_wvc; struct input_stream *is_wvc;
char *utf8url;
char *wvc_url = NULL; char *wvc_url = NULL;
char first_byte; char first_byte;
size_t nbytes; size_t nbytes;
...@@ -475,14 +474,10 @@ wavpack_open_wvc(struct decoder *decoder, struct wavpack_input *wpi) ...@@ -475,14 +474,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 :/
*/ */
utf8url = decoder_get_uri(decoder); if (wpi->is->uri == NULL)
if (utf8url == NULL) {
return false; return false;
}
wvc_url = g_strconcat(utf8url, "c", NULL);
g_free(utf8url);
wvc_url = g_strconcat(wpi->is->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);
......
...@@ -79,15 +79,6 @@ decoder_initialized(struct decoder *decoder, ...@@ -79,15 +79,6 @@ decoder_initialized(struct decoder *decoder,
&af_string)); &af_string));
} }
char *decoder_get_uri(G_GNUC_UNUSED struct decoder *decoder)
{
const struct decoder_control *dc = decoder->dc;
assert(dc->pipe != NULL);
return song_get_uri(dc->song);
}
enum decoder_command decoder_get_command(G_GNUC_UNUSED struct decoder * decoder) enum decoder_command decoder_get_command(G_GNUC_UNUSED struct decoder * decoder)
{ {
const struct decoder_control *dc = decoder->dc; const struct decoder_control *dc = decoder->dc;
......
...@@ -54,15 +54,6 @@ decoder_initialized(struct decoder *decoder, ...@@ -54,15 +54,6 @@ decoder_initialized(struct decoder *decoder,
bool seekable, float total_time); bool seekable, float total_time);
/** /**
* Returns the URI of the current song in UTF-8 encoding.
*
* @param decoder the decoder object
* @return an allocated string which must be freed with g_free()
*/
char *
decoder_get_uri(struct decoder *decoder);
/**
* Determines the pending decoder command. * Determines the pending decoder command.
* *
* @param decoder the decoder object * @param decoder the decoder object
......
...@@ -64,11 +64,6 @@ decoder_initialized(G_GNUC_UNUSED struct decoder *decoder, ...@@ -64,11 +64,6 @@ decoder_initialized(G_GNUC_UNUSED struct decoder *decoder,
{ {
} }
char *decoder_get_uri(G_GNUC_UNUSED struct decoder *decoder)
{
return NULL;
}
enum decoder_command enum decoder_command
decoder_get_command(G_GNUC_UNUSED struct decoder *decoder) decoder_get_command(G_GNUC_UNUSED struct decoder *decoder)
{ {
......
...@@ -85,11 +85,6 @@ decoder_initialized(struct decoder *decoder, ...@@ -85,11 +85,6 @@ decoder_initialized(struct decoder *decoder,
decoder->initialized = true; decoder->initialized = true;
} }
char *decoder_get_uri(struct decoder *decoder)
{
return g_strdup(decoder->uri);
}
enum decoder_command enum decoder_command
decoder_get_command(G_GNUC_UNUSED struct decoder *decoder) decoder_get_command(G_GNUC_UNUSED struct decoder *decoder)
{ {
......
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