新疆人为什么不吃猪肉| 什么大牌护肤品好用| 肉便器是什么东西| 空调风扇不转是什么原因| 什么是等位基因| 血晕症是什么病| 祭祀什么意思| 男性经常手淫有什么危害| 回忆杀是什么意思| 支原体抗体阳性是什么意思| 光是什么意思| 意象是什么意思| 能力很强的动物是什么| 林心如什么学历| 激素6项什么时候查| 吃海鲜不能吃什么| 什么上树全靠一张嘴| 人为什么| 牛瓦沟是什么部位| 喉咙发炎吃什么药最好| 西洋参有什么功效和作用| 什么是认知行为疗法| r值是什么| c罗全名叫什么| 错过是什么意思| 猴子怕什么| 编者按是什么意思| 杠杆炒股是什么意思| 小便发红是什么症状男| 实至名归什么意思| 孕吐一般从什么时候开始| 逍遥丸主要治什么病| 怀孕吃辣对胎儿有什么影响| 阴道内壁是什么样的| 人绒毛膜促性腺激素是什么意思| 岁贡生是什么意思| 心神不宁是什么意思| 酸奶有什么好处| 猪拉稀用什么药最快| 腿脚肿胀是什么原因引起的| 微信头像用什么好| 什么是直系亲属| 料理机是干什么用的| 眼睛老是流眼泪是什么原因| 撮箕是什么意思| carrots是什么意思| 1月30号是什么星座| 备孕前要注意什么| 舌头有黑点是什么原因| 肛门瘙痒是什么问题| 喝酒打嗝是什么原因| 什么是1型和2型糖尿病| 空腹胰岛素低说明什么| 副县长是什么级别干部| 电气石是什么东西| 脑梗的症状是什么| 早上6点到7点是什么时辰| 正团级是什么军衔| 四个金念什么| 乌龟代表什么数字| 过敏了吃什么药好| 榴莲吃了有什么好处| 查脂肪肝做什么检查| 肯德基为什么叫kfc| 狗头什么意思| 眉毛浓的男人代表什么| 腱鞘炎吃什么药好| 菌痢的症状是什么样| 李什么名字好听| 抑郁症挂什么科室| 八六年属什么| 什么叫主动脉硬化| 数是什么意思| 高血糖可以吃什么水果| 心包填塞三联征是什么| 11月20号什么星座| 十月7号是什么星座| 嗷嗷待哺是什么意思| 拆线去医院挂什么科| 小便憋不住是什么原因| 属鸡的女生和什么属相最配| 如意是干什么用的| 第一胎打掉会有什么影响| 吃什么补红细胞最快| 吃什么可以来月经最快最有效| 中耳炎去药店买什么药| 什么样的情况下需要做肠镜| 皮癣是什么原因引起的| 人体7大营养素是什么| 什么零食热量低有利于减肥| 血压表什么牌子的好最准确最耐用| 怎么判断自己什么脸型| 早上起来嘴巴发苦是什么原因| 两个克念什么| 升结肠管状腺瘤是什么意思| he是什么气体| 这个季节种什么菜合适| 脊髓空洞症是什么病| 吃西兰花有什么好处| 脉涩是什么意思| 农历六月十一是什么星座| 你要做什么| 雕琢是什么意思| 牛大力和什么泡酒壮阳| 行尸走肉是什么动物| 金牛座和什么座最配| 做梦下大雨是什么兆头| 梦见蛇咬我是什么意思| outdoor是什么意思| 醍醐灌顶什么意思| 三花五罗都是什么鱼| 胰腺上长瘤意味着什么| 梳子什么材质的好| 崩盘是什么意思| 拉开帷幕是什么意思| 囤货是什么意思| 掉头发是身体缺少什么| 脑梗吃什么食物| 女性备孕吃什么养卵泡| 文定之喜是什么意思| 红枣有什么功效和作用| 什么孩子该看心理医生| 吃什么消除肺部结节| 女生胸疼是什么原因| 小孩腹泻吃什么药好得快| 豆沙馅可以做什么美食| c3是什么驾驶证| 一个草字头一个见念什么| 甲减长期服用优甲乐有什么危害| 乇是什么意思| nk细胞是什么| 什么呀| 三点水加亘念什么| 鼻甲肥大吃什么药最好| 人乳头瘤病毒56型阳性是什么意思| 龟头炎用什么药好| 夏花是什么意思| 96年什么命| 梦见戴手表是什么意思| 什么是直销| 肠绞痛吃什么药| 做梦笑出声是什么预兆| 蜂窝网络是什么| diy什么意思| 感染幽门螺旋杆菌会出现什么症状| 石斛的作用是什么| 生活防水是什么意思| 上眼皮突然肿了是什么原因| 弼马温是什么意思| 月经期可以吃什么水果| 绝代双骄是什么意思| 梦见生姜是什么意思| 单核细胞百分比偏高是什么原因| 后装治疗是什么意思| 倒签是什么意思| 穿刺和活检有什么区别| 超声检查是什么| 尿痛什么原因引起的| 冬虫夏草生长在什么地方| 狗毛对人体有什么危害| 打感情牌是什么意思| fashion什么意思| 脑血管痉挛是什么原因引起的| 面部油腻是什么原因| 欠是什么意思| 银河系是什么| 润月是什么意思| edifice是什么牌子手表| 短兵相见是什么意思| 屈臣氏是卖什么的| mandy是什么意思| 密度是什么| 宫颈糜烂用什么药比较好| 肝血不足吃什么补最快| 待客是什么意思| 兆后面是什么单位| 什么是精神病| 什么东西补铁| 信的拼音是什么| aoc是什么牌子| 为什么硬一会就软了| 窦性心律是什么| 补白蛋白吃什么食物最快最好| a型rhd阳性是什么意思| 血癌是什么原因造成的| 薄荷脑是什么东西| 变异是什么意思| 宝宝干咳嗽是什么原因| 孩子专注力差去什么医院检查| 男性为什么长丝状疣| 猪油吃多了有什么好处和坏处| 空杯是什么意思| 三超是指什么| 五福是什么生肖| 狗皮膏药是什么意思| 脸过敏发红痒擦什么药| 夜卧早起是什么意思| 命里缺什么怎么看| 渐冻症是什么病| 体恤是什么意思| 电解质氯高是什么原因| 阴道b超检查什么| 风寒感冒喉咙痛吃什么药| 葡萄胎是什么| 为什么上课会犯困| 最早的春联是写在什么上面的| 睡觉磨牙是什么原因引起的| 双肺上叶肺大泡是什么意思| 什么鞋穿着舒服| 时年是什么意思| 青少年长白头发是什么原因| 血压低什么症状| 什么是液化| 梦见和老公吵架是什么意思| 吴亦凡帅到什么程度| 雀子是什么意思| 乳腺癌挂什么科| ecg什么意思| 心电图电轴右偏是什么意思| 黑白蛇是什么蛇| 姨妈的老公叫什么| 偷窥什么意思| 999足金是什么意思| 脑干出血是什么原因造成的| 用盐泡脚有什么好处| 10月20是什么星座| 改嫁是什么意思| ms什么意思| 县委办公室主任是什么级别| 7月出生是什么星座| 风凉话是什么意思| 精神衰弱吃什么药| 压力与什么有关| 跳脱是什么意思| 什么时候怀孕几率最高| 为什么会长小肉粒| 转音是什么意思| 有趣是什么意思| 胃反酸是什么原因造成的| 换手率什么意思| 转氨酶和转移酶有什么区别| 牛仔是什么面料| 经常感觉口渴口干是什么原因| 狐臭挂什么科室的号| 下午3点到5点是什么时辰| 头孢不能和什么食物一起吃| 喉咙痛喝什么| 抽血后头晕是什么原因| 子宫附件彩超检查什么| 什么网站可以看黄色视频| 爬山需要准备什么东西| 请大家知悉是什么意思| 查凝血酶能查出什么病| 女性胆固醇高吃什么| 郭晶晶什么学历| 心动是什么意思| 玉和玉髓有什么区别| 泉中水是什么生肖| 什么是ci| 乳腺看什么科室| 用眼过度用什么眼药水| 荔枝与什么不能同吃| fs是什么单位| 熊猫血是什么血型| 百度

