求解ffmpeg中的两个变量priv_data,opaque!!!!!!!!
AVFormatContext 中的 void *priv_data; //字面意思应该是私有数据
AVIOContext 中的 void *opaque; ////字面意思应该是不透明数据之类的吧
这两个变量用来什么的?含义是什么?代码貌似表明这个两个变量用得挺频繁的!
[解决办法]
AVFormatContext这个结构实现了对具体的文件格式分离器的封装
其中void *priv_data 指向了具体的某种文件格式的一些私有数据
举个例子,比如你播放一个AVI文件,那么个这个void *priv_data就关于指向AVI的一些私有数据
同样的AVIOContext 实现了对文件IO的封装 (其实ffmpeg把文件也当做url来处理了)
void *opaque字面意思确实是不透明,他指向了具体的文件读取实现形式的一些数据结构。比如是从本地播放,还是从rtmp服务器,或者从mms服务器,那么void *opaque是不同的