火车票网站建设多少,如何发布网站到域名,wordpress版本升级,官方网站aspcms介绍 在本系列#xff0c;我打算花大篇幅讲解我的 gitee 项目音视频播放器#xff0c;在这个项目#xff0c;您可以学到音视频解封装#xff0c;解码#xff0c;SDL渲染相关的知识。您对源代码感兴趣的话#xff0c;请查看基于FFmpeg和SDL的音视频播放器
如果您不理解本… 介绍 在本系列我打算花大篇幅讲解我的 gitee 项目音视频播放器在这个项目您可以学到音视频解封装解码SDL渲染相关的知识。您对源代码感兴趣的话请查看基于FFmpeg和SDL的音视频播放器
如果您不理解本文可参考我的前一篇文章音视频项目—基于FFmpeg和SDL的音视频播放器解析十六 解析 接着上文我们继续解析 fill_audio_pcm 函数
av_fast_malloc(is-audio_buf1, is-audio_buf1_size, out_bytes);
int len2 swr_convert(is-swr_ctx, out, out_samples, in, frame-nb_samples);
if(len2 0){return;
}
is-audio_buf is-audio_buf1;
is-audio_buf_size av_samples_get_buffer_size(NULL, is-dst_tgt.channels, len2, is-dst_tgt.fmt, 1);
av_fast_malloc 重新分配 buffer 的大小。
swr_convert 切换采样率
然后给一些变量赋值 }else {audio_size av_samples_get_buffer_size(NULL, is-dst_tgt.channels, frame-nb_samples, (enum AVSampleFormat) frame-format, 1);av_fast_malloc(is-audio_buf1, is-audio_buf1_size, audio_size);is-audio_buf is-audio_buf1;is-audio_buf_size audio_size;memcpy(is-audio_buf, frame-data[0], audio_size);
}
如果 swrcontext 没有分配成功则进行上面的操作。
好了今天先讲这么多剩余的下文解析。
欲知后事如何请听下回分解。