西南方向是什么方位| 庙是什么意思| cmv是什么病毒| 七月份能种什么菜| 郁闷是什么意思| 绦是什么意思| 乌龟和甲鱼有什么区别| 泌尿外科主要看什么病| 故是什么意思| 梦见好多衣服是什么意思| 路虎为什么叫奇瑞路虎| 湖南为什么叫湖南| 脖子变粗了是什么原因| 胸闷要做什么检查| 什么时候敷面膜是最佳时间| 羊水浑浊是什么原因造成的| 肚子一直响是什么原因| 乳腺囊实性结节是什么意思| 步履维艰是什么意思| 身体酸痛什么原因| 最快的速度是什么| 眉毛白了是什么原因引起的| 点痦子去医院挂什么科| 头晕耳鸣吃什么药| 舌苔厚白吃什么药| 肿瘤挂什么科| 儿童过敏性皮炎用什么药膏| 社恐到底在害怕什么| 一个金字旁一个本念什么| 射精太快吃什么药| 女人吃桃子有什么好处和坏处| 贵州菜属于什么菜系| 梦见偷别人东西是什么意思| 海龙是什么| 麦冬不能和什么一起吃| 什么的星空| 9月28号是什么星座| 八一建军节什么生肖| 金牛座是什么象| 酱瓜是什么瓜| 8.12什么星座| 厚颜无耻是什么生肖| 穿刺是检查什么的| 有小肚子是什么原因| 外面下着雨犹如我心血在滴什么歌| 狗狗体内驱虫用什么药最好| 红豆泥是什么意思| 12388是什么电话| 失眠缺什么维生素| 什么的流着| 心脏病吃什么药| 什么的鸭子| 小儿湿疹是什么原因造成的| 十八大什么时候召开的| 金字旁有什么字| 一只眼皮肿是什么原因| 抽油烟机买什么样的好| 脾胃寒湿吃什么中成药| pvs是什么意思| 梗概什么意思| 阴道痒用什么药| hla一b27阳性是什么意思| 什么人需要做心脏造影| 天性是什么意思| 推测是什么意思| 女生怀孕的前兆是什么| 身上长痘痘是什么原因| 芬必得是什么药| hvb是什么意思| 亚临床甲减是什么意思| 褪黑素什么时候吃| 名流是什么意思| 什么名字好听| 中暑吃什么水果好| 肝肿瘤吃什么食物好| 嘴唇干燥是什么原因引起的| 单核细胞偏低是什么意思| gi什么意思| 三月14号是什么星座| 北极为什么没有企鹅| 为什么我不快乐| 生男孩女孩取决于什么| 阳历7月7日是什么日子| 梦见下雪是什么| 什么叫保守治疗| 暗渡陈仓什么意思| 贲门不舒服有什么症状| 梦见自己杀人了是什么意思| 阿sir是什么意思| 金字旁加全字念什么| 白配什么颜色好看| 猫的眼睛晚上为什么会发光| 缺蛋白质吃什么补得快| 结核菌是什么| 店铺开业送什么礼物好| 心阳虚吃什么中成药| 女性阴毛变白是什么原因| 正事是什么意思| 安乃近又叫什么名| 什么叫放疗治疗| 弯刀裤适合什么人穿| 梨的功效与作用是什么| 人为什么会生病| 川崎病是什么症状| 鼻炎咳嗽吃什么药| 脚底发烫是什么原因| 晚上磨牙是什么原因| 黄芪加陈皮有什么功效| 一失足成千古恨是什么意思| 90年是什么年| 馥字五行属什么| 甲状腺结节挂什么科| 上面一个日下面一个立是什么字| cpk是什么| 乌合之众是什么意思| 烫伤后擦什么药好得快| 紫得什么| 西泮片是什么药| 豌豆的什么不能吃| fr是什么| 孙尚香字什么| 宋小宝得了什么病| 恶心呕吐吃什么药| 老是口腔溃疡是什么原因| 苟且是什么意思| 视力矫正是什么意思| 海胆是什么动物| 什么鱼刺少好吃| 什么病才吃阿昔洛韦片| 红楼梦是什么朝代| 什么什么一窝| 排卵日有什么症状| 城隍庙是什么神| 温州有什么区| 生病吃什么| 红茶用什么茶具泡好| 为什么会厌学| 浑身疼是什么原因| 硅橡胶是什么材料| 口子念什么| 汽车五行属什么| 脸上长痘痘是什么原因引起的| 男人腰痛吃什么药| 站点是什么意思| 食管裂孔疝是什么原因造成的| 三文鱼不能和什么一起吃| 彪子是什么意思| 什么鞋油好用| isis是什么组织| hov是什么意思| 丙氨酸氨基转移酶偏高吃什么药| 接亲是什么意思| 胃炎是什么原因引起的| 金火什么字| 年岁是什么意思| 肛裂用什么药| 财源广进是什么生肖| 还替身是什么意思| 身心合一是什么意思| 天干是什么意思| 大便是红色的是什么原因| 上火引起的喉咙痛吃什么药| 壁虎吃什么| 为什么口水是臭的| 早上起床口臭是什么原因| 为什么会得多囊卵巢| 鲟鱼吃什么| icd是什么意思| 白羊座是什么性格| 什么叫便溏| 县委办公室主任是什么级别| versus什么意思| 亥时右眼跳是什么预兆| 冬虫夏草是什么| 为什么生日不能提前过| 少许纤维灶是什么意思| 杂合变异是什么意思| 庸人自扰什么意思| 湉字五行属什么| 肛门下坠感是什么症状| 云南雪燕有什么作用| 仄怎么读什么意思| 引产和流产有什么区别| 扶正固本是什么意思| 拔罐是什么意思| 双抗是什么药| 癫痫是什么| 中盐是什么盐| 脑瘤早期什么症状| 扁平疣是什么引起的| 一到晚上就咳嗽是什么原因| 甲亢可以吃什么水果| 梦见自己生了个女儿是什么预兆| 格格是什么意思| 被什么虫子咬了会刺痛| 手抓饼里面夹什么好吃| 308是什么意思| 属羊女和什么属相最配| 氨气是什么味道| 戌时属什么生肖| 掉头发去医院看什么科| t1w1高信号代表什么| 白热化阶段是什么意思| 冬瓜有什么功效| 右肺上叶钙化灶是什么意思| 为什么会便血| 冲锋什么| 坐月子可以吃什么水果| 夜盲症缺什么维生素| 脾胃不好吃什么药好| 护理主要学什么| 肉便器是什么意思| 打喷嚏流鼻涕属于什么感冒| 肾脏不好吃什么食物好| 吃纳豆有什么好处| npc是什么| 尿蛋白高吃什么药| 蹲久了站起来头晕是什么原因| 火箭是干什么用的| 脸红什么| 淳字五行属什么| 痛风会在膝盖什么位置| 软骨病是什么病| 莫逆之交什么意思| 九月二十三是什么星座| 头孢克肟和头孢拉定有什么区别| 蒸鱼豉油什么时候放| 2017是什么年| 腹泻可以吃什么水果| 什么三迁| 鱼加它是什么字| 小腹胀痛男性什么原因| 粉碎性骨折是什么意思| 女人右下巴有痣代表什么| 为什么汤泡饭对胃不好| 阿托伐他汀钙片治什么病| 拉稀吃什么药最有效果| 乳痈是什么病| preparing是什么意思| co2是什么| 双肺结节是什么意思| yair是什么牌子的空调| 什么是桥本氏甲状腺炎| 梅尼埃综合症是什么病| 52什么意思| 嘴唇边缘发黑是什么原因| 低密度脂蛋白胆固醇是什么意思| 小孩子发烧是什么原因引起的| 栉风沐雨是什么意思| 一直头疼是什么原因| 西夏国是现在什么地方| 人发胖的原因是什么引起的| 盆腔少量积液是什么问题| 天为什么会下雨| 三月生日是什么星座| saucony是什么牌子| 秦二世叫什么名字| 医学cr是什么意思| 哪吒他妈叫什么名字| 尿有泡泡是什么病| 颈静脉怒张见于什么病| 中耳炎不能吃什么食物| 4pcs是什么意思| 什么狗最聪明| 百度

