前言
视频播放涉及数据读入和输出,缓存数据,以及音画同步相关操作。
相关技术涉及,多线程操作,队列等。
按之前的逻辑,逐步深入,会有不连贯性,这里直接使用最终方案的分解。
线程
pthread玩C/C++的应该都用过。
pthread_create传入一个指针函数,处理好线程内操作就好。
队列
Queue在C里面需要自己来实现。这个结构不算难,应该很快就写出来了。
读取
读取方法这个方法是读取线程的指针函数,FFInstance是自定义的结构体,存储了视频每条轨道的信息,默认只有音频和视频两条轨道,各自有个缓存队列缓存各自的数据,其他是每个轨道特有参数。
输出
输出方法这个方法是每天轨道的输出线程的指针函数,Consumer是输出具体操作的结构,包含了一个FFInstance,以及操作类型,根据操作类型判断是播放还是其他操作(当前只有play方法是有完整实现的)。
本文作者:刘小宇(Laffey)
本文为原创作品,未经允许不得转载。
网友评论