第三产业是什么| 血虚吃什么中成药| 牙龈肿是什么原因| 性病都有什么| 色觉异常是什么意思| 什么风什么面| 猴魁属于什么茶| 皮炎用什么药| 悠哉悠哉是什么意思| prp治疗是什么意思| 8.19是什么星座| 10年什么婚| 2021属什么| 沪深300是什么意思| 胶原蛋白是什么意思| 有什么中药可以壮阳| 口腔黏膜挂什么科| 17592a是什么尺码男装| 鼻子上长痘是什么原因| ac是胎儿的什么| 二个月不来月经是什么原因| 庚寅五行属什么| zutter是什么意思| 外聘是什么意思| 肠癌便血和痔疮便血有什么区别| 摆摊卖什么好| 大便颜色发黑是什么原因| 埋怨是什么意思| 知青是什么| 什么样的人容易得痛风| 枭印什么意思| 店铺开业送什么礼物好| 车加昆念什么| 人为什么会得肿瘤| 前庭是什么意思| 12月15日是什么星座| 功名利禄是什么意思| 基础病是什么意思| 大悲咒什么意思| 缺心眼是什么意思| 丝棉是什么材料| 鸩杀是什么意思| 眼睛有眼屎是什么原因引起的| 言谈举止是什么意思| 1983是什么年| 上眼皮肿是什么原因| 七月十六号是什么星座| 一生一世是什么生肖| 最小的单位是什么| 上不下要读什么| 吃饭后肚子疼是什么原因| 梦见自己大笑是什么意思| 白化病有什么危害吗| 肠胃炎引起的发烧吃什么药| 女儿红属于什么酒| 三七粉主治什么病| 今晚吃什么家常菜| b2b是什么| 风寒感冒吃什么药好| 公关是干什么的| 手上三条线分别代表什么| 射精快是什么原因| 多梦睡眠质量不好是什么原因| 喉咙一直有痰是什么原因| 指甲弯曲是什么原因| 膈应什么意思| 禾五行属什么| 热泪盈眶的盈是什么意思| 特需门诊是什么意思| skll什么牌子| 猫咪有泪痕是什么原因| 卡哇伊内是什么意思| 流产药叫什么名字| 金酒属于什么酒| 什么叫盗汗| 吃什么东西对肺好| 广东话扑街是什么意思| 五味杂陈什么意思| 非布司他片是什么药| 文盲是什么意思| 肚脐上方是什么器官| 百合花是什么颜色的| 胡同是什么意思| 属鼠女和什么属相最配| kiv是什么意思| 盆底肌是什么| 胃炎能吃什么水果| 吃什么增加卵泡| 血型o型rh阳性是什么意思| 活珠子是什么| 特此通知写在什么位置| 为什么叫买东西不叫买南北| pp是什么材料| 什么的竹笋| 为什么老是恶心想吐| 清宫和刮宫有什么区别| 小狗吐白沫不吃东西没精神吃什么药| 额窦炎吃什么药| 女生的下面叫什么| 心里发慌什么原因| 烧高香是什么意思| 黄油是什么意思| 人到无求品自高什么意思| 红颜薄命的意思是什么| 神经外科主要看什么病| 什么是斜视| 腹黑是什么意思| 出汗发粘是什么原因| 双星座是什么意思| 为什么家里蟑螂特别多| 为什么会打鼾| 杠杠滴是什么意思| 足跟血筛查什么疾病| 这是什么品牌| 什么是呼吸性碱中毒| 长颈鹿的脖子为什么那么长| 小囡是什么意思| 2月16日什么星座| 海蓝宝五行属什么| s和m是什么意思啊| 新疆人为什么不吃猪肉| 大运流年是什么意思| 边度什么意思| 五行木生什么| 尖锐湿疣的症状是什么| 粘人是什么意思| 不字五行属什么| 熠熠什么意思| 打葡萄糖点滴有什么用| 工事是什么意思| 腹部b超能检查什么| 山穷水尽疑无路是什么生肖| 口上长水泡是什么原因| 什么的陪伴| 上军校需要什么条件| 吐纳是什么意思| 聚聚什么意思| 教师节是什么时候| 什么的竹笋| 二甲双胍什么时候吃最好| 肌酐升高是什么原因| 痰的颜色代表什么| egcg是什么| 变质是什么意思| 乙肝恢复期是什么意思| 肉瘤是什么样子图片| 唇红是什么原因| 精子长什么样| 每天头疼是什么原因引起的| 三季人是什么意思| 凿壁偷光告诉我们什么道理| 八月十三号是什么星座| 洋葱有什么好处| 月季花什么时候开花| 早熟是什么意思| 安全套是什么| 1992年属什么生肖| 什么话是世界通用的| 应用心理学是什么| 什么是酸性土壤| 孕妇什么时候开始补钙| 血管疼是什么原因| 来大姨妈血块多是什么原因| 承五行属性是什么| 尿素偏低是什么原因| 湿疹是什么症状图片| 老百姓是什么意思| energy是什么牌子| 1933年属什么生肖| 7月16日什么星座| 二狗是什么意思| 牙根吸收是什么意思| 晚餐吃什么菜谱大全| 肾上腺增生是什么意思| 宫颈cin1级是什么意思| 铲垃圾的工具叫什么| 白玫瑰的花语是什么| 舌苔发黑是什么病的前兆| 肝回声改变是什么意思| 11.22什么星座| 男人吃什么补肾| 乙醇对人体有什么伤害| 站军姿有什么好处| 寒湿体质吃什么中成药| 胃疼挂什么科室| 肚子疼看什么科| 生物医学工程专业学什么| 嗜酸性肉芽肿是什么病| 假性宫缩是什么感觉| 膝盖疼痛用什么药| 左行气右行血什么意思| 心气不足是什么意思| 蒜薹和蒜苔有什么区别| 老人双脚浮肿是什么原因| 薪字五行属什么| 冬至说什么祝福语| 肾虚有什么症状| 酒品是什么意思| 记者学什么专业| 陌然是什么意思| 外交部长是什么级别| 经常腰疼是什么原因女| 吃完芒果后不能吃什么食物| 气血不足是什么症状| 冬天有什么花| 胃出血是什么原因引起的| 孕早期头疼是什么原因| 大便粘稠是什么原因| acer是什么牌子| 子宫出血是什么原因| 红参对子宫有什么作用| 茶不能和什么一起吃| 斑秃是什么原因| 自贸区什么意思| 糖尿病能喝什么饮料| 包袱什么意思| 人为什么打呼噜| 一什么棉花| 男龙和什么生肖最配| 6月26什么星座| 中年人手抖是什么原因| 金丝玉是什么玉| 吃槟榔有什么危害| 过午不食什么意思| 多出汗有什么好处| 女性排卵期是什么时候| 浅蓝色配什么颜色好看| 三个毛念什么| 什么狗最贵| 嬷嬷什么意思| 房性心律是什么意思| 凉烟都有什么牌子| 寡欲是什么意思| 肾亏是什么原因造成的| 兔死狗烹什么意思| 黑白猫是什么品种| 身份是什么意思| 肌筋膜炎吃什么药| s牌运动鞋是什么牌子| 什么榴莲品种最好吃| 血糖高什么水果不能吃| 梦见好多动物是什么意思| 梦见猫什么意思| 妾是什么意思| 餐后血糖高吃什么药| 什么人容易得心理疾病| 看见蜈蚣有什么预兆| 鼠和什么生肖最配| 大将军衔相当于什么官| 印度讲什么语言| 六五年属什么| 静脉曲张挂号挂什么科| 足癣用什么药最快好| 上厕所出血是什么原因| 女性支原体感染有什么症状| 什么叫蛇胆疮| vivian是什么意思| 肚子胀屁多是什么原因| 为什么手机充电慢| 对药物过敏是什么症状| 庙是什么意思| 复辟什么意思| 梦见煤气罐爆炸是什么意思| 不将日是什么意思| 百度

