1# 媒体子系统Changelog
2
3## cl.multimedia.1 OH_AVCodecBufferAttr 接口行为变更
4
5**访问级别**
6
7公开接口
8
9**变更原因**
10
11针对视频轨获取的 OH_AVCodecBufferAttr 中 `pts` 属性,会在文件实际封装信息的基础上减去轨道起始时间,使其从0开始,
12导致音视频轨道 `pts` 处理不一致,调用方依赖 `pts` 实现音画同步时,部分视频效果异常。
13
14**变更影响**
15
16该变更为非兼容性变更,用户获取的视频轨 `pts` 属性值变更,不再统一从0开始,统一提供文件实际封装的原始 `pts` 信息。
17
18**起始 API Level**
19
20API10
21
22**变更发生版本**
23
24从OpenHarmony SDK 5.0.0.39版本开始。
25
26**变更的接口/组件**
27
28| 名称                      | 描述                        |
29| ------------------------- | --------------------------- |
30| OH_AVCodecBufferAttr | 定义OH_AVCodec的缓冲区描述信息 |
31
32**适配指导**
33
34变更后 `pts` 获取方式不变,内部不再进行额外处理,为文件实际封装的时间戳信息,调用方可使用变更后 `pts`,结合业务逻辑进行使用和处理,
35获取方式如下所示:
36```c++
37OH_AVBuffer *buffer = OH_AVBuffer_Create(w * h * 3 >> 1);
38if (buffer == nullptr) {
39    // 处理异常
40}
41int32_t ret = OH_AVDemuxer_ReadSampleBuffer(demuxer, trackIndex, buffer);
42if (ret != AV_ERR_OK) {
43    // 处理异常
44}
45
46OH_AVCodecBufferAttr info;
47ret = OH_AVBuffer_GetBufferAttr(buffer, &info);
48if (ret != AV_ERR_OK) {
49    // 处理异常
50}
51int64_t newPts = info.pts;
52```
53
54并且从API12开始,支持获取轨道起始时间信息 `OH_MD_KEY_TRACK_START_TIME`,用户也可通过变更后 `pts`,结合轨道起始时间,转换为变更前 `pts`,代码如下:
55```c++
56OH_AVFormat *trackFormat = OH_AVSource_GetTrackFormat(source, trackIndex);
57if (trackFormat == nullptr) {
58    // 处理异常
59}
60int64_t startTime = 0;
61if (!OH_AVFormat_GetLongValue(trackFormat, OH_MD_KEY_TRACK_START_TIME, &startTime)) {
62    // 处理异常
63}
64int64_t oldPts = newPts - startTime;
65```
66
67## cl.multimedia.2 EffectSuggestionType行为变更
68
69**访问级别**
70
71系统接口
72
73**变更原因**
74
75效果推荐功能相关的枚举类,只有系统接口来获取/更新这些属性,无需开放。
76
77**变更影响**
78
79该变更为不兼容性变更。
80
81变更前:该枚举为公开接口。
82
83变更后:该枚举为系统接口。
84
85**起始API Level**
86
87API 12
88
89**变更发生版本**
90
91从OpenHarmony 5.0.0.39 版本开始。
92
93**变更的接口/组件**
94
95EffectSuggestionType/camera组件
96
97**适配指导**
98
99无需适配,相关接口没有开放,修改只是为了与相关接口的访问级别保持一致。
100
101## cl.multimedia.3 EffectSuggestionStatus行为变更
102
103**访问级别**
104
105系统接口
106
107**变更原因**
108
109效果推荐功能相关的类,只有系统接口来获取/更新这些属性,无需开放。
110
111**变更影响**
112
113该变更为不兼容性变更。
114
115变更前:该类为公开接口。
116
117变更后:该类为系统接口。
118
119**起始API Level**
120
121API 12
122
123**变更发生版本**
124
125从OpenHarmony 5.0.0.39 版本开始。
126
127**变更的接口/组件**
128
129EffectSuggestionStatus/camera组件
130
131**适配指导**
132
133无需适配,相关接口没有开放,修改只是为了与相关接口的访问级别保持一致。
134