纳肛是什么意思| 龟头炎用什么药膏好| 阴虚体质是什么症状| 2035年是什么年| 狐狸是什么科| 补办身份证需要什么手续| 薄幸是什么意思| 感统训练是什么| 地球为什么自转| 谷丙转氨酶偏低是什么意思| 荷花的花语是什么| 狮子座什么星象| 90年属什么| 口疮是什么原因引起的| 阿奇霉素是什么药| 落花生为什么叫落花生| 鸡和什么属相最配对| 沙发是什么意思| 易胖体质是什么原因造成的| 大学什么时候开始收费| 为什么头会一阵一阵的痛| 青鱼和草鱼有什么区别| 石斛是什么东西| 胃疼肚子疼是什么原因| 脸颊两侧长斑是什么原因怎么调理| 月经不正常去医院检查什么项目| 卖淫是什么| 舟可是什么字| 胃痛胃胀吃什么药| 什么是针灸| 法界是什么意思| 为什么英文怎么说| 今年28岁属什么生肖| 心肌供血不足用什么药| 黄瓜炒什么| 连襟是什么关系| 29周岁属什么生肖| 转氨酶高是什么原因引起的| 月经后一周又出血是什么原因| 恭喜什么意思| 拍肺部ct挂什么科| 心脏早博吃什么药好| 尿道灼热感吃什么药| 三尖瓣轻度反流是什么意思| 单身领养孩子需要什么条件| 什么照镜子里外不是人| 左心室强光点是什么意思| 蛇缠腰是什么病怎么治| 痔疮长什么样子图片| 三个六代表什么意思| 抛砖引玉是什么生肖| 凌五行属性是什么| 羸弱是什么意思| 10月1是什么星座| 五月十三号是什么日子| 广州有什么区| 今天冲什么生肖| 一度房室传导阻滞是什么意思| 减张缝合是什么意思| 植物神经紊乱挂什么科| 衣原体阳性是什么病| 震撼是什么意思| td是什么意思| 什么水果能马上通便| 为什么偏偏喜欢你| 香菇不能和什么一起吃| 离心是什么意思| 7大营养素是什么| 慈禧属什么生肖| 咖啡过敏的症状是什么| society是什么意思| 芒果吃多了有什么坏处| electrolux是什么牌子| 斜视是什么原因导致的| 什么的少年| 文殊菩萨保佑什么| 处男是什么| 贫血什么意思| 5p是什么意思| 小学教师需要什么学历| 夫妻合葬有什么讲究| 来大姨妈拉肚子是什么原因| 手和脚发麻是什么原因| 极乐是什么意思| 牙根变黑是什么原因| 镁高有什么症状和危害| 布洛芬吃多了有什么副作用| 猪苓是什么东西| b27是什么检查| 梦见自己孩子死了是什么意思| 商数是什么意思| 经常嗓子哑是什么原因| 术语是什么意思| 黑白相间的蛇是什么蛇| 520是什么节日| 中书舍人是什么官职| 五险都有什么| 坐北朝南什么意思| 1950属什么生肖| 达芬奇是干什么的| 检查肾挂什么科| 碱和小苏打有什么区别| 水果的英文是什么| 狂鸟读什么| 许愿是什么意思| 眼睛有痣代表什么| 非洲说什么语言| 什么地开放填空| 舌苔厚黄是什么原因| 咳出痰带血是什么原因| 手指麻木吃什么药| 什么是led灯| 大腿后侧疼痛什么原因| 什么的叶丛| 1993属什么生肖| 血糖低吃什么补得最快| 吃东西没有味道是什么原因| 睾酮高有什么影响| 绾色是什么颜色| 什么像什么又像什么| 7是什么意思| 飞刃是什么意思| 挚友是什么意思| 滥竽充数的滥是什么意思| 藕是什么季节的| 什么样的牙齿需要矫正| 心五行属性是什么| 蒲公英吃了有什么好处| 大便出血挂什么科| 口臭什么原因| 梦见买楼房有什么预兆| 久卧伤气是什么意思| 五月二十日是什么日子| 侄子叫我什么| 萎缩性胃炎能吃什么水果| 上皮细胞是什么| 儿童吃什么长个子最快| 为什么叫西瓜| 四大皆空是什么意思| 气滞血瘀吃什么食物好| 离婚证是什么颜色| 什么是单克隆抗体| 汉语拼音是什么时候发明的| 肾结石不处理有什么后果| 心志是什么意思| 母胎solo是什么意思| 心管是什么部位| 唇上有痣代表什么| 私奔是什么意思| 精神内科一般检查什么| 坐卧针毡是什么生肖| 口食读什么| 脑瘫是什么意思| 抗结剂对人有什么伤害| 印度为什么叫三哥| 肺火吃什么中成药| 鼻子上长红疙瘩是什么原因| 光气是什么气体| 2018属什么生肖| 呦是什么意思| 夏至吃什么食物| 康熙是乾隆的什么人| 透明的什么| 什么药止痒效果最好| 杜甫的诗被称为什么| 柏读什么| 三点水一个高念什么| 为什么水不能燃烧| 术后血压低什么原因| 1972属什么生肖| 手机服务密码是什么| 有头皮屑用什么洗发水| od什么意思| 三高人群适合吃什么水果| 十三幺是什么意思| 跪乳的动物是什么生肖| 原发性肝ca什么意思| 苹果五行属什么| 牙结石不除有什么危害| 喜欢蹲着是什么原因| 拉分是什么意思| 蛐蛐是什么意思| 羊肉炖什么好吃又营养| 为什么长疣| nos是什么意思| 64年属什么的| ons是什么意思| 什么时| 肋骨中间是什么器官| ahc是韩国什么档次| 拉肚子吃什么菜| 习是什么结构的字| 肽对人体有什么好处| 土豆有什么营养价值| 什么叫正盐| 蛇盘疮什么原因引起的| 蚰蜒吃什么| 感冒打喷嚏吃什么药| 2是什么意思| 香醋是什么醋| 世界上最大的山是什么山| 飞行模式是什么意思| 撰文是什么意思| 黑道日为什么还是吉日| 多多包涵是什么意思| 腹胀是什么病的前兆| cd是什么牌子| 宫颈病变是什么意思| 上嘴角有痣代表什么| 殖民地是什么意思| 左眼皮跳什么意思| 什么奶茶最贵| 花雕酒是什么| 快照是什么意思| 腊梅什么时候开花| 润喉喝什么| 什么是寓言故事| 幽门螺杆菌感染有什么症状和表现| 发烧喝什么饮料比较好| 霸王硬上弓什么意思| 老是嗜睡是什么原因| 儿童发烧吃什么药| nm是什么意思| 宝宝咬人是什么原因| 端倪是什么意思| 什么颜色的床单有助于睡眠| ut是什么| 小便带血是什么原因男性| 左眼皮肿是什么原因引起的| 绯色是什么意思| 脾虚什么症状| 补钙什么时间段最好| 记吃不记打的下一句是什么| 老年人适合吃什么水果| 文殊菩萨是管什么的| 蚰蜒吃什么| 文化是指什么| essence是什么意思| 平日是什么意思| 月经来了头疼是什么原因导致的| 吃什么会影响验孕棒检验结果| 可谓是什么意思| 活字印刷术是什么时候发明的| 什么情况下需要做活检| 葡萄膜炎是什么原因引起的| 事无巨细什么意思| 芦荟有什么功效| 竹叶青属于什么茶| 宇字属于五行属什么| 湿疹为什么要查肝功能| 不显山不露水是什么意思| 皴是什么意思| 呼吸困难吃什么药| 敌对是什么意思| 鼻子上长痘痘是什么原因| 淡淡的什么| 菊花泡水喝有什么功效| 常吃木耳有什么好处和坏处| zara属于什么档次| 天五行属什么| 豆腐皮炒什么好吃| 嗜酸性粒细胞偏低是什么意思| 1997年属牛是什么命| 血压低吃什么中成药| 百度

