1# multimedia子系统变更说明
2
3## cl.multimedia.1 Core模块接口废弃
4
5**访问级别**
6
7公开接口
8
9**变更原因**
10
11媒体数据结构AVMemory废弃,支持AVBuffer。
12
13**变更影响**
14
15该变更为兼容性变更,需要开发者进行适配。
16
17
18**API Level**
19
20|         接口声明         |          API Level                |
21| ----------------------- | :--------------------------------|
22| OH_AVMemory_Create | 10 |
23| OH_AVMemory_GetAddr | 9 |
24| OH_AVMemory_GetSize  | 9 |
25| OH_AVMemory_Destroy  | 10 |
26
27**变更发生版本**
28
29从OpenHarmony SDK 4.1.6.3 开始。
30
31**变更的接口/组件**
32
33|         接口声明         |          废弃说明                | 替代接口                      |
34| ----------------------- | :--------------------------------| :----------------------------|
35| OH_AVMemory_Create | AVMemory实例创建接口废弃,支持AVBuffer |OH_AVBuffer_Create|
36| OH_AVMemory_GetAddr | 获取内存虚拟地址接口废弃,支持AVBuffer |OH_AVBuffer_GetAddr|
37| OH_AVMemory_GetSize  | 获取内存长度接口废弃,支持AVBuffer |OH_AVBuffer_GetCapacity |
38| OH_AVMemory_Destroy  | 销毁AVMemory实例接口废弃,支持AVBuffer |OH_AVBuffer_Destroy |
39
40
41**适配指导**
42
43变更前:
44
45在媒体编解码/封装/解封装等功能实现时,使用AVMemory相应的创建/获取内存地址/内存长度/销毁接口操作数据内存
46
47变更后:
48
49在媒体编解码/封装/解封装等功能实现时,使用AVBuffer相应的创建/获取内存地址/内存长度/销毁接口操作数据内存
50
51## cl.multimedia.2 CodecBase模块接口废弃
52
53**访问级别**
54
55公开接口
56
57**变更原因**
58
59接口数据流转废弃AVMemory,支持AVBuffer,删除不支持的规格。
60
61**变更影响**
62
63该变更为兼容性变更,需要开发者进行适配。
64
65**API Level**
66
67|         接口声明         |          API Level                |
68| ----------------------- | :--------------------------------|
69| OH_AVCodecOnNeedInputData | 9 |
70| OH_AVCodecOnNewOutputData | 9 |
71| OH_AVCodecAsyncCallback  | 9 |
72| const char *OH_AVCODEC_MIMETYPE_VIDEO_MPEG4  | 10 |
73| AudioChannelSet | 10 |
74| AudioChanelLayout | 10 |
75
76**变更发生版本**
77
78从OpenHarmony SDK 4.1.6.3 开始。
79
80**变更的接口/组件**
81
82|         接口声明         |          废弃说明                | 替代接口                      |
83| ----------------------- | :--------------------------------| :----------------------------|
84| OH_AVCodecOnNeedInputData | 编解码输入数据回调由AVMemory增强为AVBuffer |OH_AVCodecOnNeedInputBuffer|
85| OH_AVCodecOnNewOutputData | 编解码输出数据回调由AVMemory增强为AVBuffer |OH_AVCodecOnNewOutputBuffer|
86| OH_AVCodecAsyncCallback  | 注册回调函数指针集合,由AVMemory增强为AVBuffer |OH_AVCodecCallback |
87| const char *OH_AVCODEC_MIMETYPE_VIDEO_MPEG4  | 封装不支持该规格 |无 |
88| AudioChannelSet | 接口变更 | OH_AudioChannelSet |
89| AudioChanelLayout | 接口变更 | OH_AudioChannelLayout |
90
91**适配指导**
92
93变更前:
94
95音视频编解码器,注册回调函数指针集合OH_AVCodecAsyncCallback,其中:
96
97编解码输入回调实现OH_AVCodecOnNeedInputData
98
99编解码输出回调实现OH_AVCodecOnNewOutputData
100
101封装格式指定为OH_AVCODEC_MIMETYPE_VIDEO_MPEG4进行封装
102
103使用 AudioChannelSet 枚举定义音频声道设置
104
105使用 AudioChanelLayout 枚举定义音频声道布局
106
107变更后:
108
109音视频编解码器,注册回调函数指针集合OH_AVCodecCallback,其中:
110
111编解码输入回调实现OH_AVCodecOnNeedInputBuffer
112
113编解码输出回调实现OH_AVCodecOnNewOutputBuffer
114
115封装格式不支持OH_AVCODEC_MIMETYPE_VIDEO_MPEG4
116
117使用 OH_AudioChannelSet 枚举定义音频声道设置
118
119使用 OH_AudioChannelLayout 枚举定义音频声道布局
120
121## cl.multimedia.3 VideoDecoder模块接口废弃
122
123**访问级别**
124
125公开接口
126
127**变更原因**
128
129接口数据流转废弃AVMemory,支持AVBuffer
130
131**变更影响**
132
133该变更为兼容性变更,需要开发者进行适配。
134
135**API Level**
136
137|         接口声明         |          API Level                |
138| ----------------------- | :--------------------------------|
139| OH_VideoDecoder_SetCallback | 9 |
140| OH_VideoDecoder_PushInputData | 9 |
141| OH_VideoDecoder_RenderOutputData  | 9 |
142| OH_VideoDecoder_FreeOutputData  | 9 |
143
144**变更发生版本**
145
146从OpenHarmony SDK 4.1.6.3 开始。
147
148**变更的接口/组件**
149
150|         接口声明         |          废弃说明                | 替代接口                      |
151| ----------------------- | :--------------------------------| :----------------------------|
152| OH_VideoDecoder_SetCallback | 回调注册函数支持数据结构AVBuffer |OH_VideoDecoder_RegisterCallback|
153| OH_VideoDecoder_PushInputData | 解码输入码流数据结构支持AVBuffer |OH_VideoDecoder_PushInputBuffer|
154| OH_VideoDecoder_RenderOutputData  | 解码输出渲染控制支持AVBuffer |OH_VideoDecoder_RenderOutputBuffer |
155| OH_VideoDecoder_FreeOutputData  | 解码输出释放控制支持AVBuffer |OH_VideoDecoder_FreeOutputBuffer |
156
157**适配指导**
158
159变更前:
160
161调用OH_VideoDecoder_SetCallback()设置回调函数
162
163当收到输入回调通知,调用OH_VideoDecoder_PushInputData填入码流数据
164
165当收到输出回调通知,调用OH_VideoDecoder_FreeOutputData释放输出图像或调用OH_VideoDecoder_RenderOutputData渲染图像
166
167变更后:
168
169调用OH_VideoDecoder_RegisterCallback()设置回调函数
170
171当收到输入回调通知,调用OH_VideoDecoder_PushInputBuffer填入码流数据
172
173当收到输出回调通知,调用OH_VideoDecoder_FreeOutputBuffer释放输出图像或调用OH_VideoDecoder_RenderOutputBuffer渲染图像
174
175
176## cl.multimedia.4 VideoEncoder模块接口废弃
177
178**访问级别**
179
180公开接口
181
182**变更原因**
183
184接口数据流转废弃AVMemory,支持AVBuffer
185
186**变更影响**
187
188该变更为兼容性变更,需要开发者进行适配。
189
190**API Level**
191
192|         接口声明         |          API Level                |
193| ----------------------- | :--------------------------------|
194| OH_VideoEncoder_SetCallback | 9 |
195| OH_VideoEncoder_PushInputData | 9 |
196| OH_VideoEncoder_FreeOutputData  | 9 |
197
198**变更发生版本**
199
200从OpenHarmony SDK 4.1.6.3 开始。
201
202**变更的接口/组件**
203
204|         接口声明         |          废弃说明                | 替代接口                      |
205| ----------------------- | :--------------------------------| :----------------------------|
206| OH_VideoEncoder_SetCallback | 回调注册函数支持数据结构AVBuffer |OH_VideoEncoder_RegisterCallback|
207| OH_VideoEncoder_PushInputData | 解码输入码流数据结构支持AVBuffer |OH_VideoEncoder_PushInputBuffer|
208| OH_VideoEncoder_FreeOutputData  | 解码输出释放控制支持AVBuffer |OH_VideoEncoder_FreeOutputBuffer |
209
210**适配指导**
211
212变更前:
213
214调用OH_VideoEncoder_SetCallback()设置回调函数
215
216当收到输入回调通知,调用OH_VideoEncoder_PushInputData填入待编码数据
217
218当收到输出回调通知,调用OH_VideoEncoder_FreeOutputData释放输出数据
219
220变更后:
221
222调用OH_VideoEncoder_RegisterCallback()设置回调函数
223
224当收到输入回调通知,调用OH_VideoEncoder_PushInputBuffer填入待编码数据
225
226当收到输出回调通知,调用OH_VideoEncoder_FreeOutputBuffer释放输出数据
227
228
229## cl.multimedia.5 AVDemuxer模块接口废弃
230
231**访问级别**
232
233公开接口
234
235**变更原因**
236
237接口数据流转废弃AVMemory,支持AVBuffer
238
239**变更影响**
240
241该变更为兼容性变更,需要开发者进行适配。
242
243**API Level**
244
245|         接口声明         |          API Level                |
246| ----------------------- | :--------------------------------|
247| OH_AVDemuxer_ReadSample | 10 |
248
249**变更发生版本**
250
251从OpenHarmony SDK 4.1.6.3 开始。
252
253**变更的接口/组件**
254
255|         接口声明         |          废弃说明                | 替代接口                      |
256| ----------------------- | :--------------------------------| :----------------------------|
257| OH_AVDemuxer_ReadSample | 解封装获取帧函数支持数据结构AVBuffer |OH_AVDemuxer_ReadSampleBuffer|
258
259**适配指导**
260
261变更前:
262
263调用OH_AVDemuxer_ReadSample()获取压缩帧及相关信息
264
265变更后:
266
267调用OH_AVDemuxer_ReadSampleBuffer()获取压缩帧及相关信息
268
269## cl.multimedia.6 AVMuxer模块接口废弃
270
271**访问级别**
272
273公开接口
274
275**变更原因**
276
277接口数据流转废弃AVMemory,支持AVBuffer
278
279**变更影响**
280
281该变更为兼容性变更,需要开发者进行适配。
282
283**API Level**
284
285|         接口声明         |          API Level                |
286| ----------------------- | :--------------------------------|
287| OH_AVMuxer_WriteSample | 10 |
288
289**变更发生版本**
290
291从OpenHarmony SDK 4.1.6.3 开始。
292
293**变更的接口/组件**
294
295|         接口声明         |          废弃说明                | 替代接口                      |
296| ----------------------- | :--------------------------------| :----------------------------|
297| OH_AVMuxer_WriteSample | 封装写入帧函数支持数据结构AVBuffer |OH_AVMuxer_WriteSampleBuffer|
298
299**适配指导**
300
301变更前:
302
303调用OH_AVMuxer_WriteSample()写入压缩帧及相关信息
304
305变更后:
306
307调用OH_AVMuxer_WriteSampleBuffer()写入压缩帧及相关信息
308
309## cl.multimedia.7 AudioDecoder模块接口废弃
310
311**访问级别**
312
313公开接口
314
315**变更原因**
316
317接口数据流转废弃AVMemory,支持AVBuffer,原音频解码模块变更为音频编解码模块。
318
319**变更影响**
320
321该变更为兼容性变更,需要开发者进行适配。
322
323**API Level**
324
325|         接口声明         |          API Level                |
326| ----------------------- | :--------------------------------|
327| OH_AudioDecoder_CreateByName | 9 |
328| OH_AudioDecoder_CreateByMime | 9 |
329| OH_AudioDecoder_SetCallback | 9 |
330| OH_AudioDecoder_Configure | 9 |
331| OH_AudioDecoder_Prepare | 9 |
332| OH_AudioDecoder_Start | 9 |
333| OH_AudioDecoder_PushInputData | 9 |
334| OH_AudioDecoder_FreeOutputData | 9 |
335| OH_AudioDecoder_Flush | 9 |
336| OH_AudioDecoder_IsValid | 10 |
337| OH_AudioDecoder_Reset | 9 |
338| OH_AudioDecoder_Stop | 9 |
339| OH_AudioDecoder_Destroy | 9 |
340
341
342**变更发生版本**
343
344从OpenHarmony SDK 4.1.6.3 开始。
345
346**变更的接口/组件**
347
348|         接口声明         |          废弃说明                | 替代接口                      |
349| ----------------------- | :--------------------------------| :----------------------------|
350| OH_AudioDecoder_CreateByName | 原音频解码模块变更为音频编解码模块 | OH_AudioCodec_CreateByName |
351| OH_AudioDecoder_CreateByMime | 原音频解码模块变更为音频编解码模块 | OH_AudioCodec_CreateByMime |
352| OH_AudioDecoder_SetCallback | 原音频解码模块变更为音频编解码模块,回调注册函数支持数据结构AVBuffer | OH_AudioCodec_RegisterCallback |
353| OH_AudioDecoder_Configure | 原音频解码模块变更为音频编解码模块 | OH_AudioCodec_Configure |
354| OH_AudioDecoder_Prepare | 原音频解码模块变更为音频编解码模块 | OH_AudioCodec_Prepare |
355| OH_AudioDecoder_Start | 原音频解码模块变更为音频编解码模块 | OH_AudioCodec_Start |
356| OH_AudioDecoder_PushInputData | 原音频解码模块变更为音频编解码模块 | OH_AudioCodec_PushInputBuffer |
357| OH_AudioDecoder_FreeOutputData | 原音频解码模块变更为音频编解码模块 | OH_AudioCodec_FreeOutputBuffer |
358| OH_AudioDecoder_Flush | 原音频解码模块变更为音频编解码模块 | OH_AudioCodec_Flush |
359| OH_AudioDecoder_IsValid | 原音频解码模块变更为音频编解码模块 | OH_AudioCodec_IsValid |
360| OH_AudioDecoder_Reset | 原音频解码模块变更为音频编解码模块 | OH_AudioCodec_Reset |
361| OH_AudioDecoder_Stop | 原音频解码模块变更为音频编解码模块 | OH_AudioCodec_Stop |
362| OH_AudioDecoder_Destroy | 原音频解码模块变更为音频编解码模块 | OH_AudioCodec_Destroy |
363
364**适配指导**
365
366变更前:
367
368调用OH_AudioDecoder_CreateByName()或OH_AudioDecoder_CreateByMime(),创建解码器。
369
370调用OH_AudioDecoder_SetCallback(),设置回调函数。
371
372调用OH_AudioDecoder_Configure(),配置解码器。
373
374调用OH_AudioDecoder_Prepare(),解码器就绪。
375
376调用OH_AudioDecoder_Start(),启动解码器,进入运行态。
377
378调用OH_AudioDecoder_PushInputData(),写入待解码的数据。
379
380调用OH_AudioDecoder_FreeOutputData(),输出解码后的PCM码流。
381
382(可选)调用OH_AudioDecoder_Flush(),刷新解码器。
383
384(可选)调用OH_AudioDecoder_IsValid(),可以判断在执行过程中是否可以继续执行。
385
386(可选)调用OH_AudioDecoder_Reset(),重置解码器。
387
388调用OH_AudioDecoder_Stop(),停止解码器。
389
390调用OH_AudioDecoder_Destroy(),销毁解码器实例,释放资源。
391
392变更后:
393
394调用OH_AudioCodec_CreateByName()或OH_AudioCodec_CreateByMime,创建编解码器。
395
396调用OH_AudioCodec_SetCallback(),设置回调函数。
397
398调用OH_AudioCodec_Configure(),配置编解码器。
399
400调用OH_AudioCodec_Prepare(),编解码器就绪。
401
402调用OH_AudioCodec_Start(),启动编解码器,进入运行态。
403
404调用OH_AudioCodec_PushInputData(),写入待编解码的数据。
405
406调用OH_AudioCodec_FreeOutputData(),输出编解码格式码流。
407
408(可选)调用OH_AudioCodec_Flush(),刷新编解码器。
409
410(可选)调用OH_AudioCodec_IsValid(),可以判断在执行过程中是否可以继续执行。
411
412(可选)调用OH_AudioCodec_Reset(),重置编解码器。
413
414调用OH_AudioCodec_Stop(),停止编解码器。
415
416调用OH_AudioCodec_Destroy(),销毁编解码器实例,释放资源。
417
418## cl.multimedia.8 AudioEncoder模块接口废弃
419
420**访问级别**
421
422公开接口
423
424**变更原因**
425
426接口数据流转废弃AVMemory,支持AVBuffer,原音频编码模块变更为音频编解码模块。
427
428**变更影响**
429
430该变更为兼容性变更,需要开发者进行适配。
431
432**API Level**
433
434|         接口声明         |          API Level                |
435| ----------------------- | :--------------------------------|
436| OH_AudioEncoder_CreateByName | 9 |
437| OH_AudioEncoder_CreateByMime | 9 |
438| OH_AudioEncoder_SetCallback | 9 |
439| OH_AudioEncoder_Configure | 9 |
440| OH_AudioEncoder_Prepare | 9 |
441| OH_AudioEncoder_Start | 9 |
442| OH_AudioEncoder_PushInputData | 9 |
443| OH_AudioEncoder_FreeOutputData | 9 |
444| OH_AudioEncoder_Flush | 9 |
445| OH_AudioEncoder_IsValid | 10 |
446| OH_AudioEncoder_Reset | 9 |
447| OH_AudioEncoder_Stop | 9 |
448| OH_AudioEncoder_Destroy | 9 |
449
450
451**变更发生版本**
452
453从OpenHarmony SDK 4.1.6.3 开始。
454
455**变更的接口/组件**
456
457|         接口声明         |          废弃说明                | 替代接口                      |
458| ----------------------- | :--------------------------------| :----------------------------|
459| OH_AudioEncoder_CreateByName | 原音频编码模块变更为音频编解码模块 | OH_AudioCodec_CreateByName |
460| OH_AudioEncoder_CreateByMime | 原音频编码模块变更为音频编解码模块 | OH_AudioCodec_CreateByMime |
461| OH_AudioEncoder_SetCallback | 原音频编码模块变更为音频编解码模块,回调注册函数支持数据结构AVBuffer | OH_AudioCodec_RegisterCallback |
462| OH_AudioEncoder_Configure | 原音频编码模块变更为音频编解码模块 | OH_AudioCodec_Configure |
463| OH_AudioEncoder_Prepare | 原音频编码模块变更为音频编解码模块 | OH_AudioCodec_Prepare |
464| OH_AudioEncoder_Start | 原音频编码模块变更为音频编解码模块 | OH_AudioCodec_Start |
465| OH_AudioEncoder_PushInputData | 原音频编码模块变更为音频编解码模块 | OH_AudioCodec_PushInputBuffer |
466| OH_AudioEncoder_FreeOutputData | 原音频编码模块变更为音频编解码模块 | OH_AudioCodec_FreeOutputBuffer |
467| OH_AudioEncoder_Flush | 原音频编码模块变更为音频编解码模块 | OH_AudioCodec_Flush |
468| OH_AudioEncoder_IsValid | 原音频编码模块变更为音频编解码模块 | OH_AudioCodec_IsValid |
469| OH_AudioEncoder_Reset | 原音频编码模块变更为音频编解码模块 | OH_AudioCodec_Reset |
470| OH_AudioEncoder_Stop | 原音频编码模块变更为音频编解码模块 | OH_AudioCodec_Stop |
471| OH_AudioEncoder_Destroy | 原音频编码模块变更为音频编解码模块 | OH_AudioCodec_Destroy |
472
473**适配指导**
474
475变更前:
476
477调用OH_AudioEncoder_CreateByName()或OH_AudioEncoder_CreateByMime,创建编码器。
478
479调用OH_AudioEncoder_SetCallback(),设置回调函数。
480
481调用OH_AudioEncoder_Configure(),配置编码器。
482
483调用OH_AudioEncoder_Prepare(),编码器就绪。
484
485调用OH_AudioEncoder_Start(),启动编码器,进入运行态。
486
487调用OH_AudioEncoder_PushInputData(),写入待编码的数据。
488
489调用OH_AudioEncoder_FreeOutputData(),输出编码格式码流。
490
491(可选)调用OH_AudioEncoder_Flush(),刷新编码器。
492
493(可选)调用OH_AudioEncoder_IsValid(),可以判断在执行过程中是否可以继续执行。
494
495(可选)调用OH_AudioEncoder_Reset(),重置编码器。
496
497调用OH_AudioEncoder_Stop(),停止编码器。
498
499调用OH_AudioEncoder_Destroy() 销毁编码器实例,释放资源。
500
501变更后:
502
503调用OH_AudioCodec_CreateByName() 或 OH_AudioCodec_CreateByMime,创建编解码器。
504
505调用OH_AudioCodec_SetCallback(),设置回调函数。
506
507调用OH_AudioCodec_Configure(),配置编解码器。
508
509调用OH_AudioCodec_Prepare(),编解码器就绪。
510
511调用OH_AudioCodec_Start(),启动编解码器,进入运行态。
512
513调用OH_AudioCodec_PushInputData(),写入待编解码的数据。
514
515调用OH_AudioCodec_FreeOutputData(),输出编解码格式码流。
516
517(可选)调用OH_AudioCodec_Flush(),刷新编解码器。
518
519(可选)调用OH_AudioCodec_IsValid(),可以判断在执行过程中是否可以继续执行。
520
521(可选)调用OH_AudioCodec_Reset(),重置编解码器。
522
523调用OH_AudioCodec_Stop(),停止编解码器。
524
525调用OH_AudioCodec_Destroy(),销毁编解码器实例,释放资源。
526
527## cl.multimedia.9 AVPlayer/AVRecorder支持的格式规格变更
528
529**访问级别**
530
531公开接口
532
533**变更原因**
534
535使用AVCodec进行解封装、编解码。
536
537**变更影响**
538
539不支持以下格式:
540解封装格式:WebM
541视频解码:H.263, MPEG2, MPEG4, VP8
542视频编码:MPEG4
543
544**API Level**
545
54611
547
548**变更发生版本**
549
550从OpenHarmony SDK 4.1.6.3开始。
551
552**变更的接口/组件**
553AVPlayer组件,AVRecorder组件
554
555**适配指导**
5561. 视频编码使用 AVC 代替MPEG4。
5572. 音视频播放资源涉及封装格式 WebM,或视频解码格式 H.263/MPEG2/MPEG4/VP8,会播放失败,尽量使用封装格式 MP4,视频解码格式 AVC 的资源代替。