参考:刻意练习FFmpeg系列:通过思维导图快速了解FFmpeg源码整体结构体 - 知乎
AVCodecContext 中包含一个 AVCodec* codec指针,具体是什么codec由用户指定,ffmpeg提供的codec 均是 AVCodec,AVCodec中规定了encode 和 decode 函数指针,所有的 codec 都要把自己的实现复制给这两个指针。
应用编码时只需要面向AVCodecContext的接口即可:
编码:
ff_alloc_packet2
ff_alloc_packet
avcodec_encode_audio2
avcodec_encode_video2
avcodec_encode_subtitle
avcodec_send_frame
avcodec_receive_packet
解码:
ff_decode_bsfs_init
ff_decode_get_packet
avcodec_send_packet
avcodec_receive_frame
avcodec_decode_video2
avcodec_decode_audio4
例如: