decoder_api: removed function decoder_get_uri()
Use input_stream.uri.
This commit is contained in:
parent
9cb7760c5e
commit
ca1fc13116
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
*
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user