联通查流量发什么短信


Directory: ../../../ffmpeg/
File: src/libavcodec/mvcdec.c
Date: 2025-08-04 00:43:16
Exec Total Coverage
Lines: 101 119 84.9%
Functions: 5 5 100.0%
Branches: 140 160 87.5%

Line Branch Exec Source
1 /*
2 * Silicon Graphics Motion Video Compressor 1 & 2 decoder
3 * Copyright (c) 2012 Peter Ross
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 * Silicon Graphics Motion Video Compressor 1 & 2 decoder
25 */
26
27 #include "config_components.h"
28
29 #include "libavutil/intreadwrite.h"
30
31 #include "avcodec.h"
32 #include "bytestream.h"
33 #include "codec_internal.h"
34 #include "decode.h"
35
36 typedef struct MvcContext {
37 int vflip;
38 } MvcContext;
39
40 4 static av_cold int mvc_decode_init(AVCodecContext *avctx)
41 {
42 4 MvcContext *s = avctx->priv_data;
43 4 int width = avctx->width;
44 4 int height = avctx->height;
45 int ret;
46
47
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
4 if (avctx->codec_id == AV_CODEC_ID_MVC1) {
48 2 width += 3;
49 2 height += 3;
50 }
51 4 width &= ~3;
52 4 height &= ~3;
53
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 4 times.
4 if ((ret = ff_set_dimensions(avctx, width, height)) < 0)
54 return ret;
55
56 8 avctx->pix_fmt = (avctx->codec_id == AV_CODEC_ID_MVC1) ? AV_PIX_FMT_RGB555
57
2/2
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 2 times.
4 : AV_PIX_FMT_RGB32;
58
1/2
✓ Branch 0 taken 4 times.
✗ Branch 1 not taken.
8 s->vflip = avctx->extradata_size >= 9 &&
59
1/2
✓ Branch 0 taken 4 times.
✗ Branch 1 not taken.
4 !memcmp(avctx->extradata + avctx->extradata_size - 9, "BottomUp", 9);
60 4 return 0;
61 }
62
63 28 static int decode_mvc1(AVCodecContext *avctx, GetByteContext *gb,
64 uint8_t *dst_start, int width, int height, int linesize)
65 {
66 uint8_t *dst;
67 uint16_t v[8];
68 int mask, x, y, i;
69
70
2/2
✓ Branch 0 taken 2016 times.
✓ Branch 1 taken 28 times.
2044 for (y = 0; y < height; y += 4) {
71
2/2
✓ Branch 0 taken 193536 times.
✓ Branch 1 taken 2016 times.
195552 for (x = 0; x < width; x += 4) {
72
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 193536 times.
193536 if (bytestream2_get_bytes_left(gb) < 6)
73 return 0;
74
75 193536 mask = bytestream2_get_be16u(gb);
76 193536 v[0] = bytestream2_get_be16u(gb);
77 193536 v[1] = bytestream2_get_be16u(gb);
78
2/2
✓ Branch 0 taken 35749 times.
✓ Branch 1 taken 157787 times.
193536 if ((v[0] & 0x8000)) {
79
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 35749 times.
35749 if (bytestream2_get_bytes_left(gb) < 12) {
80 av_log(avctx, AV_LOG_WARNING, "buffer overflow\n");
81 return AVERROR_INVALIDDATA;
82 }
83
2/2
✓ Branch 0 taken 214494 times.
✓ Branch 1 taken 35749 times.
250243 for (i = 2; i < 8; i++)
84 214494 v[i] = bytestream2_get_be16u(gb);
85 } else {
86 157787 v[2] = v[4] = v[6] = v[0];
87 157787 v[3] = v[5] = v[7] = v[1];
88 }
89
90 #define PIX16(target, true, false) \
91 i = (mask & target) ? true : false; \
92 AV_WN16A(dst, v[i] & 0x7FFF); \
93 dst += 2;
94
95 #define ROW16(row, a1, a0, b1, b0) \
96 dst = dst_start + (y + row) * linesize + x * 2; \
97 PIX16(1 << (row * 4), a1, a0) \
98 PIX16(1 << (row * 4 + 1), a1, a0) \
99 PIX16(1 << (row * 4 + 2), b1, b0) \
100 PIX16(1 << (row * 4 + 3), b1, b0)
101
102
4/4
✓ Branch 0 taken 104958 times.
✓ Branch 1 taken 88578 times.
✓ Branch 2 taken 104746 times.
✓ Branch 3 taken 88790 times.
193536 ROW16(0, 0, 1, 2, 3);
103
4/4
✓ Branch 0 taken 101604 times.
✓ Branch 1 taken 91932 times.
✓ Branch 2 taken 100965 times.
✓ Branch 3 taken 92571 times.
193536 ROW16(1, 0, 1, 2, 3);
104
8/8
✓ Branch 0 taken 103317 times.
✓ Branch 1 taken 90219 times.
✓ Branch 2 taken 105128 times.
✓ Branch 3 taken 88408 times.
✓ Branch 4 taken 105316 times.
✓ Branch 5 taken 88220 times.
✓ Branch 6 taken 105104 times.
✓ Branch 7 taken 88432 times.
193536 ROW16(2, 4, 5, 6, 7);
105
8/8
✓ Branch 0 taken 96671 times.
✓ Branch 1 taken 96865 times.
✓ Branch 2 taken 97605 times.
✓ Branch 3 taken 95931 times.
✓ Branch 4 taken 97659 times.
✓ Branch 5 taken 95877 times.
✓ Branch 6 taken 97511 times.
✓ Branch 7 taken 96025 times.
193536 ROW16(3, 4, 5, 6, 7);
106 }
107 }
108 28 return 0;
109 }
110
111 45612 static void set_4x4_block(uint8_t *dst, int linesize, uint32_t pixel)
112 {
113 int i, j;
114
2/2
✓ Branch 0 taken 182448 times.
✓ Branch 1 taken 45612 times.
228060 for (j = 0; j < 4; j++)
115
2/2
✓ Branch 0 taken 729792 times.
✓ Branch 1 taken 182448 times.
912240 for (i = 0; i < 4; i++)
116 729792 AV_WN32A(dst + j * linesize + i * 4, pixel);
117 45612 }
118
119 #define PIX32(target, true, false) \
120 AV_WN32A(dst, (mask & target) ? v[true] : v[false]); \
121 dst += 4;
122
123 #define ROW32(row, a1, a0, b1, b0) \
124 dst = dst_start + (y + row) * linesize + x * 4; \
125 PIX32(1 << (row * 4), a1, a0) \
126 PIX32(1 << (row * 4 + 1), a1, a0) \
127 PIX32(1 << (row * 4 + 2), b1, b0) \
128 PIX32(1 << (row * 4 + 3), b1, b0)
129
130 #define MVC2_BLOCK \
131 ROW32(0, 1, 0, 3, 2); \
132 ROW32(1, 1, 0, 3, 2); \
133 ROW32(2, 5, 4, 7, 6); \
134 ROW32(3, 5, 4, 7, 6);
135
136 32 static int decode_mvc2(AVCodecContext *avctx, GetByteContext *gb,
137 uint8_t *dst_start, int width, int height,
138 int linesize, int vflip)
139 {
140 uint8_t *dst;
141 uint32_t color[128], v[8];
142 int w, h, nb_colors, i, x, y, p0, p1, mask;
143
144
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 32 times.
32 if (bytestream2_get_bytes_left(gb) < 6)
145 return AVERROR_INVALIDDATA;
146
147 32 w = bytestream2_get_be16u(gb);
148 32 h = bytestream2_get_be16u(gb);
149
2/4
✓ Branch 0 taken 32 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 32 times.
32 if ((w & ~3) != width || (h & ~3) != height)
150 av_log(avctx, AV_LOG_WARNING, "dimension mismatch\n");
151
152
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 32 times.
32 if (bytestream2_get_byteu(gb)) {
153 avpriv_request_sample(avctx, "bitmap feature");
154 return AVERROR_PATCHWELCOME;
155 }
156
157 32 nb_colors = bytestream2_get_byteu(gb);
158
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 32 times.
32 if (bytestream2_get_bytes_left(gb) < nb_colors * 3)
159 return AVERROR_INVALIDDATA;
160
2/2
✓ Branch 0 taken 4093 times.
✓ Branch 1 taken 32 times.
4125 for (i = 0; i < FFMIN(nb_colors, 128); i++)
161 4093 color[i] = 0xFF000000 | bytestream2_get_be24u(gb);
162
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 32 times.
32 if (nb_colors > 128)
163 bytestream2_skip(gb, (nb_colors - 128) * 3);
164
165
1/2
✓ Branch 0 taken 32 times.
✗ Branch 1 not taken.
32 if (vflip) {
166 32 dst_start += (height - 1) * linesize;
167 32 linesize = -linesize;
168 }
169 32 x = y = 0;
170
1/2
✓ Branch 1 taken 63168 times.
✗ Branch 2 not taken.
63168 while (bytestream2_get_bytes_left(gb) >= 1) {
171 63168 p0 = bytestream2_get_byteu(gb);
172
2/2
✓ Branch 0 taken 45612 times.
✓ Branch 1 taken 17556 times.
63168 if ((p0 & 0x80)) {
173
2/2
✓ Branch 0 taken 1290 times.
✓ Branch 1 taken 44322 times.
45612 if ((p0 & 0x40)) {
174 1290 p0 &= 0x3F;
175 1290 p0 = (p0 << 2) | (p0 >> 4);
176 1290 set_4x4_block(dst_start + y * linesize + x * 4, linesize,
177 1290 0xFF000000 | (p0 << 16) | (p0 << 8) | p0);
178 } else {
179 int g, r;
180 44322 p0 &= 0x3F;
181 44322 p0 = (p0 << 2) | (p0 >> 4);
182
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 44322 times.
44322 if (bytestream2_get_bytes_left(gb) < 2)
183 return AVERROR_INVALIDDATA;
184 44322 g = bytestream2_get_byteu(gb);
185 44322 r = bytestream2_get_byteu(gb);
186 44322 set_4x4_block(dst_start + y * linesize + x * 4, linesize,
187 44322 0xFF000000 | (r << 16) | (g << 8) | p0);
188 }
189 } else {
190
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 17556 times.
17556 if (bytestream2_get_bytes_left(gb) < 1)
191 return AVERROR_INVALIDDATA;
192 17556 p1 = bytestream2_get_byteu(gb);
193
2/2
✓ Branch 0 taken 3087 times.
✓ Branch 1 taken 14469 times.
17556 if ((p1 & 0x80)) {
194
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 3087 times.
3087 if ((p0 & 0x7F) == (p1 & 0x7F)) {
195 set_4x4_block(dst_start + y * linesize + x * 4, linesize,
196 color[p0 & 0x7F]);
197 } else {
198
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 3087 times.
3087 if (bytestream2_get_bytes_left(gb) < 2)
199 return AVERROR_INVALIDDATA;
200 3087 v[0] = v[2] = v[4] = v[6] = color[p0 & 0x7F];
201 3087 v[1] = v[3] = v[5] = v[7] = color[p1 & 0x7F];
202 3087 mask = bytestream2_get_le16u(gb);
203
32/32
✓ Branch 0 taken 1546 times.
✓ Branch 1 taken 1541 times.
✓ Branch 2 taken 1562 times.
✓ Branch 3 taken 1525 times.
✓ Branch 4 taken 1593 times.
✓ Branch 5 taken 1494 times.
✓ Branch 6 taken 1592 times.
✓ Branch 7 taken 1495 times.
✓ Branch 8 taken 1603 times.
✓ Branch 9 taken 1484 times.
✓ Branch 10 taken 1575 times.
✓ Branch 11 taken 1512 times.
✓ Branch 12 taken 1591 times.
✓ Branch 13 taken 1496 times.
✓ Branch 14 taken 1730 times.
✓ Branch 15 taken 1357 times.
✓ Branch 16 taken 1543 times.
✓ Branch 17 taken 1544 times.
✓ Branch 18 taken 1573 times.
✓ Branch 19 taken 1514 times.
✓ Branch 20 taken 1555 times.
✓ Branch 21 taken 1532 times.
✓ Branch 22 taken 1631 times.
✓ Branch 23 taken 1456 times.
✓ Branch 24 taken 1613 times.
✓ Branch 25 taken 1474 times.
✓ Branch 26 taken 1653 times.
✓ Branch 27 taken 1434 times.
✓ Branch 28 taken 1624 times.
✓ Branch 29 taken 1463 times.
✓ Branch 30 taken 1645 times.
✓ Branch 31 taken 1442 times.
3087 MVC2_BLOCK
204 }
205 } else {
206
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 14469 times.
14469 if (bytestream2_get_bytes_left(gb) < 8)
207 return AVERROR_INVALIDDATA;
208 14469 v[0] = color[p0 & 0x7F];
209 14469 v[1] = color[p1 & 0x7F];
210
2/2
✓ Branch 0 taken 86814 times.
✓ Branch 1 taken 14469 times.
101283 for (i = 2; i < 8; i++)
211 86814 v[i] = color[bytestream2_get_byteu(gb) & 0x7F];
212 14469 mask = bytestream2_get_le16u(gb);
213
32/32
✓ Branch 0 taken 6171 times.
✓ Branch 1 taken 8298 times.
✓ Branch 2 taken 5659 times.
✓ Branch 3 taken 8810 times.
✓ Branch 4 taken 5487 times.
✓ Branch 5 taken 8982 times.
✓ Branch 6 taken 5866 times.
✓ Branch 7 taken 8603 times.
✓ Branch 8 taken 6339 times.
✓ Branch 9 taken 8130 times.
✓ Branch 10 taken 5669 times.
✓ Branch 11 taken 8800 times.
✓ Branch 12 taken 5672 times.
✓ Branch 13 taken 8797 times.
✓ Branch 14 taken 5986 times.
✓ Branch 15 taken 8483 times.
✓ Branch 16 taken 5649 times.
✓ Branch 17 taken 8820 times.
✓ Branch 18 taken 5190 times.
✓ Branch 19 taken 9279 times.
✓ Branch 20 taken 5185 times.
✓ Branch 21 taken 9284 times.
✓ Branch 22 taken 5713 times.
✓ Branch 23 taken 8756 times.
✓ Branch 24 taken 6504 times.
✓ Branch 25 taken 7965 times.
✓ Branch 26 taken 5848 times.
✓ Branch 27 taken 8621 times.
✓ Branch 28 taken 5877 times.
✓ Branch 29 taken 8592 times.
✓ Branch 30 taken 6116 times.
✓ Branch 31 taken 8353 times.
14469 MVC2_BLOCK
214 }
215 }
216
217 63168 x += 4;
218
2/2
✓ Branch 0 taken 1504 times.
✓ Branch 1 taken 61664 times.
63168 if (x >= width) {
219 1504 y += 4;
220
2/2
✓ Branch 0 taken 32 times.
✓ Branch 1 taken 1472 times.
1504 if (y >= height)
221 32 break;
222 1472 x = 0;
223 }
224 }
225 32 return 0;
226 }
227
228 60 static int mvc_decode_frame(AVCodecContext *avctx, AVFrame *frame,
229 int *got_frame, AVPacket *avpkt)
230 {
231 60 MvcContext *s = avctx->priv_data;
232 GetByteContext gb;
233 int ret;
234
235
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 60 times.
60 if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
236 return ret;
237
238 60 bytestream2_init(&gb, avpkt->data, avpkt->size);
239
2/2
✓ Branch 0 taken 28 times.
✓ Branch 1 taken 32 times.
60 if (avctx->codec_id == AV_CODEC_ID_MVC1)
240 28 ret = decode_mvc1(avctx, &gb, frame->data[0],
241 avctx->width, avctx->height, frame->linesize[0]);
242 else
243 32 ret = decode_mvc2(avctx, &gb, frame->data[0],
244 avctx->width, avctx->height, frame->linesize[0],
245 s->vflip);
246
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 60 times.
60 if (ret < 0)
247 return ret;
248
249 60 *got_frame = 1;
250
251 60 return avpkt->size;
252 }
253
254 #if CONFIG_MVC1_DECODER
255 const FFCodec ff_mvc1_decoder = {
256 .p.name = "mvc1",
257 CODEC_LONG_NAME("Silicon Graphics Motion Video Compressor 1"),
258 .p.type = AVMEDIA_TYPE_VIDEO,
259 .p.id = AV_CODEC_ID_MVC1,
260 .priv_data_size = sizeof(MvcContext),
261 .init = mvc_decode_init,
262 FF_CODEC_DECODE_CB(mvc_decode_frame),
263 .p.capabilities = AV_CODEC_CAP_DR1,
264 };
265 #endif
266
267 #if CONFIG_MVC2_DECODER
268 const FFCodec ff_mvc2_decoder = {
269 .p.name = "mvc2",
270 CODEC_LONG_NAME("Silicon Graphics Motion Video Compressor 2"),
271 .p.type = AVMEDIA_TYPE_VIDEO,
272 .p.id = AV_CODEC_ID_MVC2,
273 .priv_data_size = sizeof(MvcContext),
274 .init = mvc_decode_init,
275 FF_CODEC_DECODE_CB(mvc_decode_frame),
276 .p.capabilities = AV_CODEC_CAP_DR1,
277 };
278 #endif
279

