diff --git a/multimedia/av_codec/native_avcodec_base.h b/multimedia/av_codec/native_avcodec_base.h index ce92ddfee08b5c255f721d09c2c138713696c7a9..ecd5f4e401dc3e168f4b1b10cbedf08d6734cee1 100644 --- a/multimedia/av_codec/native_avcodec_base.h +++ b/multimedia/av_codec/native_avcodec_base.h @@ -196,6 +196,8 @@ typedef struct OH_AVCodecCallback { */ typedef int32_t (*OH_AVDataSourceReadAt)(OH_AVBuffer *data, int32_t length, int64_t pos); +typedef int32_t (*OH_AVDataSourceReadAtExt)(OH_AVBuffer *data, int32_t length, int64_t pos, void* userData); + /** * @brief User customized data source. * @syscap SystemCapability.Multimedia.Media.CodecBase @@ -212,6 +214,11 @@ typedef struct OH_AVDataSource { OH_AVDataSourceReadAt readAt; } OH_AVDataSource; +typedef struct OH_AVDataSourceExt { + int64_t size; + OH_AVDataSourceReadAtExt readAt; +} OH_AVDataSourceExt; + /** * @brief Enumerates the mime types of video avc codec. * diff --git a/multimedia/av_codec/native_avsource.h b/multimedia/av_codec/native_avsource.h index f59fe1f2f4ff76e19c4901808f01da9841e8470b..6f700d74de33be5be2d709f62e8cbb93ac4d830c 100644 --- a/multimedia/av_codec/native_avsource.h +++ b/multimedia/av_codec/native_avsource.h @@ -68,6 +68,8 @@ typedef struct OH_AVSource OH_AVSource; */ OH_AVSource *OH_AVSource_CreateWithDataSource(OH_AVDataSource *dataSource); +OH_AVSource *OH_AVSource_CreateWithDataSourceExt(OH_AVDataSourceExt *dataSource, void* userData); + /** * @brief Creates an OH_AVSource instance that models the media at the URI. * @syscap SystemCapability.Multimedia.Media.Spliter diff --git a/multimedia/media_foundation/native_averrors.h b/multimedia/media_foundation/native_averrors.h index 398a16f0fc334460d5a1d30647f198677c9def9a..a37f625a664cf86e2a2e65146cb96933444bd969 100644 --- a/multimedia/media_foundation/native_averrors.h +++ b/multimedia/media_foundation/native_averrors.h @@ -180,6 +180,11 @@ typedef enum OH_AVErrCode { * @since 14 */ AV_ERR_IO_UNSUPPORTED_REQUEST = 5411011, + /** + * @error clear text traffic not permitted. + * @since 16 + */ + AV_ERR_IO_CLEARTEXT_NOT_PERMITTED = 5411012, } OH_AVErrCode; #ifdef __cplusplus diff --git a/multimedia/player_framework/avplayer.h b/multimedia/player_framework/avplayer.h index 474b2885a2090ebfefdad3643fc87826bcc8f4c6..7411014336bad2fb0eb7d086ba7d58ffd14915fe 100644 --- a/multimedia/player_framework/avplayer.h +++ b/multimedia/player_framework/avplayer.h @@ -308,6 +308,8 @@ OH_AVErrCode OH_AVPlayer_GetVideoHeight(OH_AVPlayer *player, int32_t *videoHeigh */ OH_AVErrCode OH_AVPlayer_SetPlaybackSpeed(OH_AVPlayer *player, AVPlaybackSpeed speed); +OH_AVErrCode OH_AVPlayer_SetPlaybackRate(OH_AVPlayer *player, float rate); + /** * @brief get the current player playback rate * @syscap SystemCapability.Multimedia.Media.AVPlayer diff --git a/multimedia/player_framework/avplayer_base.h b/multimedia/player_framework/avplayer_base.h index b351f5cdd3a9a58ed8184b4a4b9da3ab693b071e..85c41340001d3c4130981b853c258dafbdff04f9 100644 --- a/multimedia/player_framework/avplayer_base.h +++ b/multimedia/player_framework/avplayer_base.h @@ -191,6 +191,8 @@ typedef enum AVPlayerOnInfoType { * {@link OH_AVPlayerOnInfo} is the same as {@OH_AudioStream_DeviceChangeReason} in audio framework. */ AV_INFO_TYPE_AUDIO_OUTPUT_DEVICE_CHANGE = 17, + /* return the message when set playback rate done */ + AV_INFO_TYPE_PLAYBACK_RATE_DONE = 18; } AVPlayerOnInfoType; /** @@ -356,6 +358,13 @@ extern const char* OH_PLAYER_MESSAGE_TYPE; */ extern const char* OH_PLAYER_IS_LIVE_STREAM; +/** + * @brief Key to get playback rate, value type is float. + * @syscap SystemCapability.Multimedia.Media.AVPlayer + * @since 18 + */ +extern const char* OH_PLAYER_PLAYBACK_RATE; + /** * @brief Called when a player message or alarm is received. * @syscap SystemCapability.Multimedia.Media.AVPlayer