马兴瑞出席省环境保护督察整改工作领导小组会议。


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

Line Branch Exec Source
1 /*
2 * Copyright (c) 2018 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 License
8 * 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
14 * GNU Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with FFmpeg; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21 #include "libavutil/channel_layout.h"
22 #include "libavutil/mem.h"
23 #include "libavutil/opt.h"
24 #include "audio.h"
25 #include "avfilter.h"
26 #include "formats.h"
27 #include "filters.h"
28 #include "window_func.h"
29
30 typedef struct HilbertContext {
31 const AVClass *class;
32
33 int sample_rate;
34 int nb_taps;
35 int nb_samples;
36 int win_func;
37
38 float *taps;
39 int64_t pts;
40 } HilbertContext;
41
42 #define OFFSET(x) offsetof(HilbertContext, x)
43 #define FLAGS AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
44
45 static const AVOption hilbert_options[] = {
46 { "sample_rate", "set sample rate", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64=44100}, 1, INT_MAX, FLAGS },
47 { "r", "set sample rate", OFFSET(sample_rate), AV_OPT_TYPE_INT, {.i64=44100}, 1, INT_MAX, FLAGS },
48 { "taps", "set number of taps", OFFSET(nb_taps), AV_OPT_TYPE_INT, {.i64=22051}, 11, UINT16_MAX, FLAGS },
49 { "t", "set number of taps", OFFSET(nb_taps), AV_OPT_TYPE_INT, {.i64=22051}, 11, UINT16_MAX, FLAGS },
50 { "nb_samples", "set the number of samples per requested frame", OFFSET(nb_samples), AV_OPT_TYPE_INT, {.i64 = 1024}, 1, INT_MAX, FLAGS },
51 { "n", "set the number of samples per requested frame", OFFSET(nb_samples), AV_OPT_TYPE_INT, {.i64 = 1024}, 1, INT_MAX, FLAGS },
52 WIN_FUNC_OPTION("win_func", OFFSET(win_func), FLAGS, WFUNC_BLACKMAN),
53 WIN_FUNC_OPTION("w", OFFSET(win_func), FLAGS, WFUNC_BLACKMAN),
54 {NULL}
55 };
56
57 AVFILTER_DEFINE_CLASS(hilbert);
58
59 static av_cold int init(AVFilterContext *ctx)
60 {
61 HilbertContext *s = ctx->priv;
62
63 if (!(s->nb_taps & 1)) {
64 av_log(s, AV_LOG_ERROR, "Number of taps %d must be odd length.\n", s->nb_taps);
65 return AVERROR(EINVAL);
66 }
67
68 return 0;
69 }
70
71 static av_cold void uninit(AVFilterContext *ctx)
72 {
73 HilbertContext *s = ctx->priv;
74
75 av_freep(&s->taps);
76 }
77
78 static av_cold int query_formats(const AVFilterContext *ctx,
79 AVFilterFormatsConfig **cfg_in,
80 AVFilterFormatsConfig **cfg_out)
81 {
82 HilbertContext *s = ctx->priv;
83 static const AVChannelLayout chlayouts[] = { AV_CHANNEL_LAYOUT_MONO, { 0 } };
84 int sample_rates[] = { s->sample_rate, -1 };
85 static const enum AVSampleFormat sample_fmts[] = {
86 AV_SAMPLE_FMT_FLT,
87 AV_SAMPLE_FMT_NONE
88 };
89 int ret = ff_set_common_formats_from_list2(ctx, cfg_in, cfg_out, sample_fmts);
90 if (ret < 0)
91 return ret;
92
93 ret = ff_set_common_channel_layouts_from_list2(ctx, cfg_in, cfg_out, chlayouts);
94 if (ret < 0)
95 return ret;
96
97 return ff_set_common_samplerates_from_list2(ctx, cfg_in, cfg_out, sample_rates);
98 }
99
100 static av_cold int config_props(AVFilterLink *outlink)
101 {
102 AVFilterContext *ctx = outlink->src;
103 HilbertContext *s = ctx->priv;
104 float overlap;
105 int i;
106
107 s->taps = av_malloc_array(s->nb_taps, sizeof(*s->taps));
108 if (!s->taps)
109 return AVERROR(ENOMEM);
110
111 generate_window_func(s->taps, s->nb_taps, s->win_func, &overlap);
112
113 for (i = 0; i < s->nb_taps; i++) {
114 int k = -(s->nb_taps / 2) + i;
115
116 if (k & 1) {
117 float pk = M_PI * k;
118
119 s->taps[i] *= (1.f - cosf(pk)) / pk;
120 } else {
121 s->taps[i] = 0.f;
122 }
123 }
124
125 s->pts = 0;
126
127 return 0;
128 }
129
130 static int activate(AVFilterContext *ctx)
131 {
132 AVFilterLink *outlink = ctx->outputs[0];
133 HilbertContext *s = ctx->priv;
134 AVFrame *frame;
135 int nb_samples;
136
137 if (!ff_outlink_frame_wanted(outlink))
138 return FFERROR_NOT_READY;
139
140 nb_samples = FFMIN(s->nb_samples, s->nb_taps - s->pts);
141 if (nb_samples <= 0) {
142 ff_outlink_set_status(outlink, AVERROR_EOF, s->pts);
143 return 0;
144 }
145
146 if (!(frame = ff_get_audio_buffer(outlink, nb_samples)))
147 return AVERROR(ENOMEM);
148
149 memcpy(frame->data[0], s->taps + s->pts, nb_samples * sizeof(float));
150
151 frame->pts = s->pts;
152 s->pts += nb_samples;
153 return ff_filter_frame(outlink, frame);
154 }
155
156 static const AVFilterPad hilbert_outputs[] = {
157 {
158 .name = "default",
159 .type = AVMEDIA_TYPE_AUDIO,
160 .config_props = config_props,
161 },
162 };
163
164 const FFFilter ff_asrc_hilbert = {
165 .p.name = "hilbert",
166 .p.description = NULL_IF_CONFIG_SMALL("Generate a Hilbert transform FIR coefficients."),
167 .p.priv_class = &hilbert_class,
168 .init = init,
169 .uninit = uninit,
170 .activate = activate,
171 .priv_size = sizeof(HilbertContext),
172 FILTER_OUTPUTS(hilbert_outputs),
173 FILTER_QUERY_FUNC2(query_formats),
174 };
175

血小板减少是什么原因造成的 一边脸大一边脸小是什么原因 减肥平台期什么意思 6.14什么星座 粉瘤是什么东西
阿司匹林和阿莫西林有什么区别 ppt是什么意思 食管裂孔疝是什么意思 梦见自行车是什么意思 s.m是什么意思
门可罗雀什么意思 心什么气什么 韭菜可以炒什么 右手手指头麻木是什么病的前兆 申是什么生肖
世界7大奇迹是什么 连奕名为什么娶杨若兮 汽车空调不制冷是什么原因 尿道感染应该吃什么药 小肚子疼吃什么药
不停的放屁是什么原因hcv9jop4ns3r.cn 什么是潮喷hcv9jop6ns8r.cn 清欢渡是什么意思hcv7jop6ns3r.cn 什么是化学性肝损伤hcv9jop2ns5r.cn 结核t细胞阳性说明什么hcv8jop7ns0r.cn
大臂疼痛怎么什么原因hcv8jop3ns5r.cn 时光荏苒的意思是什么hcv9jop3ns6r.cn 胃反流吃什么药效果好hcv9jop5ns1r.cn 角加斗读什么hcv7jop5ns4r.cn 手掌红什么原因hcv9jop4ns8r.cn
骨折一个月能恢复到什么程度hcv8jop6ns6r.cn 籍贯一般填什么hcv7jop9ns2r.cn 亦如是什么意思hcv8jop1ns6r.cn 吃什么最补钙hcv9jop3ns9r.cn 灶王爷叫什么名字hcv9jop5ns5r.cn
妈妈生日送什么礼物好hcv9jop4ns2r.cn 脾肾阳虚吃什么药最好hcv9jop0ns3r.cn 儿童咽峡炎吃什么药youbangsi.com 性欲是什么hcv9jop1ns2r.cn 什么是豆制品dayuxmw.com
百度