7月4号是什么节日| 不羁放纵是什么意思| 梦见媳妇出轨什么预兆| 急性肠胃炎吃什么| 送锦旗有什么讲究| 什么是假声| 两侧肋骨疼是什么原因| 离职什么意思| 什么是无产阶级| 韬略是什么意思| 三色线分别代表什么| 你想什么| 治疗晕病有什么好方法| 肝风内动是什么意思| 儿童不长个子去医院挂什么科| 脑门疼是什么原因| 蝙蝠粪便是什么中药| 老年人适合吃什么水果| 松鼠尾巴有什么作用| 惊恐症是什么病| 首脑是什么意思| 草字头有什么字| 去迪拜打工需要什么条件| 为什么睾丸一边大一边小| min什么意思| 大专有什么专业| 化疗后白细胞低吃什么食物补得快| 坨坨什么意思| 粑粑是什么意思| 少女是什么意思| 吃什么食物有助于睡眠| on是什么牌子| 尿hcg阳性是什么意思| 瞿读什么| 什么是三公经费| 什么病不能喝酒| 难产是什么意思| 为什么会结石| 喝什么茶对肾好| 同样的药为什么价格相差很多| 黄盖代表什么生肖| 鹏字五行属什么| 预产期是什么意思| 风湿挂什么科| 甲钴胺治什么病| 打脸是什么意思| 枸橼酸是什么| 黄鼠狼喜欢吃什么东西| 一呼吸胸口疼是什么原因| 复方北豆根氨酚那敏片是什么药| speedo是什么牌子| 利率是什么意思| eeg是什么意思| 为什么会打哈欠| ct 是什么| 什么网站可以看黄色视频| 晚上吃芒果有什么好处和坏处| 牙疼吃什么食物好得快| 阿普唑仑片是什么药| 肠憩室是什么意思| 放飞自我是什么意思| 在吗是什么意思| 宝宝便秘吃什么食物好| 舌系带短有什么影响| 尿常规能检查出什么| 谋生是什么意思| 下体痒是什么原因| 局灶肠化是什么意思| e2是什么意思| 眩晕症是什么症状| 尿潜血阴性什么意思| 指标到校是什么意思| 爱心是什么意思| 七星伴月是什么意思| 腹部包块是什么样子的| 人格魅力是什么意思| 热依扎是什么民族| 什么奶茶最贵| 冰晶是什么| 拎不清是什么意思| 悉心栽培什么意思| 老年人喝什么蛋白粉好| 第二天叫什么日| 一碗香是什么菜| 含是什么意思| 菜鸟是什么意思| 4月25号是什么星座| 做好自己是什么意思| 猪八戒的真名叫什么| 扁桃体发炎挂什么科| 每天吃葡萄有什么好处和坏处| 未时右眼跳是什么预兆| 暇步士是什么档次品牌| 吃甲硝唑有什么副作用| 什么是溶血性贫血| 阴道干燥是什么原因| 唵嘛呢叭咪吽是什么意思| 不停的放屁是什么原因| 时乖命蹇是什么意思| 人为什么会打呼噜| 什么的摇篮| 三点水一个希读什么| 9.23什么星座| 身份证号码的数字代表什么意义| 眼压高有什么症状| 红枣什么时候吃最好| 晚上七点多是什么时辰| levis是什么牌子| 湖北古代叫什么| 36是什么罩杯| 人工念什么字| 基药是什么意思| 黑豆有什么功效和作用| 0.618是什么意思| 穷途末路什么意思| 7.14号是什么节日| 甾体是什么意思| 我国计划生育什么时候开始| 38岁属什么| vape是什么意思| 肺气肿是什么| 晚餐吃什么| 姓林的女孩取什么名字好| es什么意思| 包皮炎看什么科| rice什么意思| 重症医学科是干什么的| 十二指肠溃疡a1期什么意思| 女人脾虚吃什么药最好| 治疗勃起困难有什么药| 肝不好的人有什么症状| 程咬金的老婆叫什么| 彩妆是什么意思| 什么病不能吃空心菜| 经常吐是什么原因| 遗传物质是什么| 内能是什么| 车牌号选什么数字吉利| 新生儿嘴唇发紫是什么原因| 蚂蚁搬家是什么意思| 吃什么容易滑胎流产| 六味地黄丸有什么功效| 东吴是现在的什么地方| 4.22是什么日子| 低压高是什么原因引起的| 神经过敏是什么意思| 腱鞘炎贴什么膏药| 孕妇心情不好对胎儿有什么影响| 男人左手断掌是什么命| 头发细软是什么原因| 男人为什么会得尿结石| who是什么意思| 路人皆知的上一句歇后语是什么| 11月生日是什么星座| 地贫有什么症状| 香叶是什么树叶| 小孩小腿疼是什么原因引起的| 什么样的大山| 象牙白适合什么肤色| 尖锐湿疣吃什么药| 宫腔粘连是什么原因引起的| 酒鬼酒是什么香型| 蚊子不喜欢什么味道| 输卵管堵塞是什么原因造成的| 属马的跟什么属相最配| 流鼻血看病挂什么科| 儿童嗓子哑了什么原因| 如法炮制是什么意思| 养鱼为什么养单不养双| 苯是什么味道| 蛋白粉什么时候喝效果最好| 经期延长是什么原因引起的| 家伙是什么意思| 什么菜可以隔夜吃| 塔罗牌能算什么| 椰果是什么做的| 勺是什么意思| 米黄配什么颜色好看| 孕妇不吃饭对胎儿有什么影响| 今天生日什么星座| loa是什么意思| 拔罐挂什么科| 牙齿咬不动东西是什么原因| 胃反酸是什么原因| 尔字五行属什么| 女同学过生日送什么礼物比较好| 眼角长脂肪粒是什么原因| 槟榔为什么上瘾| ins是什么社交软件| 磷酸是什么| 脾胃气滞吃什么中成药| kj什么意思| 格格是什么意思| 局座是什么梗| 泛性恋是什么| 皮肤瘙痒是什么原因| 梦见自己抬棺材是什么意思| 酒精和碘伏有什么区别| 黄体破裂什么意思| 尿红细胞高是什么原因| 生物素是什么| 便宜的反义词是什么| t是什么火车| 2007年属什么生肖| 黄体生成素高是什么原因| 复方丹参片治什么病| 颈动脉硬化有什么症状| 阳是什么意思| 聚乙二醇400是什么| 529是什么意思| 什么是量子力学| 女人为什么比男人长寿| 看眼睛挂什么科| 双鱼男喜欢什么样的女生| 什么食物含叶黄素最多| 各生欢喜什么意思| 两个月没来月经是什么原因| 嗣后是什么意思| 沙棘有什么功效| 内伤是什么意思| 为什么一进去就射了| 起死回生是什么意思| 总是口腔溃疡是什么原因| 五月十六日是什么星座| 什么是失眠| 梦中梦是什么原因| 皮毒清软膏有什么功效| 猫吐了吃什么药| 吃避孕药会有什么副作用| 蜂蜜水什么时候喝最好| 小孩手指头脱皮是什么原因| 西米是什么字| 儒家思想是什么意思| 腰痛看什么科| 早唐筛查是检查什么| 3p 什么 感觉| 低钾有什么症状和危害| 在五行中属什么| 嘴里发甜是什么原因| 憩息是什么意思| AC是胎儿的什么意思| 不可开交是什么意思| 泌尿感染吃什么药最好| 1999年属兔的是什么命| 数字3五行属什么| 什么是君子| 湿热吃什么中药| 立刀旁与什么有关| 猫咪泪痕重是什么原因| 什么高| 甚嚣尘上什么意思| 上海的市花是什么| 昝是什么意思| 脱发吃什么维生素| 毛主席女儿为什么姓李| 连续打喷嚏是什么原因| 生龙活虎是什么生肖| 为什么8到10周容易胎停| 乳腺一类是什么意思| 什么叫上升星座| 湿气重吃什么能去湿气| 好不热闹是什么意思| 黑色柳丁是什么意思| 筋膜提升术是什么| 百度

