懵懵懂懂是什么意思| 什么是隐形矫正牙齿| 蒂芙尼蓝是什么颜色| 坐蜡什么意思| 什么是骨科| 拔火罐有什么好处| 谋划是什么意思| club monaco是什么牌子| 什么药治牙疼最快| geya是什么牌子的手表| 为什么会得阴道炎| 第一次为什么进不去| 吃什么能增强性功能| 晨跑有什么好处| 漉是什么意思| 手指腱鞘炎是什么原因造成的| 经常手麻是什么原因引起的| 梦见自己得了绝症预示着什么| 12月21是什么星座| 拉肚子吃什么药好使| hcv是什么| 人口基数是什么意思| 小麦粉可以做什么| 一直发烧不退是什么原因| 为什么会腰疼| 12月24是什么星座| 促甲状腺激素高是什么原因| ti是什么意思| 子宫内膜3mm意味着什么| 为什么老是睡不着| 吃阿胶对女人有什么好处| 孕妇奶粉什么时候开始喝最好| 三千烦恼丝什么意思| 同人小说是什么| 屁股出汗多是什么原因| 猴子喜欢吃什么食物| 吃什么食物补铁| 白醋洗脸有什么效果| 举足轻重是什么意思| 颠了是什么意思| 狗不能吃什么东西| 50年是什么婚| 黄金属于五行属什么| 什么行什么什么| 小便无力是什么原因男| 1996年属鼠五行属什么| 上皮细胞什么意思| 外阴苔藓用什么药膏| 耘是什么意思| 马润什么意思| 喜欢白色的人是什么性格| 胃炎伴糜烂吃什么药效果好| 喝最烈的酒下一句是什么| 做梦梦见火是什么征兆| max是什么意思| 心急吃不了热豆腐什么意思| 右侧后背疼是什么原因| 香港的别称是什么| 高烧吃什么药| 双鱼座的幸运色是什么颜色| 志五行属什么| 治疗心率过快用什么药效果好| cc什么意思| 脚抽筋吃什么钙片好| 猫离家出走预示着什么| 交际花是什么意思| 处变不惊是什么意思| 什么是肺部腺性肿瘤| 口腔医学技术是什么| 七夕节是什么节日| 血肌酐低是什么原因| 为什么今年有两个六月| 日本买房子需要什么条件| 4月26日是什么星座| 生鱼是什么鱼| 大便里急后重什么意思| 切忌什么意思| 勾践姓什么| 52年属什么| 不过是什么意思| 修女是什么意思| 甲醛是什么味道| 女人吃什么对卵巢和子宫好| 头皮问题挂什么科| 虾皮不能和什么一起吃| 磨玻璃影是什么意思| 怀孕三个月吃什么对胎儿好| 梦见走错路是什么意思| 今年28岁属什么生肖| 虾滑是什么| 口差念什么| 明知故犯的故是什么意思| 砷对人体有什么危害| 河豚吃什么| 1206是什么星座| 双子是什么意思| 上火牙龈肿痛吃什么药| 喝红酒对身体有什么好处| 什么什么不同| kg是什么单位| hl是胎儿的什么| 乔迁是什么意思| 什么样的梅花| 文殊菩萨保佑什么| 优甲乐什么时候吃最好| 不然呢是什么意思| 苹果煮水有什么功效| 包皮过长有什么影响| 淋巴细胞偏高是什么原因| 胃疼看病挂什么科| c14阳性是什么意思| 怨妇是什么意思| 指甲月牙代表什么| 便血挂什么科| 狗皮膏药什么意思| 老年斑是什么原因引起的| 福泽深厚什么意思| 吃什么东西能减肥| 审计署是什么级别| 埋汰是什么意思| 不检点是什么意思| 螺旋杆菌吃什么药| 吃什么可以抑制食欲| 情何以堪是什么意思| 心律不齐是什么原因引起的| 梦见莲藕是什么意思| 脚底长水泡是什么原因| 梦见死人的场面是什么兆头| 质量是什么| 飞的最高的鸟是什么鸟| 10月19是什么星座| 金庸的原名叫什么| 兔跟什么生肖配对最好| 敬邀是什么意思| 一个王一个八念什么| 竖中指什么意思| 胎儿生物物理评分8分什么意思| 大拇指发麻是什么原因| iwc是什么牌子手表| 胖脸适合什么发型| 幽门螺旋杆菌阳性代表什么| 有福气是什么意思| 小月子能吃什么水果| dsa是什么| 12583是什么电话| 虚岁28岁属什么生肖| ck属于什么档次| 三月份什么星座| 安眠药有什么副作用| 惠五行属什么| 喜欢吃冰的是什么原因| 什么是蜂胶| 屁是什么气体| 肠梗阻什么症状| 窦房结是什么意思| Years什么意思| 子宫切除对女人有什么影响| 金银花主治什么| 4月4日什么星座| 腰上长痘痘是什么原因| 97年属什么生肖| 青红皂白的皂是什么颜色| 宫外孕有什么危害| 胃难受吃什么食物好| 一个口一个女念什么| 金是什么生肖| 白鱼又叫什么鱼| 什么不周| 什么猫掉毛少| 做脑部检查挂什么科| 白陶土样便见于什么病| 为什么会有床虱| 睡眠障碍是什么原因引起的| 机长是什么意思| 腰脱什么症状| 儿童嗓子哑吃什么药| 膀胱尿潴留是什么意思| 耳朵听不清楚是什么原因| 左顾右盼的顾是什么意思| 悦人不如悦己什么意思| 癫痫属于什么科| 梦见房子漏水是什么意思| 粘鞋子用什么胶水最好| 供血不足吃什么药效果最好| 木驴是什么| prc是什么意思| 机不可失的下一句是什么| 内鬼是什么意思| 自叹不如什么意思| 伏脉常见于什么病| 什么鬼大家都喜欢| 抗核抗体弱阳性说明什么| 去黄疸吃什么药| 帮凶是什么意思| vsop是什么酒| 2月7日是什么星座| 早上九点半是什么时辰| vfu是什么牌子| 玄牝是什么意思| 一贫如什么| 舐犊是什么意思| 陈字五行属什么| 五加一笔是什么字| 万圣节应该送什么礼物| 自控能力是什么意思| 可乐喝多了有什么危害| 阴道流黄水是什么病| 主任医师是什么职称| 迷离的眼神什么意思| 炖羊肉放什么调料| 家去掉一点念什么| 504是什么错误| 男人梦见蛇是什么征兆| 库克是什么| 肾阴虚吃什么食物补| 山洪是什么意思| 银消病用什么药效果最好| 为什么脚上会长鸡眼| 522是什么意思| 怀孕肚子上长毛是什么原因| 狻猊是什么| 消化内科是看什么病的| 腰臀比是什么意思| 闭关什么意思| 发烧想吐是什么原因| 晚上磨牙是什么原因| 年庚是什么意思| 警察两杠三星是什么级别| 复位是什么意思| 慢性鼻炎用什么药| 预包装食品指的是什么| 胃热吃什么药| 周长是什么| 晚上睡觉腿抽筋是什么原因| 转网是什么意思| 生理盐水是什么东西| 派特ct主要检查什么| 为什么突然流鼻血| 必要性是什么意思| 拔罐黑紫色说明什么| 梦见钓了好多鱼是什么意思| 米为什么会生虫| 什么的烤鸭| mcv偏低是什么意思| 2025是什么生肖年| 白痰是什么原因| 尿发黄是什么原因| 今天什么生肖冲什么生肖| 左小腿麻木是什么原因| 跑龙套是什么意思| 岑字五行属什么| 反流性食管炎不能吃什么食物| 提手旁加茶念什么| 什么茶减肥效果最好| 长脸适合什么短头发| 菊花可以和什么一起泡水喝| 孕妇用什么驱蚊最好| 牙痛 吃什么药| 当律师需要什么条件| 准备要孩子需要注意什么| 传媒公司是干什么的| 泡泡像什么| cd什么意思| 神经酸是什么| 百度

