mirror of
https://github.com/mpv-player/mpv
synced 2025-03-07 14:47:53 +00:00
dvdnav, tv: force-disable caching
On dvdnav, caching kind of works but not really. (Not our fault, at least not fully. It's due to libdvdnav being slightly misdesigned; see previous commit for some explanations.) The TV code is implemented in the demuxer, and the stream implementation is just a wrapper, so caching makes no sense here.
This commit is contained in:
parent
8510ddba4c
commit
653980ac3a
@ -290,6 +290,7 @@ static int open_internal(const stream_info_t *sinfo, struct stream *underlying,
|
||||
s->url = talloc_strdup(s, url);
|
||||
s->path = talloc_strdup(s, path);
|
||||
s->source = underlying;
|
||||
s->allow_caching = true;
|
||||
|
||||
// Parse options
|
||||
if (sinfo->priv_size) {
|
||||
@ -805,7 +806,7 @@ static int stream_enable_cache(stream_t **stream, int64_t size, int64_t min,
|
||||
{
|
||||
stream_t *orig = *stream;
|
||||
|
||||
if (orig->mode != STREAM_READ)
|
||||
if (orig->mode != STREAM_READ || !orig->allow_caching)
|
||||
return 1;
|
||||
|
||||
stream_t *cache = new_stream();
|
||||
|
@ -164,6 +164,7 @@ typedef struct stream {
|
||||
char *demuxer; // request demuxer to be used
|
||||
char *lavf_type; // name of expected demuxer type for lavf
|
||||
bool safe_origin; // used for playlists that can be opened safely
|
||||
bool allow_caching; // stream cache makes sense
|
||||
struct MPOpts *opts;
|
||||
|
||||
FILE *capture_file;
|
||||
|
@ -696,14 +696,12 @@ static int open_s(stream_t *stream, int mode)
|
||||
stream->type = STREAMTYPE_DVD;
|
||||
stream->demuxer = "lavf";
|
||||
stream->lavf_type = "mpeg";
|
||||
stream->allow_caching = false;
|
||||
|
||||
if (!stream->pos && p->track > 0)
|
||||
mp_msg(MSGT_OPEN, MSGL_ERR, "INIT ERROR: couldn't get init pos %s\r\n",
|
||||
dvdnav_err_to_string(priv->dvdnav));
|
||||
|
||||
mp_msg(MSGT_OPEN, MSGL_INFO, "Remember to disable mpv's cache when "
|
||||
"playing dvdnav:// streams (adding -no-cache to your command line)\n");
|
||||
|
||||
return STREAM_OK;
|
||||
}
|
||||
|
||||
|
@ -92,6 +92,7 @@ tv_stream_open (stream_t *stream, int mode)
|
||||
stream->type = STREAMTYPE_TV;
|
||||
stream->close=tv_stream_close;
|
||||
stream->demuxer = "tv";
|
||||
stream->allow_caching = false;
|
||||
|
||||
return STREAM_OK;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user