ijkplayer笔记

硬解码

IJKVideoToolBoxSync.h

  • videotoolbox_sync_decode_frame // 不断循环取AVPacket
  • decode_video->decode_video_internal //取到AVPacket后执行硬解码
  • VTDecoderCallback
  • SortQueuePush ->Ijk_VideoToolBox_Opaque->m_sort_queue(sort_queue)//用于每次获取大pts的帧
  • QueuePicture->queue_picture->frame_queue_peek_writable(&is->pictq)->frame_queue_push(&is->pictq); //加入渲染queue
image.png

static int queue_picture(FFPlayer *ffp, AVFrame *src_frame, double pts, double duration, int64_t pos, int serial)