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 的资源代替。