音频流的 滤镜是通过 configure_audio_filters()
函数来创建的,因为 ffplay
为了代码的通用性,即便命令行参数不使用滤镜,AVFrame
也会过一遍 空滤镜做下样子。
configure_audio_filters()
函数的流程图如下:
configure_audio_filters()
函数的定义如下:
static int configure_audio_filters(VideoState *is, const char *afilters, int force_output_format){....}
下面讲解一下这个函数的参数。
VideoState *is
,是 ffplay 播放器的全局管理器。
char *afilters
,是滤镜字符串,例如 下面的命令:
ffplay -af "atempo=2.0" -i juren-5s.mp4
"atempo=2.0"
这个字符串就会赋值给 afilters
。
int force_output_format
,代表是否强制把 buffersink
出口滤镜的音频帧采样等