什么室什么空 宾馆和酒店有什么区别 血糖高一日三餐吃什么东西最适合 什么叫牙周炎 霍金什么时候去世
切诺是什么药 zbc什么意思 吃蒲公英有什么好处 喝什么解酒最快最有效 鼻屎多是什么原因
开端是什么意思 现在有什么赚钱的路子 吃什么尿酸降得快 胰腺炎吃什么消炎药 嗓子发炎是什么原因引起的
宝宝说话晚是什么原因造成的 胃肠炎可以吃什么水果 dm表示什么单位 什么病 面色潮红是什么原因
血糖高要忌口什么96micro.com 逆商是什么意思hcv9jop1ns9r.cn 什么是阑尾炎hcv8jop1ns1r.cn 井是什么生肖hcv8jop2ns2r.cn 三月是什么月hcv8jop9ns0r.cn
18号来月经什么时候是排卵期hcv8jop6ns6r.cn 公务员国考和省考有什么区别wuhaiwuya.com 脚背痛什么原因引起的hcv9jop4ns0r.cn 涩是什么意思hcv7jop6ns5r.cn 眼底出血用什么眼药水hcv9jop0ns2r.cn
尿多尿急是什么原因jasonfriends.com 79年属什么hcv7jop6ns7r.cn 东窗事发是什么意思hcv7jop6ns5r.cn 脖子右侧疼是什么原因hcv8jop7ns4r.cn 脚拇指发麻是什么原因liaochangning.com
鹌鹑蛋不能和什么一起吃inbungee.com 起付线是什么意思hcv9jop3ns9r.cn 18是什么意思hcv7jop5ns2r.cn 阑尾炎有什么症状hcv9jop0ns6r.cn 什么的笋hcv9jop0ns9r.cn
百度