创新驱动 激活第一动力(在习近平新时代中国特色社会主义思想指引下·代表委员畅谈抓落实)


Directory: ../../../ffmpeg/
File: src/libavformat/rtpenc_vc2hq.c
Date: 2025-08-04 11:35:17
Exec Total Coverage
Lines: 0 73 0.0%
Functions: 0 3 0.0%
Branches: 0 28 0.0%

Line Branch Exec Source
1 /*
2 * RTP packetizer for VC-2 HQ payload format (draft version 1) - experimental
3 * Copyright (c) 2016 Thomas Volkert <thomas@netzeal.de>
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 #include "libavutil/intreadwrite.h"
23 #include "libavcodec/dirac.h"
24 #include "libavcodec/get_bits.h"
25 #include "libavcodec/golomb.h"
26
27 #include "avformat.h"
28 #include "rtpenc.h"
29
30 #define RTP_VC2HQ_PL_HEADER_SIZE 4
31
32 #define DIRAC_DATA_UNIT_HEADER_SIZE 13
33 #define DIRAC_PIC_NR_SIZE 4
34 #define DIRAC_RTP_PCODE_HQ_PIC_FRAGMENT 0xEC
35
36 static void send_packet(AVFormatContext *ctx, uint8_t parse_code, int info_hdr_size, const uint8_t *buf, int size, int i, int f, int rtp_m)
37 {
38 RTPMuxContext *rtp_ctx = ctx->priv_data;
39
40 AV_WB16(&rtp_ctx->buf[0], 0); /* extended sequence number */
41 AV_WB8 (&rtp_ctx->buf[2], i ? (f ? (0x03) : (0x02)) : 0x00); /* flags: interlaced, second field */
42 AV_WB8 (&rtp_ctx->buf[3], parse_code);
43 if (size > 0)
44 memcpy(&rtp_ctx->buf[4 + info_hdr_size], buf, size);
45 ff_rtp_send_data(ctx, rtp_ctx->buf, RTP_VC2HQ_PL_HEADER_SIZE + info_hdr_size + size, rtp_m);
46 }
47
48 static int send_picture(AVFormatContext *ctx, const uint8_t *buf, int size, int interlaced)
49 {
50 RTPMuxContext *rtp_ctx = ctx->priv_data;
51 GetBitContext gc;
52 int lvl, second_field;
53 uint32_t pic_nr, wavelet_depth, prefix_bytes, size_scaler;
54 uint16_t frag_len;
55 char *info_hdr = &rtp_ctx->buf[4];
56
57 if (size < DIRAC_PIC_NR_SIZE)
58 return AVERROR(EINVAL);
59
60 pic_nr = AV_RB32(&buf[0]);
61 buf += DIRAC_PIC_NR_SIZE;
62 size -= DIRAC_PIC_NR_SIZE;
63 second_field = interlaced && (pic_nr & 0x01);
64
65 init_get_bits(&gc, buf, 8 * size);
66 get_interleaved_ue_golomb(&gc); /* wavelet_idx */
67 wavelet_depth = get_interleaved_ue_golomb(&gc);
68 get_interleaved_ue_golomb(&gc); /* num_x */
69 get_interleaved_ue_golomb(&gc); /* num_y */
70 prefix_bytes = get_interleaved_ue_golomb(&gc);
71 size_scaler = get_interleaved_ue_golomb(&gc);
72 /* pass the quantization matrices */
73 get_interleaved_ue_golomb(&gc);
74 for(lvl = 0; lvl < wavelet_depth; lvl++)
75 {
76 get_interleaved_ue_golomb(&gc);
77 get_interleaved_ue_golomb(&gc);
78 get_interleaved_ue_golomb(&gc);
79 }
80
81 frag_len = (get_bits_count(&gc) + 7) / 8; /* length of transform parameters */
82
83 AV_WB32(&info_hdr[ 0], pic_nr);
84 AV_WB16(&info_hdr[ 4], prefix_bytes);
85 AV_WB16(&info_hdr[ 6], size_scaler);
86 AV_WB16(&info_hdr[ 8], frag_len);
87 AV_WB16(&info_hdr[10], 0 /* nr. of slices */);
88 send_packet(ctx, DIRAC_RTP_PCODE_HQ_PIC_FRAGMENT, 12, buf, frag_len, interlaced, second_field, 0);
89 buf += frag_len;
90 size -= frag_len;
91
92 while (size > 0) {
93 frag_len = FFMIN(rtp_ctx->max_payload_size - 20 /* pl header */, size);
94 AV_WB16(&info_hdr[ 8], frag_len);
95 AV_WB16(&info_hdr[10], 1 /* nr. of slices */);
96 AV_WB16(&info_hdr[12], 0 /* slice x */);
97 AV_WB16(&info_hdr[14], 0 /* slice y */);
98
99 size -= frag_len;
100 send_packet(ctx, DIRAC_RTP_PCODE_HQ_PIC_FRAGMENT, 16, buf, frag_len, interlaced, second_field, size > 0 ? 0 : 1);
101 buf += frag_len;
102 }
103 return 0;
104 }
105
106 void ff_rtp_send_vc2hq(AVFormatContext *ctx, const uint8_t *frame_buf, int frame_size, int interlaced)
107 {
108 const uint8_t *end = frame_buf + frame_size;
109 const uint8_t *unit = frame_buf;
110 uint8_t parse_code;
111 uint32_t unit_size;
112
113 while (unit < end) {
114 parse_code = unit[4];
115 unit_size = AV_RB32(&unit[5]);
116
117 if (unit_size > end - unit)
118 break;
119
120 switch (parse_code) {
121 /* sequence header */
122 /* end of sequence */
123 case DIRAC_PCODE_SEQ_HEADER:
124 case DIRAC_PCODE_END_SEQ:
125 if (unit_size >= DIRAC_DATA_UNIT_HEADER_SIZE)
126 send_packet(ctx, parse_code, 0, unit + DIRAC_DATA_UNIT_HEADER_SIZE, unit_size - DIRAC_DATA_UNIT_HEADER_SIZE, 0, 0, 0);
127 break;
128 /* HQ picture */
129 case DIRAC_PCODE_PICTURE_HQ:
130 if (unit_size >= DIRAC_DATA_UNIT_HEADER_SIZE)
131 send_picture(ctx, unit + DIRAC_DATA_UNIT_HEADER_SIZE, unit_size - DIRAC_DATA_UNIT_HEADER_SIZE, interlaced);
132 break;
133 /* parse codes without specification */
134 case DIRAC_PCODE_AUX:
135 case DIRAC_PCODE_PAD:
136 break;
137 default:
138 avpriv_report_missing_feature(ctx, "VC-2 parse code %d", parse_code);
139 break;
140 }
141 unit += unit_size;
142 }
143 }
144

