之前理解的不够深入,这次在更新一下流程图。
纯干货:
最近在看ijkplayer,顺便就把他的ffmplayer流程整理一下,就当作对自己看代码的总结吧。在这里我只是梳理了一下整个ffplayer的框架,顺着这个框架,再去看代码就会清晰明了很多。
和大多数player一样,ffplayer有一个独立的read_thread读取数据,有一个独立的audio_thread用于解码音频数据以及render。
另外video_thread用于解码videoframe,video_refresh_thread用于刷新。这两个线程的分开是因为video的decoder和render都会占用比较大的资源,把他们分开了就不会互相影响。