第30号一般性建议:关于妇女在预防冲突、...


Directory: ../../../ffmpeg/
File: src/libavfilter/asrc_afdelaysrc.c
Date: 2025-08-04 00:43:16
Exec Total Coverage
Lines: 0 44 0.0%
Functions: 0 4 0.0%
Branches: 0 18 0.0%

Line Branch Exec Source
1 /*
2 * Copyright (c) 2023 Paul B Mahol
3 *
4 * This file is part of FFmpeg.
5 *
6 * FFmpeg is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * FFmpeg is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with FFmpeg; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21 #include "libavutil/channel_layout.h"
22 #include "libavutil/opt.h"
23
24 #include "audio.h"
25 #include "avfilter.h"
26 #include "filters.h"
27 #include "formats.h"
28
29 typedef struct AFDelaySrcContext {
30 const AVClass *class;
31
32 double delay;
33 int sample_rate;
34 int nb_samples;
35 int nb_taps;
36 AVChannelLayout chlayout;
37
38 int64_t pts;
39 } AFDelaySrcContext;
40
41 static float sincf(float x)
42 {
43 if (x == 0.f)
44 return 1.f;
45 return sinf(M_PI * x) / (M_PI * x);
46 }
47
48 static int activate(AVFilterContext *ctx)
49 {
50 AVFilterLink *outlink = ctx->outputs[0];
51 AFDelaySrcContext *s = ctx->priv;
52 AVFrame *frame = NULL;
53 int nb_samples;
54 float *dst;
55
56 if (!ff_outlink_frame_wanted(outlink))
57 return FFERROR_NOT_READY;
58
59 nb_samples = FFMIN(s->nb_samples, s->nb_taps - s->pts);
60 if (nb_samples <= 0) {
61 ff_outlink_set_status(outlink, AVERROR_EOF, s->pts);
62 return 0;
63 }
64
65 if (!(frame = ff_get_audio_buffer(outlink, nb_samples)))
66 return AVERROR(ENOMEM);
67
68 dst = (float *)frame->extended_data[0];
69 for (int n = 0; n < nb_samples; n++) {
70 float x = s->pts + n;
71 dst[n] = sincf(x - s->delay) * cosf(M_PI * (x - s->delay) / s->nb_taps) / sincf((x - s->delay) / s->nb_taps);
72 }
73
74 for (int ch = 1; ch < frame->ch_layout.nb_channels; ch++)
75 memcpy(frame->extended_data[ch], dst, sizeof(*dst) * nb_samples);
76
77 frame->pts = s->pts;
78 s->pts += nb_samples;
79
80 return ff_filter_frame(outlink, frame);
81 }
82
83 static int query_formats(const AVFilterContext *ctx,
84 AVFilterFormatsConfig **cfg_in,
85 AVFilterFormatsConfig **cfg_out)
86 {
87 const AFDelaySrcContext *s = ctx->priv;
88 AVChannelLayout chlayouts[] = { s->chlayout, { 0 } };
89 int sample_rates[] = { s->sample_rate, -1 };
90 static const enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_FLTP,
91 AV_SAMPLE_FMT_NONE };
92 int ret = ff_set_common_formats_from_list2(ctx, cfg_in, cfg_out, sample_fmts);
93 if (ret < 0)
94 return ret;
95
96 ret = ff_set_common_channel_layouts_from_list2(ctx, cfg_in, cfg_out, chlayouts);
97 if (ret < 0)
98 return ret;
99
100 return ff_set_common_samplerates_from_list2(ctx, cfg_in, cfg_out, sample_rates);
101 }
102
103 static int config_output(AVFilterLink *outlink)
104 {
105 AVFilterContext *ctx = outlink->src;
106 AFDelaySrcContext *s = ctx->priv;
107
108 outlink->sample_rate = s->sample_rate;
109 s->pts = 0;
110 if (s->nb_taps <= 0)
111 s->nb_taps = s->delay * 8 + 1;
112
113 return 0;
114 }
115
116 static const AVFilterPad afdelaysrc_outputs[] = {
117 {
118 .name = "default",
119 .type = AVMEDIA_TYPE_AUDIO,
120 .config_props = config_output,
121 },
122 };
123
124 #define AF AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
125 #define OFFSET(x) offsetof(AFDelaySrcContext, x)
126
127 static const AVOption afdelaysrc_options[] = {
128 { "delay", "set fractional delay", OFFSET(delay), AV_OPT_TYPE_DOUBLE,{.dbl=0}, 0, INT16_MAX, AF },
129 { "d", "set fractional delay", OFFSET(delay), AV_OPT_TYPE_DOUBLE,{.dbl=0}, 0, INT16_MAX, AF },
130 { "sample_rate", "set sample rate", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64=44100}, 1, INT_MAX, AF },
131 { "r", "set sample rate", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64=44100}, 1, INT_MAX, AF },
132 { "nb_samples", "set the number of samples per requested frame", OFFSET(nb_samples), AV_OPT_TYPE_INT, {.i64=1024}, 1, INT_MAX, AF },
133 { "n", "set the number of samples per requested frame", OFFSET(nb_samples), AV_OPT_TYPE_INT, {.i64=1024}, 1, INT_MAX, AF },
134 { "taps", "set number of taps for delay filter", OFFSET(nb_taps), AV_OPT_TYPE_INT, {.i64=0}, 0, 32768, AF },
135 { "t", "set number of taps for delay filter", OFFSET(nb_taps), AV_OPT_TYPE_INT, {.i64=0}, 0, 32768, AF },
136 { "channel_layout", "set channel layout", OFFSET(chlayout), AV_OPT_TYPE_CHLAYOUT,{.str="stereo"},0, 0, AF },
137 { "c", "set channel layout", OFFSET(chlayout), AV_OPT_TYPE_CHLAYOUT,{.str="stereo"},0, 0, AF },
138 { NULL }
139 };
140
141 AVFILTER_DEFINE_CLASS(afdelaysrc);
142
143 const FFFilter ff_asrc_afdelaysrc = {
144 .p.name = "afdelaysrc",
145 .p.description = NULL_IF_CONFIG_SMALL("Generate a Fractional delay FIR coefficients."),
146 .p.priv_class = &afdelaysrc_class,
147 .priv_size = sizeof(AFDelaySrcContext),
148 .activate = activate,
149 FILTER_OUTPUTS(afdelaysrc_outputs),
150 FILTER_QUERY_FUNC2(query_formats),
151 };
152

全国政协常委什么级别 美人坯子是什么意思 农历7月15是什么节 出家当和尚有什么要求 命格是什么
着痹是什么意思 同房后小腹痛什么原因 嫡传弟子是什么意思 小鸡喜欢吃什么食物 物欲横流是什么意思
中医的精髓是什么 头痛什么原因 属龙女和什么属相最配 什么水果糖分低 一个王一个月念什么
add是什么意思 爱上一个人是什么感觉 雫是什么意思 大便呈绿色是什么原因 孕妇补铁吃什么
68年属什么生肖多少岁hcv8jop4ns6r.cn 九月初八是什么星座hcv7jop5ns0r.cn positive是什么意思hcv8jop5ns6r.cn 妇科清洁度3度用什么药治疗hcv8jop7ns0r.cn 为什么胸部会胀痛hcv8jop5ns1r.cn
领养孩子需要什么条件hcv8jop2ns8r.cn 明知故犯的故是什么意思hcv8jop0ns3r.cn 为什么总是流鼻血hcv8jop6ns8r.cn 白热化阶段是什么意思hcv7jop5ns6r.cn 直肠下垂有什么症状mmeoe.com
邪是什么意思hcv8jop2ns9r.cn 抽血化验挂什么科zhiyanzhang.com 考试前吃巧克力有什么好处sanhestory.com o型血和a型血生的孩子是什么血型hcv9jop4ns4r.cn 泵的扬程什么意思hcv7jop6ns3r.cn
贫血吃什么可以补血bjcbxg.com 做肠胃镜挂什么科hcv9jop4ns9r.cn 蘑菇炒什么好吃hcv8jop2ns2r.cn 特药是什么意思hcv9jop0ns1r.cn 安是什么单位adwl56.com
百度