Again... Why do we need all these options? Isn't it enough to have buffer
all or current?

If you want something else add a config file where you can specify per
protocol and other options special behavior.

We need to move a lot of protocol specific behavior out if code..
On Oct 25, 2013 8:42 AM, "ulion" <notifications@github.com> wrote:

> In xbmc/filesystem/File.cpp:
>
> >
> >      if (m_flags & READ_CACHED)
> >      {
> >        // for internet stream, if it contains multiple stream, file cache need handle it specially.
> > -      m_pFile = new CFileCache((m_flags & READ_MULTI_STREAM)!=0 && isInternetStream);
> > +      m_pFile = new CFileCache((m_flags & READ_MULTI_STREAM) != 0 && URIUtils::IsInternetStream(url, true));
>
> yes, it's a little mess and I'm confused too. but the main purpose is to
> give space when we want add new buffer level while user need not change the
> existed setting.
> or try this:
> bitfields group 1:
> 0: no buffer
> 1: buffer true internet filesystems
> 2: buffer all internet filesystems
> 3: buffer all filesystems
>
> bitfields group 2:
> 0: no double-buffer
> 1: reserved for auto-detect files need double-buffer.
> 2: double-buffer for all mp4/avi files
> 3: double-buffer for all files type
> 4: <-- this one is special bitfield with internet filesystem detect can
> combine with the previous 3 levels of double-buffer result 5,6,7
>
> result buffer level = (bitfield 1) << 4 | (bitfield 2)
>
> —
> Reply to this email directly or view it on GitHub<https://github.com/xbmc/xbmc/pull/3429/files#r7209198>
> .
>