decoder_api: removed function decoder_get_uri()

Use input_stream.uri.
This commit is contained in:
Max Kellermann 2010-01-18 10:21:57 +01:00
parent 9cb7760c5e
commit ca1fc13116
7 changed files with 11 additions and 54 deletions

View File

@ -162,7 +162,7 @@ append_uri_suffix(struct ffmpeg_stream *stream, const char *uri)
}
static bool
ffmpeg_helper(const char *uri, struct input_stream *input,
ffmpeg_helper(struct input_stream *input,
bool (*callback)(struct ffmpeg_context *ctx),
struct ffmpeg_context *ctx)
{
@ -175,8 +175,8 @@ ffmpeg_helper(const char *uri, struct input_stream *input,
};
bool ret;
if (uri != NULL)
append_uri_suffix(&stream, uri);
if (input->uri != NULL)
append_uri_suffix(&stream, input->uri);
stream.input = input;
if (ctx && ctx->decoder) {
@ -385,8 +385,7 @@ ffmpeg_decode(struct decoder *decoder, struct input_stream *input)
ctx.input = input;
ctx.decoder = decoder;
ffmpeg_helper(decoder_get_uri(decoder), input,
ffmpeg_decode_internal, &ctx);
ffmpeg_helper(input, ffmpeg_decode_internal, &ctx);
}
#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(31<<8)+0)
@ -459,7 +458,7 @@ ffmpeg_stream_tag(struct input_stream *is)
ctx.decoder = NULL;
ctx.tag = tag_new();
ret = ffmpeg_helper(NULL, is, ffmpeg_tag_internal, &ctx);
ret = ffmpeg_helper(is, ffmpeg_tag_internal, &ctx);
if (!ret) {
tag_free(ctx.tag);
ctx.tag = NULL;

View File

@ -245,19 +245,10 @@ vorbis_send_comments(struct decoder *decoder, struct input_stream *is,
}
static bool
oggvorbis_seekable(struct decoder *decoder)
oggvorbis_seekable(const struct input_stream *is)
{
char *uri;
bool seekable;
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;
return is->seekable &&
(is->uri == NULL || !uri_has_scheme(is->uri));
}
/* public */
@ -289,7 +280,7 @@ vorbis_stream_decode(struct decoder *decoder,
data.decoder = decoder;
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.seek_func = ogg_seek_cb;

View File

@ -466,7 +466,6 @@ static struct input_stream *
wavpack_open_wvc(struct decoder *decoder, struct wavpack_input *wpi)
{
struct input_stream *is_wvc;
char *utf8url;
char *wvc_url = NULL;
char first_byte;
size_t nbytes;
@ -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
* single files. utf8url is not absolute file path :/
*/
utf8url = decoder_get_uri(decoder);
if (utf8url == NULL) {
if (wpi->is->uri == NULL)
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);
g_free(wvc_url);

View File

@ -79,15 +79,6 @@ decoder_initialized(struct decoder *decoder,
&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)
{
const struct decoder_control *dc = decoder->dc;

View File

@ -53,15 +53,6 @@ decoder_initialized(struct decoder *decoder,
const struct audio_format *audio_format,
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.
*

View File

@ -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
decoder_get_command(G_GNUC_UNUSED struct decoder *decoder)
{

View File

@ -85,11 +85,6 @@ decoder_initialized(struct decoder *decoder,
decoder->initialized = true;
}
char *decoder_get_uri(struct decoder *decoder)
{
return g_strdup(decoder->uri);
}
enum decoder_command
decoder_get_command(G_GNUC_UNUSED struct decoder *decoder)
{