什么是气胸 甲状腺做什么检查最准确 戊肝抗体igg阳性是什么意思 右侧卵巢内囊性结构什么意思 优甲乐什么时候吃最好
孕妇梦见猪是什么意思 什么是脊柱侧弯 秋葵不适宜什么人吃 桑叶泡水喝有什么好处 连云港有什么好吃的
肛周脓肿吃什么消炎药 wonderland什么意思 老公的姐姐叫什么 小儿消化不良吃什么药最好 sansay是什么牌子
高考明天考什么 什么是抗阻运动 脊髓炎是什么病 什么作用 白露是什么季节的节气
河南人喜欢吃什么菜hcv8jop6ns2r.cn 乳头突然疼痛什么原因hcv9jop3ns1r.cn 对立面是什么意思hcv9jop6ns4r.cn 婴儿呛奶是什么原因引起的hcv8jop2ns0r.cn 肝腹水有什么症状hcv9jop1ns9r.cn
为什么一直打哈欠hcv8jop6ns2r.cn 又双叒叕念什么啥意思hcv9jop6ns7r.cn 肺气不足吃什么中成药hcv7jop5ns6r.cn 病案号是什么意思naasee.com 梦见小孩是什么意思hcv7jop9ns4r.cn
祖师香是什么意思hcv9jop2ns8r.cn 奇亚籽是什么hcv9jop2ns1r.cn 荨麻疹用什么药好hcv9jop5ns7r.cn 胸闷气短看什么科hcv9jop2ns3r.cn 蠓虫叮咬后涂什么药膏hcv7jop5ns2r.cn
2型糖尿病是什么意思hcv7jop4ns8r.cn 为什么感冒药吃了想睡觉hcv8jop9ns8r.cn 喝咖啡要注意什么sscsqa.com 特约演员什么意思hcv8jop4ns4r.cn 开车压到蛇有什么说法hcv9jop0ns4r.cn
百度