From f77515ebafb9fdfd177671b848211824e654206f Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 7 Sep 2018 21:41:52 +0200 Subject: stream_libarchive: remove base filename stuff Apparently this was so that when playing a video file from a .rar file, it would load external subtitles with the same name (instead of looking for mpv's rar:// mangled URL). This was requested on github almost 5 years ago. Seems like a weird feature, and I don't care. Drop it, because it complicates some in progress change. --- demux/demux.c | 18 ------------------ player/loadfile.c | 9 +-------- stream/stream.h | 3 --- stream/stream_libarchive.c | 3 --- 4 files changed, 1 insertion(+), 32 deletions(-) diff --git a/demux/demux.c b/demux/demux.c index daf59ff8f4..6c4f9542f8 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -223,8 +223,6 @@ struct demux_internal { int64_t last_speed_query; uint64_t bytes_per_second; int64_t next_cache_update; - // Updated during init only. - char *stream_base_filename; // -- Access from demuxer thread only bool enable_recording; @@ -2241,16 +2239,6 @@ void demux_update(demuxer_t *demuxer) pthread_mutex_unlock(&in->lock); } -static void demux_init_cache(struct demuxer *demuxer) -{ - struct demux_internal *in = demuxer->in; - struct stream *stream = demuxer->stream; - - char *base = NULL; - stream_control(stream, STREAM_CTRL_GET_BASE_FILENAME, &base); - in->stream_base_filename = talloc_steal(demuxer, base); -} - static void demux_init_cuesheet(struct demuxer *demuxer) { char *cue = mp_tags_get_str(demuxer->metadata, "cuesheet"); @@ -2414,7 +2402,6 @@ static struct demuxer *open_given_type(struct mpv_global *global, in->d_thread->partially_seekable = true; } demux_init_cuesheet(in->d_thread); - demux_init_cache(demuxer); demux_init_ccs(demuxer, opts); demux_copy(in->d_user, in->d_thread); in->duration = in->d_thread->duration; @@ -3136,11 +3123,6 @@ static int cached_stream_control(struct demux_internal *in, int cmd, void *arg) return STREAM_UNSUPPORTED; *(int64_t *)arg = in->stream_size; return STREAM_OK; - case STREAM_CTRL_GET_BASE_FILENAME: - if (!in->stream_base_filename) - return STREAM_UNSUPPORTED; - *(char **)arg = talloc_strdup(NULL, in->stream_base_filename); - return STREAM_OK; } return STREAM_ERROR; } diff --git a/player/loadfile.c b/player/loadfile.c index f55dd29f34..bb7365c641 100644 --- a/player/loadfile.c +++ b/player/loadfile.c @@ -819,14 +819,7 @@ void autoload_external_files(struct MPContext *mpctx, struct mp_cancel *cancel) return; void *tmp = talloc_new(NULL); - char *base_filename = mpctx->filename; - char *stream_filename = NULL; - if (mpctx->demuxer) { - if (demux_stream_control(mpctx->demuxer, STREAM_CTRL_GET_BASE_FILENAME, - &stream_filename) > 0) - base_filename = talloc_steal(tmp, stream_filename); - } - struct subfn *list = find_external_files(mpctx->global, base_filename, + struct subfn *list = find_external_files(mpctx->global, mpctx->filename, mpctx->opts); talloc_steal(tmp, list); diff --git a/stream/stream.h b/stream/stream.h index 589e6b35cc..c423d70096 100644 --- a/stream/stream.h +++ b/stream/stream.h @@ -54,9 +54,6 @@ enum stream_ctrl { // stream_memory.c STREAM_CTRL_SET_CONTENTS, - // stream_libarchive.c - STREAM_CTRL_GET_BASE_FILENAME, - // Certain network protocols STREAM_CTRL_AVSEEK, STREAM_CTRL_HAS_AVSEEK, diff --git a/stream/stream_libarchive.c b/stream/stream_libarchive.c index 54ebc64b98..bc1fb94d12 100644 --- a/stream/stream_libarchive.c +++ b/stream/stream_libarchive.c @@ -472,9 +472,6 @@ static int archive_entry_control(stream_t *s, int cmd, void *arg) { struct priv *p = s->priv; switch (cmd) { - case STREAM_CTRL_GET_BASE_FILENAME: - *(char **)arg = talloc_strdup(NULL, p->src->url); - return STREAM_OK; case STREAM_CTRL_GET_SIZE: if (p->entry_size < 0) break; -- cgit v1.2.3