回头是岸是什么意思| 腰扭伤吃什么药最有效| 什么药治便秘最好最快| 慢性疾病都包括什么病| 人流手术前需要注意什么| 猩红热是什么| 风声鹤唳是什么意思| 抽烟打嗝是什么情况| 开放式耳机是什么意思| 心电图伪差是什么意思| vogue什么意思| 蜜蜂蛰了用什么药| 男人梦见蛇是什么征兆| 抽筋缺什么| 学美容要学些什么| 和平是什么意思| 十的偏旁有什么字| 吃什么通大便最快| 三无产品是指什么| 舌苔厚黄是怎么回事吃什么药| 为什么庙里不让孕妇去| kids是什么牌子| 痛风是什么病| 孕酮低会有什么影响| 貔貅是什么动物| 脸油是什么原因导致的| 9月25号什么星座| 低频是什么意思| po是什么| 女生抽什么烟合适| 发小是什么| 1930年属什么生肖| 嘴苦什么原因| 公司监事是干什么的| 旗袍搭配什么鞋子好看| 般若是什么意思| 凌晨的凌是什么意思| 血糖高能喝什么粥| 夫字五行属什么| 刮宫是什么| 低血压吃什么可以补| 什么姓氏好听| kallas是什么牌子| no2是什么气体| ut是什么意思| 心肌是什么意思| 血压计什么牌子好| 知了猴吃什么长大的| 没脑子是什么意思| 咳嗽吃什么| 益生菌什么时候吃| 艾玛是什么意思啊| 牛黄清心丸治什么病| 蓝色预警是什么级别| 正军级是什么级别| 移动迷宫到底讲的什么| 背后长疙瘩是什么原因| 1963属什么生肖| 巨细胞病毒igg阳性是什么意思| 香干炒什么菜好吃| 乙肝五项135阳性是什么意思| 一年一片避孕药叫什么| 公安局跟派出所有什么区别| 草字头一个见念什么| 为什么心慌| 瑄字五行属什么| ec什么意思| 婴儿不睡觉是什么原因| 家里养泥鳅喂什么东西| 白内障有什么症状表现| 山本耀司的品牌叫什么| 喉咙痛鼻塞吃什么药| 自古红颜多薄命是什么意思| 下面外面瘙痒用什么药| 00年属龙的是什么命| 梦见扫地是什么预兆| 尿液黄绿色是什么原因| 齐活儿是什么意思| 经常口腔溃疡吃什么维生素| 节哀顺便是什么意思| 西瓜与什么食物相克| 乌龟王八甲鱼鳖有什么区别| 小孩长得慢是什么原因| 一切尽在不言中是什么意思| 男性乳头疼是什么原因| sls是什么化学成分| 经期洗头有什么危害| 奶粉什么时候喝最好| 经常放屁吃什么药好| 欧珀莱属于什么档次| 马飞是什么药| jojo是什么意思| 躯体形式障碍是什么病| 梦见笑是什么意思| 玉林狗肉节是什么时候| 虹吸是什么意思| 做背有什么好处及作用| 3月有什么节日| 铁锈色痰见于什么病| 眼白发红是什么原因| 连号的钱为什么不能花| 什么的天| 大便黄色是什么原因| 月季黑斑病用什么药| 硬水是什么意思| 激光点痣后需要注意什么| 怀男孩和女孩有什么区别| 今天是什么冲什么生肖| 偏头痛是什么| 菠萝蜜什么季节最好吃| 种什么最赚钱| 女人脑供血不足吃什么| zoe是什么意思| 荭是什么意思| 7月23日是什么日子| 每天吃一个西红柿有什么好处| 尿分叉吃什么药好得快| 什么是卒中| 汽车空调不制冷是什么原因| 拉屎有血是什么原因| 什么佛面| 吃什么促进恶露排干净| 喝什么美白| 黑米和紫米有什么区别| 流清水鼻涕吃什么药| 口角是什么意思| 阴部痒痒的是什么原因| 感恩节为什么要吃火鸡| 从政是什么意思| 腮边长痘是什么原因| 尼泊尔是什么人种| nasa是什么意思| lof什么意思| 恐惧是什么意思| 西葫芦不能和什么一起吃| 五花肉是什么肉| 宇宙是什么意思| 凉席什么材质好| 掏耳朵咳嗽是什么原因| 大连焖子是什么做的| 安乃近又叫什么名| 疯马皮是什么皮| 牙齿吃甜的就会疼什么原因| 绿巨人是什么意思| 多囊卵巢是什么原因造成的| 处级上面是什么级别| 咳嗽肺疼是什么原因| 绿字五行属什么| 早上6点到7点是什么时辰| 5月11日是什么星座| 96年属什么的| 咽喉痒干咳吃什么药| 指甲变形是什么原因| 长期手淫会有什么危害| 属鸡的是什么命| 孕期同房需要注意什么| 3月29号是什么星座| 基诺浦鞋属于什么档次| 静水流深什么意思| 麻了是什么意思| 多汗症看什么科| 牙齿发麻是什么原因| 吃什么解酒| 胎盘低置状态是什么意思| 跌打损伤用什么药最好| 8.26是什么星座| 什么药和酒一起吃必死| 缺钾吃什么药| 湿气重吃什么食物| m型发际线适合什么发型| 女性膀胱炎吃什么药| 胆红素高是怎么回事有什么危害| 中旬是什么意思| 七月八号什么星座| 12月20是什么星座| 一个山一个空念什么| 为什么会长老年斑| 考护士资格证需要什么条件| 脂肪肝是什么意思啊| 梦见西瓜是什么意思| 1996年属什么生肖| 獐子是什么动物| 气压是什么| 大难不死的生肖是什么| 梦见小黑蛇是什么预兆| tags是什么意思| 气短吃什么药效果好| 燃面为什么叫燃面| 班草是什么意思| 亚硝酸盐阴性是什么意思| 有什么小说| 结缔组织病是什么病能治愈吗| 二十七岁属什么生肖| 收孕妇尿是干什么用的| 肌瘤是什么| 经期延长是什么原因引起的| 球拍状胎盘对胎儿有什么影响| 头七需要做什么| 临床医学主要学什么| 全麻对身体有什么危害| 社保基数什么时候调整| 什么叫ins风格| 自带bgm是什么意思| 月经三个月没来是什么原因| 女人安全期是什么时候| 万条垂下绿丝绦是什么季节| 为什么白头发越来越多| 钦点是什么意思| 杏林指什么| 每个月月经都提前是什么原因| 两肺纹理增多什么意思| 一个黑一个出读什么| 木字多一撇是什么字| 神经衰弱吃什么药好| 加应子是什么水果| 疱疹长什么样| 学五行属什么| 1月29号什么星座| 单反是什么意思| 胩是什么意思| 三高人群适合吃什么水果| 前列腺ca是什么意思| 淡然自若的意思是什么| 白芽奇兰是什么茶| 吃三七粉有什么作用| 面部痒是什么原因| 挂号是什么意思| 什么是断桥铝| 牙龈发炎吃什么药| 糖类抗原724偏高是什么原因| 蜂蜜吃了有什么好处| 真数是什么| 吃什么容易发胖| 什么鬼什么神| 井代表什么生肖| 什么是肺部腺性肿瘤| 相刑什么意思| 经常吃生花生有什么好处和坏处| 一个目一个于念什么| 结膜出血是什么原因| top是什么| 发烧吃什么消炎药| 梦见被追杀预示什么| 黑猫警长为什么只有5集| 喜人是什么意思| 鼻涕倒流吃什么药| 一什么牙刷| 启字五行属什么| 海南属于什么气候| 淀粉吃多了有什么危害| 喝什么水减肥最快| 眩晕是怎么回事是什么原因引起| 血小板减少吃什么| 女性盆腔炎什么症状| 干事是什么意思| 望周知是什么意思| ckd3期是什么意思| 结石是什么原因造成的| 过氧化氢浓度阳性是什么意思| 腰上有痣代表什么| 拉水便吃什么药| 班别是什么意思| 彪是什么动物| 早上6点是什么时辰| 百度

