1.Mplayer Cache机制概述
Mplayer的cache机制作为播放文件或URL的预缓冲。对速度满的媒体特别有用。MPlayer可以通过相应的命令选项控制缓冲的大小,是否需要设置缓冲等。以下列出Mplyaer为用户提供的几个关于cache的命令选项。几个选项分别是:
-cache XXX---该选项用于指定cache的大小为XXXkbytes;
-nocache----表示关闭缓存。
-cache-min XXX----表示当缓冲填充到总数的XXX/100%时开始播放。
-cache-seek-min XXX---如果查询到的位置处于从当前位置算起的缓存大小的(百分数)之内,mplayer等待填充缓存到此位置而不是执行流查询(默认是50)。
MPlayer的cache机制的实现依赖linux系统提供的进程复制函数fork();当用于需要启用cache功能后,MPlayer会调用fork函数复制当前进程,在进程表中创建一个新的表项,执行完全相同的代码。新的进程一旦创建成功,父进程用于文件的解码的播放,子进程用于维护cache。
图1.cache简要原理图
2.Mplayer Cache Data Structure
2.1.cache_vars_t
typedef struct {
unsigned char *buffer; // 缓存的基地址
int buffer_size; // 缓存大小
Mplayer的cache机制作为播放文件或URL的预缓冲。对速度满的媒体特别有用。MPlayer可以通过相应的命令选项控制缓冲的大小,是否需要设置缓冲等。以下列出Mplyaer为用户提供的几个关于cache的命令选项。几个选项分别是:
-cache XXX---该选项用于指定cache的大小为XXXkbytes;
-nocache----表示关闭缓存。
-cache-min XXX----表示当缓冲填充到总数的XXX/100%时开始播放。
-cache-seek-min XXX---如果查询到的位置处于从当前位置算起的缓存大小的(百分数)之内,mplayer等待填充缓存到此位置而不是执行流查询(默认是50)。
MPlayer的cache机制的实现依赖linux系统提供的进程复制函数fork();当用于需要启用cache功能后,MPlayer会调用fork函数复制当前进程,在进程表中创建一个新的表项,执行完全相同的代码。新的进程一旦创建成功,父进程用于文件的解码的播放,子进程用于维护cache。
图1.cache简要原理图
2.Mplayer Cache Data Structure
2.1.cache_vars_t
typedef struct {
unsigned char *buffer; // 缓存的基地址
int buffer_size; // 缓存大小