肾综合征是什么病严重吗


Directory: ../../../ffmpeg/
File: src/libavformat/rtpdec_ac3.c
Date: 2025-08-04 00:43:16
Exec Total Coverage
Lines: 0 55 0.0%
Functions: 0 2 0.0%
Branches: 0 24 0.0%

Line Branch Exec Source
1 /*
2 * RTP parser for AC3 payload format (RFC 4184)
3 * Copyright (c) 2015 Gilles Chanteperdrix <gch@xenomai.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 #include "avformat.h"
23 #include "avio_internal.h"
24 #include "rtpdec_formats.h"
25
26 #define RTP_AC3_PAYLOAD_HEADER_SIZE 2
27
28 struct PayloadContext {
29 unsigned nr_frames;
30 unsigned last_frame;
31 uint32_t timestamp;
32 AVIOContext *fragment;
33 };
34
35 static void ac3_close_context(PayloadContext *data)
36 {
37 ffio_free_dyn_buf(&data->fragment);
38 }
39
40 static int ac3_handle_packet(AVFormatContext *ctx, PayloadContext *data,
41 AVStream *st, AVPacket *pkt, uint32_t *timestamp,
42 const uint8_t *buf, int len, uint16_t seq,
43 int flags)
44 {
45 unsigned frame_type;
46 unsigned nr_frames;
47 int err;
48
49 if (len < RTP_AC3_PAYLOAD_HEADER_SIZE + 1) {
50 av_log(ctx, AV_LOG_ERROR, "Invalid %d bytes packet\n", len);
51 return AVERROR_INVALIDDATA;
52 }
53
54 frame_type = buf[0] & 0x3;
55 nr_frames = buf[1];
56 buf += RTP_AC3_PAYLOAD_HEADER_SIZE;
57 len -= RTP_AC3_PAYLOAD_HEADER_SIZE;
58
59 switch (frame_type) {
60 case 0: /* One or more complete frames */
61 if (!nr_frames) {
62 av_log(ctx, AV_LOG_ERROR, "Invalid AC3 packet data\n");
63 return AVERROR_INVALIDDATA;
64 }
65 if ((err = av_new_packet(pkt, len)) < 0) {
66 av_log(ctx, AV_LOG_ERROR, "Out of memory.\n");
67 return err;
68 }
69
70 pkt->stream_index = st->index;
71 memcpy(pkt->data, buf, len);
72 return 0;
73
74 case 1:
75 case 2: /* First fragment */
76 ffio_free_dyn_buf(&data->fragment);
77
78 data->last_frame = 1;
79 data->nr_frames = nr_frames;
80 err = avio_open_dyn_buf(&data->fragment);
81 if (err < 0)
82 return err;
83
84 avio_write(data->fragment, buf, len);
85 data->timestamp = *timestamp;
86 return AVERROR(EAGAIN);
87
88 case 3: /* Fragment other than first */
89 if (!data->fragment) {
90 av_log(ctx, AV_LOG_WARNING,
91 "Received packet without a start fragment; dropping.\n");
92 return AVERROR(EAGAIN);
93 }
94 if (nr_frames != data->nr_frames ||
95 data->timestamp != *timestamp) {
96 ffio_free_dyn_buf(&data->fragment);
97 av_log(ctx, AV_LOG_ERROR, "Invalid packet received\n");
98 return AVERROR_INVALIDDATA;
99 }
100
101 avio_write(data->fragment, buf, len);
102 data->last_frame++;
103 }
104
105 if (!(flags & RTP_FLAG_MARKER))
106 return AVERROR(EAGAIN);
107
108 if (data->last_frame != data->nr_frames) {
109 ffio_free_dyn_buf(&data->fragment);
110 av_log(ctx, AV_LOG_ERROR, "Missed %d packets\n",
111 data->nr_frames - data->last_frame);
112 return AVERROR_INVALIDDATA;
113 }
114
115 err = ff_rtp_finalize_packet(pkt, &data->fragment, st->index);
116 if (err < 0) {
117 av_log(ctx, AV_LOG_ERROR,
118 "Error occurred when getting fragment buffer.\n");
119 return err;
120 }
121
122 return 0;
123 }
124
125 const RTPDynamicProtocolHandler ff_ac3_dynamic_handler = {
126 .enc_name = "ac3",
127 .codec_type = AVMEDIA_TYPE_AUDIO,
128 .codec_id = AV_CODEC_ID_AC3,
129 .need_parsing = AVSTREAM_PARSE_FULL,
130 .priv_data_size = sizeof(PayloadContext),
131 .close = ac3_close_context,
132 .parse_packet = ac3_handle_packet,
133 };
134