李晓杰暖心力作《早点回家》MV上线 缩短春运回家路


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

Line Branch Exec Source
1 /*
2 * Copyright (C) 2010 Georg Martius <georg.martius@web.de>
3 * Copyright (C) 2010 Daniel G. Taylor <dan@programmer-art.org>
4 *
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
22 /**
23 * @file
24 * transform input video
25 */
26
27 #include "libavutil/common.h"
28 #include "libavutil/avassert.h"
29
30 #include "transform.h"
31
32 #define INTERPOLATE_METHOD(name) \
33 static uint8_t name(float x, float y, const uint8_t *src, \
34 int width, int height, int stride, uint8_t def)
35
36 #define PIXEL(img, x, y, w, h, stride, def) \
37 ((x) < 0 || (y) < 0) ? (def) : \
38 (((x) >= (w) || (y) >= (h)) ? (def) : \
39 img[(x) + (y) * (stride)])
40
41 /**
42 * Nearest neighbor interpolation
43 */
44 INTERPOLATE_METHOD(interpolate_nearest)
45 {
46 return PIXEL(src, (int)(x + 0.5), (int)(y + 0.5), width, height, stride, def);
47 }
48
49 /**
50 * Bilinear interpolation
51 */
52 INTERPOLATE_METHOD(interpolate_bilinear)
53 {
54 int x_c, x_f, y_c, y_f;
55 int v1, v2, v3, v4;
56
57 if (x < -1 || x > width || y < -1 || y > height) {
58 return def;
59 } else {
60 x_f = (int)x;
61 x_c = x_f + 1;
62
63 y_f = (int)y;
64 y_c = y_f + 1;
65
66 v1 = PIXEL(src, x_c, y_c, width, height, stride, def);
67 v2 = PIXEL(src, x_c, y_f, width, height, stride, def);
68 v3 = PIXEL(src, x_f, y_c, width, height, stride, def);
69 v4 = PIXEL(src, x_f, y_f, width, height, stride, def);
70
71 return (v1*(x - x_f)*(y - y_f) + v2*((x - x_f)*(y_c - y)) +
72 v3*(x_c - x)*(y - y_f) + v4*((x_c - x)*(y_c - y)));
73 }
74 }
75
76 /**
77 * Biquadratic interpolation
78 */
79 INTERPOLATE_METHOD(interpolate_biquadratic)
80 {
81 int x_c, x_f, y_c, y_f;
82 uint8_t v1, v2, v3, v4;
83 float f1, f2, f3, f4;
84
85 if (x < - 1 || x > width || y < -1 || y > height)
86 return def;
87 else {
88 x_f = (int)x;
89 x_c = x_f + 1;
90 y_f = (int)y;
91 y_c = y_f + 1;
92
93 v1 = PIXEL(src, x_c, y_c, width, height, stride, def);
94 v2 = PIXEL(src, x_c, y_f, width, height, stride, def);
95 v3 = PIXEL(src, x_f, y_c, width, height, stride, def);
96 v4 = PIXEL(src, x_f, y_f, width, height, stride, def);
97
98 f1 = 1 - sqrt((x_c - x) * (y_c - y));
99 f2 = 1 - sqrt((x_c - x) * (y - y_f));
100 f3 = 1 - sqrt((x - x_f) * (y_c - y));
101 f4 = 1 - sqrt((x - x_f) * (y - y_f));
102 return (v1 * f1 + v2 * f2 + v3 * f3 + v4 * f4) / (f1 + f2 + f3 + f4);
103 }
104 }
105
106 void ff_get_matrix(
107 float x_shift,
108 float y_shift,
109 float angle,
110 float scale_x,
111 float scale_y,
112 float *matrix
113 ) {
114 matrix[0] = scale_x * cos(angle);
115 matrix[1] = -sin(angle);
116 matrix[2] = x_shift;
117 matrix[3] = -matrix[1];
118 matrix[4] = scale_y * cos(angle);
119 matrix[5] = y_shift;
120 matrix[6] = 0;
121 matrix[7] = 0;
122 matrix[8] = 1;
123 }
124
125 int ff_affine_transform(const uint8_t *src, uint8_t *dst,
126 int src_stride, int dst_stride,
127 int width, int height, const float *matrix,
128 enum InterpolateMethod interpolate,
129 enum FillMethod fill)
130 {
131 int x, y;
132 float x_s, y_s;
133 uint8_t def = 0;
134 uint8_t (*func)(float, float, const uint8_t *, int, int, int, uint8_t) = NULL;
135
136 switch(interpolate) {
137 case INTERPOLATE_NEAREST:
138 func = interpolate_nearest;
139 break;
140 case INTERPOLATE_BILINEAR:
141 func = interpolate_bilinear;
142 break;
143 case INTERPOLATE_BIQUADRATIC:
144 func = interpolate_biquadratic;
145 break;
146 default:
147 return AVERROR(EINVAL);
148 }
149
150 for (y = 0; y < height; y++) {
151 for(x = 0; x < width; x++) {
152 x_s = x * matrix[0] + y * matrix[1] + matrix[2];
153 y_s = x * matrix[3] + y * matrix[4] + matrix[5];
154
155 switch(fill) {
156 case FILL_ORIGINAL:
157 def = src[y * src_stride + x];
158 break;
159 case FILL_CLAMP:
160 y_s = av_clipf(y_s, 0, height - 1);
161 x_s = av_clipf(x_s, 0, width - 1);
162 def = src[(int)y_s * src_stride + (int)x_s];
163 break;
164 case FILL_MIRROR:
165 x_s = avpriv_mirror(x_s, width-1);
166 y_s = avpriv_mirror(y_s, height-1);
167
168 av_assert2(x_s >= 0 && y_s >= 0);
169 av_assert2(x_s < width && y_s < height);
170 def = src[(int)y_s * src_stride + (int)x_s];
171 }
172
173 dst[y * dst_stride + x] = func(x_s, y_s, src, width, height, src_stride, def);
174 }
175 }
176 return 0;
177 }
178

