1e41f4b71Sopenharmony_ci# Media Subsystem Changelog 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci## cl.multimedia.1 OH_AVCodecBufferAttr Behavior Changed 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci**Access Level** 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ciPublic API 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci**Reason for Change** 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ciFor a video track, **pts** in the obtained **OH_AVCodecBufferAttr** struct is the timestamp encapsulated in the file minus the track start time so that it starts from 0. However, the **pts** processing is different for the audio and video tracks. When **pts** is used for audio and video synchronization, abnormal video effects occur. 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci**Change Impact** 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ciThis change is a non-compatible change. The **pts** value of the video track obtained is no longer starting from 0. Specifically, the **pts** information encapsulated in the file is used. 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci**Start API Level** 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci10 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci**Change Since** 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ciOpenHarmony SDK 5.0.0.39 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci**Key API/Component Changes** 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci| Name | Description | 28e41f4b71Sopenharmony_ci| ------------------------- | --------------------------- | 29e41f4b71Sopenharmony_ci| OH_AVCodecBufferAttr | Description information about the buffer of an **OH_AVCodec** instance.| 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci**Adaptation Guide** 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ciThe method of obtaining **pts** remains unchanged. However, no additional processing is performed internally. As such, **pts** is the timestamp encapsulated in the file. You can use and process **pts** based on your service logic. The sample code is as follows: 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci```c++ 36e41f4b71Sopenharmony_ciOH_AVBuffer *buffer = OH_AVBuffer_Create(w * h * 3 >> 1); 37e41f4b71Sopenharmony_ciif (buffer == nullptr) { 38e41f4b71Sopenharmony_ci // Exception handling. 39e41f4b71Sopenharmony_ci} 40e41f4b71Sopenharmony_ciint32_t ret = OH_AVDemuxer_ReadSampleBuffer(demuxer, trackIndex, buffer); 41e41f4b71Sopenharmony_ciif (ret != AV_ERR_OK) { 42e41f4b71Sopenharmony_ci // Exception handling. 43e41f4b71Sopenharmony_ci} 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ciOH_AVCodecBufferAttr info; 46e41f4b71Sopenharmony_ciret = OH_AVBuffer_GetBufferAttr(buffer, &info); 47e41f4b71Sopenharmony_ciif (ret != AV_ERR_OK) { 48e41f4b71Sopenharmony_ci // Exception handling. 49e41f4b71Sopenharmony_ci} 50e41f4b71Sopenharmony_ciint64_t newPts = info.pts; 51e41f4b71Sopenharmony_ci``` 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_ciYou can also convert the obtained **pts** to **pts** before the change based on the track start time, **OH_MD_KEY_TRACK_START_TIME**, which can be obtained since API version 12. The code is as follows: 54e41f4b71Sopenharmony_ci```c++ 55e41f4b71Sopenharmony_ciOH_AVFormat *trackFormat = OH_AVSource_GetTrackFormat(source, trackIndex); 56e41f4b71Sopenharmony_ciif (trackFormat == nullptr) { 57e41f4b71Sopenharmony_ci // Exception handling. 58e41f4b71Sopenharmony_ci} 59e41f4b71Sopenharmony_ciint64_t startTime = 0; 60e41f4b71Sopenharmony_ciif (!OH_AVFormat_GetLongValue(trackFormat, OH_MD_KEY_TRACK_START_TIME, &startTime)) { 61e41f4b71Sopenharmony_ci // Exception handling. 62e41f4b71Sopenharmony_ci} 63e41f4b71Sopenharmony_ciint64_t oldPts = newPts - startTime; 64e41f4b71Sopenharmony_ci``` 65e41f4b71Sopenharmony_ci 66e41f4b71Sopenharmony_ci## cl.multimedia.2 EffectSuggestionType Behavior Changed 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_ci**Access Level** 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ciSystem API 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci**Reason for Change** 73e41f4b71Sopenharmony_ci 74e41f4b71Sopenharmony_ciOnly system APIs can obtain or update the enums related to effect recommendation. 75e41f4b71Sopenharmony_ci 76e41f4b71Sopenharmony_ci**Change Impact** 77e41f4b71Sopenharmony_ci 78e41f4b71Sopenharmony_ciThis change is a non-compatible change. 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_ciBefore change: The enum is a public interface. 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ciAfter change: The enum is a system interface. 83e41f4b71Sopenharmony_ci 84e41f4b71Sopenharmony_ci**Start API Level** 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci12 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci**Change Since** 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ciOpenHarmony SDK 5.0.0.39 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ci**Key API/Component Changes** 93e41f4b71Sopenharmony_ci 94e41f4b71Sopenharmony_ciEffectSuggestionType/camera component 95e41f4b71Sopenharmony_ci 96e41f4b71Sopenharmony_ci**Adaptation Guide** 97e41f4b71Sopenharmony_ci 98e41f4b71Sopenharmony_ciNo adaptation is required. Related APIs are not opened. The change is only to keep the access level consistent with that of related APIs. 99e41f4b71Sopenharmony_ci 100e41f4b71Sopenharmony_ci## cl.multimedia.3 EffectSuggestionStatus Behavior Changed 101e41f4b71Sopenharmony_ci 102e41f4b71Sopenharmony_ci**Access Level** 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ciSystem API 105e41f4b71Sopenharmony_ci 106e41f4b71Sopenharmony_ci**Reason for Change** 107e41f4b71Sopenharmony_ci 108e41f4b71Sopenharmony_ciOnly system APIs can obtain or update the classes related to effect recommendation. 109e41f4b71Sopenharmony_ci 110e41f4b71Sopenharmony_ci**Change Impact** 111e41f4b71Sopenharmony_ci 112e41f4b71Sopenharmony_ciThis change is a non-compatible change. 113e41f4b71Sopenharmony_ci 114e41f4b71Sopenharmony_ciBefore change: The class is a public interface. 115e41f4b71Sopenharmony_ci 116e41f4b71Sopenharmony_ciAfter change: The class is a system interface. 117e41f4b71Sopenharmony_ci 118e41f4b71Sopenharmony_ci**Start API Level** 119e41f4b71Sopenharmony_ci 120e41f4b71Sopenharmony_ci12 121e41f4b71Sopenharmony_ci 122e41f4b71Sopenharmony_ci**Change Since** 123e41f4b71Sopenharmony_ci 124e41f4b71Sopenharmony_ciOpenHarmony SDK 5.0.0.39 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci**Key API/Component Changes** 127e41f4b71Sopenharmony_ci 128e41f4b71Sopenharmony_ciEffectSuggestionStatus/camera component 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci**Adaptation Guide** 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ciNo adaptation is required. Related APIs are not opened. The change is only to keep the access level consistent with that of related APIs. 133