Edit online

mpp_decoder 调用流程

mpp_decoder 调用流程:
  1. 在调用 mpp_decoder 的解码函数时,解码模块从 Packet manager 取一笔码流,同时从 Frame maneger 取一个空闲图像 buffer,对码流进行解码 并输出图像到图像 buffer。
  2. 解码后,解码模块将码流 buffer 归还 Packet manager,将解码图像 buffer 归还 Frame maneger。
  3. 为保证解码效率,建议调用者创建 3 个线程实现解码功能:

    • send data thread

      通过 mpp_decoder_get_packet 和 mpp_decoder_put_packet 这两个接口把码流数据送到 packet 管理模块

    • decode thread

      通过调用 mpp_decoder_decode 控制解码,解码库从 packet 管理模块取一笔码流数据,解码完成后,将视频帧送入 frame 管理模块

    • render thread

      通过 mpp_decoder_get_frame 和 mpp_decoder_put_frame 两个接口从 frame 管理模块获取视频帧,并控制该帧显示时机

      ../../images/mpp_decoder_flow1.png
      1. mpp_decoder 调用流程