我正在浏览集成在 FFMPEG 中的 HEVC 解码器。我实际上是在尝试了解它的流程和工作方式。
通过流,我的意思是代码中读取输入 .bin 文件的各种参数的部分。比如它在哪里读取分辨率,它在哪里决定它需要播放的 fps,输出显示格式是 yuv420p 等。
最初我怀疑是位于/libavformat/hevcdec.c
In this file 的 hevc 的 demuxer 执行输入文件读取工作。有一个探测函数,用于检测在解码输入 bin 流时选择哪个解码器。此外,我们有一个FF_DEF_RAWVIDEO_DEMUXER
. 从输入文件中读取的分辨率和其他参数是否在此函数中?
其次,我怀疑hevc解析器位于:/libavcodec/hevc_parser.c
但在这里我认为它只是解析帧数据,即找到帧尾。那么,我的这个假设对吗?
任何建议或任何预测都会对我很有帮助。请提出您宝贵的建议。提前致谢。