男人为什么喜欢胸


Directory: ../../../ffmpeg/
File: src/libavcodec/pcm-blurayenc.c
Date: 2025-08-04 00:43:16
Exec Total Coverage
Lines: 0 168 0.0%
Functions: 0 2 0.0%
Branches: 0 62 0.0%

Line Branch Exec Source
1 /*
2 * LPCM codecs for PCM formats found in Blu-ray m2ts streams
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
8 * License 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 GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with FFmpeg; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21 #include "libavutil/channel_layout.h"
22 #include "avcodec.h"
23 #include "bytestream.h"
24 #include "codec_internal.h"
25 #include "encode.h"
26
27 typedef struct BlurayPCMEncContext {
28 uint16_t header; // Header added to every frame
29 } BlurayPCMEncContext;
30
31 static av_cold int pcm_bluray_encode_init(AVCodecContext *avctx)
32 {
33 BlurayPCMEncContext *s = avctx->priv_data;
34 uint8_t ch_layout;
35 int quant, freq, frame_size;
36
37 switch (avctx->sample_fmt) {
38 case AV_SAMPLE_FMT_S16:
39 avctx->bits_per_coded_sample = 16;
40 frame_size = 240;
41 quant = 1;
42 break;
43 case AV_SAMPLE_FMT_S32:
44 frame_size = 360;
45 avctx->bits_per_coded_sample = 24;
46 quant = 3;
47 break;
48 default:
49 return AVERROR_BUG;
50 }
51
52 switch (avctx->sample_rate) {
53 case 48000:
54 freq = 1;
55 break;
56 case 96000:
57 freq = 4;
58 break;
59 case 192000:
60 freq = 5;
61 break;
62 default:
63 return AVERROR_BUG;
64 }
65
66 switch (av_channel_layout_subset(&avctx->ch_layout, ~(uint64_t)0)) {
67 case AV_CH_LAYOUT_MONO:
68 ch_layout = 1;
69 break;
70 case AV_CH_LAYOUT_STEREO:
71 ch_layout = 3;
72 break;
73 case AV_CH_LAYOUT_SURROUND:
74 ch_layout = 4;
75 break;
76 case AV_CH_LAYOUT_2_1:
77 ch_layout = 5;
78 break;
79 case AV_CH_LAYOUT_4POINT0:
80 ch_layout = 6;
81 break;
82 case AV_CH_LAYOUT_2_2:
83 ch_layout = 7;
84 break;
85 case AV_CH_LAYOUT_5POINT0:
86 ch_layout = 8;
87 break;
88 case AV_CH_LAYOUT_5POINT1:
89 ch_layout = 9;
90 break;
91 case AV_CH_LAYOUT_7POINT0:
92 ch_layout = 10;
93 break;
94 case AV_CH_LAYOUT_7POINT1:
95 ch_layout = 11;
96 break;
97 default:
98 return AVERROR_BUG;
99 }
100
101 s->header = (((ch_layout << 4) | freq) << 8) | (quant << 6);
102 avctx->frame_size = frame_size;
103
104 return 0;
105 }
106
107 static int pcm_bluray_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
108 const AVFrame *frame, int *got_packet_ptr)
109 {
110 BlurayPCMEncContext *s = avctx->priv_data;
111 int sample_size, samples, channel, num_dest_channels;
112 const int16_t *src16;
113 const int32_t *src32;
114 unsigned pkt_size;
115 PutByteContext pb;
116 int ret;
117
118 num_dest_channels = FFALIGN(avctx->ch_layout.nb_channels, 2);
119 sample_size = (num_dest_channels *
120 (avctx->sample_fmt == AV_SAMPLE_FMT_S16 ? 16 : 24)) >> 3;
121 samples = frame->nb_samples;
122
123 pkt_size = sample_size * samples + 4;
124
125 if ((ret = ff_get_encode_buffer(avctx, avpkt, pkt_size, 0)) < 0)
126 return ret;
127
128 AV_WB16(avpkt->data, pkt_size - 4);
129 AV_WB16(avpkt->data + 2, s->header);
130
131 src16 = (const int16_t *)frame->data[0];
132 src32 = (const int32_t *)frame->data[0];
133
134 bytestream2_init_writer(&pb, avpkt->data + 4, avpkt->size - 4);
135
136 switch (avctx->ch_layout.u.mask) {
137 /* cases with same number of source and coded channels */
138 case AV_CH_LAYOUT_STEREO:
139 case AV_CH_LAYOUT_4POINT0:
140 case AV_CH_LAYOUT_2_2:
141 samples *= num_dest_channels;
142 if (AV_SAMPLE_FMT_S16 == avctx->sample_fmt) {
143 #if HAVE_BIGENDIAN
144 bytestream2_put_bufferu(&pb, frame->data[0], samples * 2);
145 #else
146 do {
147 bytestream2_put_be16u(&pb, *src16++);
148 } while (--samples);
149 #endif
150 } else {
151 do {
152 bytestream2_put_be24u(&pb, (*src32++) >> 8);
153 } while (--samples);
154 }
155 break;
156 /* cases where number of source channels = coded channels + 1 */
157 case AV_CH_LAYOUT_MONO:
158 case AV_CH_LAYOUT_SURROUND:
159 case AV_CH_LAYOUT_2_1:
160 case AV_CH_LAYOUT_5POINT0:
161 if (AV_SAMPLE_FMT_S16 == avctx->sample_fmt) {
162 do {
163 #if HAVE_BIGENDIAN
164 bytestream2_put_bufferu(&pb, (const uint8_t *)src16, avctx->ch_layout.nb_channels * 2);
165 src16 += avctx->ch_layout.nb_channels;
166 #else
167 channel = avctx->ch_layout.nb_channels;
168 do {
169 bytestream2_put_be16u(&pb, *src16++);
170 } while (--channel);
171 #endif
172 bytestream2_put_ne16(&pb, 0);
173 } while (--samples);
174 } else {
175 do {
176 channel = avctx->ch_layout.nb_channels;
177 do {
178 bytestream2_put_be24u(&pb, (*src32++) >> 8);
179 } while (--channel);
180 bytestream2_put_ne24(&pb, 0);
181 } while (--samples);
182 }
183 break;
184 /* remapping: L, R, C, LBack, RBack, LF */
185 case AV_CH_LAYOUT_5POINT1:
186 if (AV_SAMPLE_FMT_S16 == avctx->sample_fmt) {
187 do {
188 bytestream2_put_be16u(&pb, src16[0]);
189 bytestream2_put_be16u(&pb, src16[1]);
190 bytestream2_put_be16u(&pb, src16[2]);
191 bytestream2_put_be16u(&pb, src16[4]);
192 bytestream2_put_be16u(&pb, src16[5]);
193 bytestream2_put_be16u(&pb, src16[3]);
194 src16 += 6;
195 } while (--samples);
196 } else {
197 do {
198 bytestream2_put_be24u(&pb, src32[0] >> 8);
199 bytestream2_put_be24u(&pb, src32[1] >> 8);
200 bytestream2_put_be24u(&pb, src32[2] >> 8);
201 bytestream2_put_be24u(&pb, src32[4] >> 8);
202 bytestream2_put_be24u(&pb, src32[5] >> 8);
203 bytestream2_put_be24u(&pb, src32[3] >> 8);
204 src32 += 6;
205 } while (--samples);
206 }
207 break;
208 /* remapping: L, R, C, LSide, LBack, RBack, RSide, <unused> */
209 case AV_CH_LAYOUT_7POINT0:
210 if (AV_SAMPLE_FMT_S16 == avctx->sample_fmt) {
211 do {
212 bytestream2_put_be16u(&pb, src16[0]);
213 bytestream2_put_be16u(&pb, src16[1]);
214 bytestream2_put_be16u(&pb, src16[2]);
215 bytestream2_put_be16u(&pb, src16[5]);
216 bytestream2_put_be16u(&pb, src16[3]);
217 bytestream2_put_be16u(&pb, src16[4]);
218 bytestream2_put_be16u(&pb, src16[6]);
219 src16 += 7;
220 bytestream2_put_ne16(&pb, 0);
221 } while (--samples);
222 } else {
223 do {
224 bytestream2_put_be24u(&pb, src32[0] >> 8);
225 bytestream2_put_be24u(&pb, src32[1] >> 8);
226 bytestream2_put_be24u(&pb, src32[2] >> 8);
227 bytestream2_put_be24u(&pb, src32[5] >> 8);
228 bytestream2_put_be24u(&pb, src32[3] >> 8);
229 bytestream2_put_be24u(&pb, src32[4] >> 8);
230 bytestream2_put_be24u(&pb, src32[6] >> 8);
231 src32 += 7;
232 bytestream2_put_ne24(&pb, 0);
233 } while (--samples);
234 }
235 break;
236 /* remapping: L, R, C, LSide, LBack, RBack, RSide, LF */
237 case AV_CH_LAYOUT_7POINT1:
238 if (AV_SAMPLE_FMT_S16 == avctx->sample_fmt) {
239 do {
240 bytestream2_put_be16u(&pb, src16[0]);
241 bytestream2_put_be16u(&pb, src16[1]);
242 bytestream2_put_be16u(&pb, src16[2]);
243 bytestream2_put_be16u(&pb, src16[6]);
244 bytestream2_put_be16u(&pb, src16[4]);
245 bytestream2_put_be16u(&pb, src16[5]);
246 bytestream2_put_be16u(&pb, src16[7]);
247 bytestream2_put_be16u(&pb, src16[3]);
248 src16 += 8;
249 } while (--samples);
250 } else {
251 do {
252 bytestream2_put_be24u(&pb, src32[0]);
253 bytestream2_put_be24u(&pb, src32[1]);
254 bytestream2_put_be24u(&pb, src32[2]);
255 bytestream2_put_be24u(&pb, src32[6]);
256 bytestream2_put_be24u(&pb, src32[4]);
257 bytestream2_put_be24u(&pb, src32[5]);
258 bytestream2_put_be24u(&pb, src32[7]);
259 bytestream2_put_be24u(&pb, src32[3]);
260 src32 += 8;
261 } while (--samples);
262 }
263 break;
264 default:
265 return AVERROR_BUG;
266 }
267
268 *got_packet_ptr = 1;
269
270 return 0;
271 }
272
273 const FFCodec ff_pcm_bluray_encoder = {
274 .p.name = "pcm_bluray",
275 CODEC_LONG_NAME("PCM signed 16|20|24-bit big-endian for Blu-ray media"),
276 .p.type = AVMEDIA_TYPE_AUDIO,
277 .p.id = AV_CODEC_ID_PCM_BLURAY,
278 .priv_data_size = sizeof(BlurayPCMEncContext),
279 .init = pcm_bluray_encode_init,
280 FF_CODEC_ENCODE_CB(pcm_bluray_encode_frame),
281 CODEC_SAMPLERATES(48000, 96000, 192000),
282 CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO,
283 AV_CHANNEL_LAYOUT_SURROUND, AV_CHANNEL_LAYOUT_2_1,
284 AV_CHANNEL_LAYOUT_4POINT0, AV_CHANNEL_LAYOUT_2_2,
285 AV_CHANNEL_LAYOUT_5POINT0, AV_CHANNEL_LAYOUT_5POINT1,
286 AV_CHANNEL_LAYOUT_7POINT0, AV_CHANNEL_LAYOUT_7POINT1),
287 CODEC_SAMPLEFMTS(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32),
288 .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE,
289 };
290

