当前位置: 首页 > news >正文

网站开发安装天眼查河南建设网站公司

网站开发安装,天眼查河南建设网站公司,wordpress文章浏览数,中国工商银行官方网站登录1、使用swr_alloc()创建重采样实例 2、使用av_opt_set_int函数设置重采样输入输出参数 3、使用swr_init函数初始化重采样器 4、使用av_get_channel_layout_nb_channels函数计算输入源的通道数 5、给输入源分配内存空间–av_samples_alloc_array_and_samples 6、计算输出采…1、使用swr_alloc()创建重采样实例 2、使用av_opt_set_int函数设置重采样输入输出参数 3、使用swr_init函数初始化重采样器 4、使用av_get_channel_layout_nb_channels函数计算输入源的通道数 5、给输入源分配内存空间–av_samples_alloc_array_and_samples 6、计算输出采样数量–av_rescale_rnd 7、分配输出缓存内存–av_samples_alloc_array_and_samples 8、计算输出缓冲区所需的延迟大小以便进行合理的处理和同步。–swr_get_delay 9、计算加上延迟采样数后的输出采样数量—av_rescale_rnd 10、将音频进行重采样转换–swr_convert 11、获取重采样后的音频数据–av_samples_get_buffer_size /** Copyright (c) 2012 Stefano Sabatini** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated documentation files (the Software), to deal* in the Software without restriction, including without limitation the rights* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell* copies of the Software, and to permit persons to whom the Software is* furnished to do so, subject to the following conditions:** The above copyright notice and this permission notice shall be included in* all copies or substantial portions of the Software.** THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN* THE SOFTWARE.*//*** example resampling_audio.c* libswresample API use example.*/#include libavutil/opt.h #include libavutil/channel_layout.h #include libavutil/samplefmt.h #include libswresample/swresample.hstatic int get_format_from_sample_fmt(const char **fmt,enum AVSampleFormat sample_fmt) {int i;struct sample_fmt_entry {enum AVSampleFormat sample_fmt; const char *fmt_be, *fmt_le;} sample_fmt_entries[] {{ AV_SAMPLE_FMT_U8, u8, u8 },{ AV_SAMPLE_FMT_S16, s16be, s16le },{ AV_SAMPLE_FMT_S32, s32be, s32le },{ AV_SAMPLE_FMT_FLT, f32be, f32le },{ AV_SAMPLE_FMT_DBL, f64be, f64le }, };*fmt NULL;for (i 0; i FF_ARRAY_ELEMS(sample_fmt_entries); i) {struct sample_fmt_entry *entry sample_fmt_entries[i];if (sample_fmt entry-sample_fmt) {*fmt AV_NE(entry-fmt_be, entry-fmt_le);return 0;}}fprintf(stderr,Sample format %s not supported as output format\n,av_get_sample_fmt_name(sample_fmt));return AVERROR(EINVAL); }/*** Fill dst buffer with nb_samples, generated starting from t. 交错模式的*/ static void fill_samples(double *dst, int nb_samples, int nb_channels, int sample_rate, double *t) {int i, j;double tincr 1.0 / sample_rate, *dstp dst;const double c 2 * M_PI * 440.0;/* generate sin tone with 440Hz frequency and duplicated channels */for (i 0; i nb_samples; i) {*dstp sin(c * *t);for (j 1; j nb_channels; j)dstp[j] dstp[0];dstp nb_channels;*t tincr;} }int main(int argc, char **argv) {// 输入参数int64_t src_ch_layout AV_CH_LAYOUT_STEREO;int src_rate 48000;enum AVSampleFormat src_sample_fmt AV_SAMPLE_FMT_DBL;int src_nb_channels 0;uint8_t **src_data NULL; // 二级指针int src_linesize;int src_nb_samples 1024;// 输出参数int64_t dst_ch_layout AV_CH_LAYOUT_STEREO;int dst_rate 44100;enum AVSampleFormat dst_sample_fmt AV_SAMPLE_FMT_S16;int dst_nb_channels 0;uint8_t **dst_data NULL; //二级指针int dst_linesize;int dst_nb_samples;int max_dst_nb_samples;// 输出文件const char *dst_filename NULL; // 保存输出的pcm到本地然后播放验证FILE *dst_file;int dst_bufsize;const char *fmt;// 重采样实例struct SwrContext *swr_ctx;double t;int ret;if (argc ! 2) {fprintf(stderr, Usage: %s output_file\nAPI example program to show how to resample an audio stream with libswresample.\nThis program generates a series of audio frames, resamples them to a specified output format and rate and saves them to an output file named output_file.\n,argv[0]);exit(1);}dst_filename argv[1];dst_file fopen(dst_filename, wb);if (!dst_file) {fprintf(stderr, Could not open destination file %s\n, dst_filename);exit(1);}// 创建重采样器/* create resampler context */swr_ctx swr_alloc();if (!swr_ctx) {fprintf(stderr, Could not allocate resampler context\n);ret AVERROR(ENOMEM);goto end;}// 设置重采样参数/* set options */// 输入参数av_opt_set_int(swr_ctx, in_channel_layout, src_ch_layout, 0);av_opt_set_int(swr_ctx, in_sample_rate, src_rate, 0);av_opt_set_sample_fmt(swr_ctx, in_sample_fmt, src_sample_fmt, 0);// 输出参数av_opt_set_int(swr_ctx, out_channel_layout, dst_ch_layout, 0);av_opt_set_int(swr_ctx, out_sample_rate, dst_rate, 0);av_opt_set_sample_fmt(swr_ctx, out_sample_fmt, dst_sample_fmt, 0);// 初始化重采样/* initialize the resampling context */if ((ret swr_init(swr_ctx)) 0) {fprintf(stderr, Failed to initialize the resampling context\n);goto end;}/* allocate source and destination samples buffers */// 计算出输入源的通道数量src_nb_channels av_get_channel_layout_nb_channels(src_ch_layout);// 给输入源分配内存空间ret av_samples_alloc_array_and_samples(src_data, src_linesize, src_nb_channels,src_nb_samples, src_sample_fmt, 0);if (ret 0) {fprintf(stderr, Could not allocate source samples\n);goto end;}/* compute the number of converted samples: buffering is avoided* ensuring that the output buffer will contain at least all the* converted input samples */// 计算输出采样数量max_dst_nb_samples dst_nb_samples av_rescale_rnd(src_nb_samples, dst_rate, src_rate, AV_ROUND_UP);/* buffer is going to be directly written to a rawaudio file, no alignment */dst_nb_channels av_get_channel_layout_nb_channels(dst_ch_layout);// 分配输出缓存内存ret av_samples_alloc_array_and_samples(dst_data, dst_linesize, dst_nb_channels,dst_nb_samples, dst_sample_fmt, 0);if (ret 0) {fprintf(stderr, Could not allocate destination samples\n);goto end;}t 0;do {/* generate synthetic audio */// 生成输入源fill_samples((double *)src_data[0], src_nb_samples, src_nb_channels, src_rate, t);/* compute destination number of samples */int64_t delay swr_get_delay(swr_ctx, src_rate);dst_nb_samples av_rescale_rnd(delay src_nb_samples, dst_rate, src_rate, AV_ROUND_UP);if (dst_nb_samples max_dst_nb_samples) {av_freep(dst_data[0]);ret av_samples_alloc(dst_data, dst_linesize, dst_nb_channels,dst_nb_samples, dst_sample_fmt, 1);if (ret 0)break;max_dst_nb_samples dst_nb_samples;}// int fifo_size swr_get_out_samples(swr_ctx,src_nb_samples);// printf(fifo_size:%d\n, fifo_size);// if(fifo_size 1024)// continue;/* convert to destination format */// ret swr_convert(swr_ctx, dst_data, dst_nb_samples, (const uint8_t **)src_data, src_nb_samples);ret swr_convert(swr_ctx, dst_data, dst_nb_samples, (const uint8_t **)src_data, src_nb_samples);if (ret 0) {fprintf(stderr, Error while converting\n);goto end;}dst_bufsize av_samples_get_buffer_size(dst_linesize, dst_nb_channels,ret, dst_sample_fmt, 1);if (dst_bufsize 0) {fprintf(stderr, Could not get sample buffer size\n);goto end;}printf(t:%f in:%d out:%d\n, t, src_nb_samples, ret);fwrite(dst_data[0], 1, dst_bufsize, dst_file);} while (t 10);ret swr_convert(swr_ctx, dst_data, dst_nb_samples, NULL, 0);if (ret 0) {fprintf(stderr, Error while converting\n);goto end;}dst_bufsize av_samples_get_buffer_size(dst_linesize, dst_nb_channels,ret, dst_sample_fmt, 1);if (dst_bufsize 0) {fprintf(stderr, Could not get sample buffer size\n);goto end;}printf(flush in:%d out:%d\n, 0, ret);fwrite(dst_data[0], 1, dst_bufsize, dst_file);if ((ret get_format_from_sample_fmt(fmt, dst_sample_fmt)) 0)goto end;fprintf(stderr, Resampling succeeded. Play the output file with the command:\nffplay -f %s -channel_layout %lld -channels %d -ar %d %s\n,fmt, dst_ch_layout, dst_nb_channels, dst_rate, dst_filename);end:fclose(dst_file);if (src_data)av_freep(src_data[0]);av_freep(src_data);if (dst_data)av_freep(dst_data[0]);av_freep(dst_data);swr_free(swr_ctx);return ret 0; }
http://www.hkea.cn/news/14301719/