梦见缝被子是什么意思 安宫牛黄丸为什么那么贵 子宫脱垂是什么症状 龟吃什么食物 后腰出汗多是什么原因
是什么符号 口腔出血是什么原因 心脏不大是什么意思 牙掉了是什么预兆 蜗牛爱吃什么
喉咙不舒服吃什么药 梦见卖衣服是什么意思 平菇不能和什么一起吃 au585是什么金 eoa是什么意思
孕酮低什么原因 支原体感染有什么症状 黄水疮用什么药膏最快 判官是什么意思 98年的虎是什么命
卧底归来大结局是什么beikeqingting.com 大豆油是什么豆做的hcv8jop9ns6r.cn 梦见别人笑什么意思hcv9jop6ns0r.cn 512是什么星座hcv9jop5ns4r.cn 7月25日什么星座clwhiglsz.com
上海立秋吃什么hcv9jop5ns4r.cn 什么泡水喝对肝脏好hcv9jop6ns8r.cn 娇妻是什么意思hcv9jop2ns7r.cn 花朵像什么hcv8jop2ns3r.cn 无妄是什么意思hcv9jop4ns2r.cn
序列是什么意思hcv9jop5ns8r.cn olay是什么品牌hcv7jop6ns2r.cn 钩针ch是什么意思hcv9jop5ns2r.cn 生肖羊和什么生肖相冲hanqikai.com 和什么细什么hcv9jop7ns0r.cn
谢邀什么意思hcv7jop7ns2r.cn 什么叫义齿hcv8jop4ns7r.cn 冰箱什么牌子的好hcv7jop6ns0r.cn 欠钱不还被起诉会有什么后果hcv8jop9ns8r.cn 兰花叶子发黄是什么原因hcv9jop4ns1r.cn
百度