mirror of
https://github.com/mpv-player/mpv
synced 2024-12-11 17:37:23 +00:00
Change code to allow playing a stream even if enabling the cache failed
while still handling it when the user aborts the cache fill. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30402 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
0e86058912
commit
4e28b4bc9e
@ -3281,10 +3281,12 @@ if(mpctx->stream->type==STREAMTYPE_DVDNAV){
|
||||
// CACHE2: initial prefill: 20% later: 5% (should be set by -cacheopts)
|
||||
goto_enable_cache:
|
||||
if(stream_cache_size>0){
|
||||
int res;
|
||||
current_module="enable_cache";
|
||||
if(!stream_enable_cache(mpctx->stream,stream_cache_size*1024,
|
||||
res = stream_enable_cache(mpctx->stream,stream_cache_size*1024,
|
||||
stream_cache_size*1024*(stream_cache_min_percent / 100.0),
|
||||
stream_cache_size*1024*(stream_cache_seek_min_percent / 100.0)))
|
||||
stream_cache_size*1024*(stream_cache_seek_min_percent / 100.0));
|
||||
if(res == 0)
|
||||
if((mpctx->eof = libmpdemux_was_interrupted(PT_NEXT_ENTRY))) goto goto_next_file;
|
||||
}
|
||||
|
||||
|
@ -313,6 +313,9 @@ static void exit_sighandler(int x){
|
||||
exit(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* \return 1 on success, 0 if the function was interrupted and -1 on error
|
||||
*/
|
||||
int stream_enable_cache(stream_t *stream,int size,int min,int seek_limit){
|
||||
int ss = stream->sector_size ? stream->sector_size : STREAM_BUFFER_SIZE;
|
||||
cache_vars_t* s;
|
||||
@ -323,7 +326,7 @@ int stream_enable_cache(stream_t *stream,int size,int min,int seek_limit){
|
||||
}
|
||||
|
||||
s=cache_init(size,ss);
|
||||
if(s == NULL) return 0;
|
||||
if(s == NULL) return -1;
|
||||
stream->cache_data=s;
|
||||
s->stream=stream; // callback
|
||||
s->seek_limit=seek_limit;
|
||||
@ -362,7 +365,7 @@ int stream_enable_cache(stream_t *stream,int size,int min,int seek_limit){
|
||||
if (!stream->cache_pid) {
|
||||
mp_msg(MSGT_CACHE, MSGL_ERR,
|
||||
"Starting cache process/thread failed: %s.\n", strerror(errno));
|
||||
return 0;
|
||||
return -1;
|
||||
}
|
||||
// wait until cache is filled at least prefill_init %
|
||||
mp_msg(MSGT_CACHE,MSGL_V,"CACHE_PRE_INIT: %"PRId64" [%"PRId64"] %"PRId64" pre:%d eof:%d \n",
|
||||
|
Loading…
Reference in New Issue
Block a user