桃子不能跟什么一起吃 血脂和血糖有什么区别 唉声叹气是什么意思 雪莲果什么季节成熟 cd什么意思
草木皆兵是什么生肖 产成品是什么意思 1989年出生是什么命 百事可乐和可口可乐有什么区别 肌酸激酶高是什么意思
小是什么生肖 小三阳有什么症状表现 姜太公钓鱼愿者上钩是什么意思 高血压吃什么助勃药好 代谢慢是什么原因引起的
中医师承是什么意思 红豆和赤小豆有什么区别 蓝颜知己是什么关系 硬膜囊前缘受压是什么意思 梦见怀孕是什么征兆
后脑勺发热是什么原因bfb118.com 为什么出汗有酸臭味hcv8jop1ns2r.cn 高铁跟动车有什么区别hcv7jop6ns7r.cn 外向是什么意思hcv7jop5ns3r.cn 女人左眼跳是什么意思hcv9jop1ns1r.cn
女人下巴有痣代表什么hcv9jop6ns1r.cn 艾附暖宫丸什么时候吃inbungee.com 雷替斯是什么药hcv9jop0ns2r.cn 便秘用什么方法治hcv8jop3ns9r.cn 过生日吃什么菜寓意好hcv8jop4ns5r.cn
君臣佐使是什么意思hcv8jop8ns2r.cn 月季黑斑病用什么药hcv9jop5ns4r.cn 不等是什么意思hcv9jop0ns9r.cn 梦见撞车是什么预兆hcv8jop4ns0r.cn 人大常委会副主任是什么级别ff14chat.com
草酸钙结晶是什么意思hcv7jop5ns2r.cn 田七配什么煲汤最好hcv8jop6ns4r.cn 纯磨玻璃结节是什么意思bjcbxg.com 舌头麻木是什么原因引起zsyouku.com 射精太快吃什么好hcv9jop2ns4r.cn
百度