ijkplayer源码分析 FrameQueue分析

前言

上一篇文章介绍了PacketQueue,本文介绍FrameQueue。

FrameQueue结构体

  1. FrameQueue结构体,持有queue数组,是基于环形队列实现的;
  2. rindex、windex、size、max_size和等待唤醒机制获取读写位置,利用环形队列最大限度节约了空间;
  3. 默认队列大小为16,最后由max_size = Math.min(max_size,FRAME_QUEUE_SIZE)来决定最大的元素个数;
  4. 其中keep_last表示是否保留上一个可读节点,在frame_queue_next中起作用,如果保留,则会设置rindex_shown为1,表示上一个结点是已读的。即队列中将会存储两个节点,上一个已读的和现在rindex指向的未读结点。
#define FRAME_QUEUE_SIZE 16
typedef struct Fram

你可能感兴趣的:(音视频&进阶,ijkPlayer,源码分析)