ami是什么意思 飞机下降时耳朵疼是什么原因 胃不舒服挂什么科 潜血十一是什么意思 解落三秋叶的解是什么意思
九月十七日是什么星座 肾结石的症状是什么 边界尚清是什么意思 两个口是什么字 乳头大是什么原因
计划生育什么时候开始的 仓鼠可以吃什么水果 肚脐下面疼是什么原因 肩胛骨缝疼挂什么科 心什么肉什么
钼靶是什么意思 胖大海配什么喝治咽炎 病逝是什么意思 眼压高滴什么眼药水 包茎不割会有什么影响
睡眠不好用什么泡脚助于睡眠hcv9jop1ns3r.cn 人工授精是什么意思hcv8jop0ns4r.cn 什么叫犹太人hcv7jop4ns5r.cn 尿中有泡沫是什么原因hcv9jop3ns1r.cn 傻子是什么意思hcv8jop8ns8r.cn
电销是什么hanqikai.com reading是什么意思hcv8jop1ns7r.cn 戒指戴哪个手指代表什么hcv9jop0ns7r.cn 脾气虚吃什么中成药fenrenren.com wmf是什么牌子hcv7jop4ns6r.cn
糖醋鱼用什么鱼hcv8jop5ns4r.cn dennis什么意思hcv7jop9ns4r.cn 张牙舞爪的张是什么意思hcv8jop6ns2r.cn 山竹什么人不能吃hcv9jop5ns1r.cn 吃什么能养肝护肝hcv9jop7ns4r.cn
来大姨妈拉肚子是什么原因hcv8jop8ns9r.cn 什么是本命年hkuteam.com 什么什么本本hcv8jop9ns1r.cn camus是什么酒hcv8jop3ns1r.cn 最高检检察长什么级别hcv8jop1ns6r.cn
百度