相关文章:

  • 成都商城网站开发卡易售网站建设
  • 外贸企业网站建设一条龙如何成立网站
  • html网站更新公共空间设计网站
  • 陕西自助建站做网站wordpress tag_id
  • 成都外贸网站建设费用软件开发属于什么专业类别
  • 网站开发公司怎么接单子威联通 wordpress
  • 企业网站管理系统论文中国贸易公司100强
  • 网站开发计划书封面设计自己做个网站需要些什么
  • 湖南网站建设案例太原网站优化推广
  • 响应式网站导航栏模板京东网上商城会员注册步骤
  • 莱州做网站上海品牌建站
  • 天津小型企业网站设计苏州网站建设推荐好先生科技
  • 山东信达建设工程有限公司网站用阿里云服务器做盗版小说网站吗
  • 中国营销型网站有哪些建行个人网站
  • 不良网站浏览窗口seo短视频新地址在哪里?
  • 郑州网站建设时一定需要注意的六点上市设计网站
  • 网站后台 不能删除文章移动互联网开发技术题库
  • 东莞企业网站价格现在出入郑州最新规定
  • 无锡华诚建设监理有限公司网站WordPress配置全站加速cdn
  • 做一个购物网站多少钱婚介做网站的好处
  • 做电子的外单网站有哪些的国内网页设计公司前十名
  • 专用主机网站建设小程序开发商排名
  • 一对一视频网站开发公主岭网站建设规划
  • wordpress百度站长主动推送网页在线代理翻墙
  • 做我女朋友的表白句的网站html网站开发
  • 做微网站的第三方平台有哪些新浪sae安装wordpress
  • 无锡网站制作的公司郑州房产网新房
  • 如何免费做一个网站攻略怎么做微信网站推广
  • 山东恒昆建设工程有限公司网站客户关系管理策略
  • 投资20万做网站好吗张泽华营销