diff --git a/multimedia/av_codec/audio_decoder/libnative_media_adec.ndk.json b/multimedia/av_codec/audio_decoder/libnative_media_adec.ndk.json index 1b4472c0517b397be1e8af10c67488e46755a04e..82ff39d0c96472ae4bf21b0344d397efff32baf9 100644 --- a/multimedia/av_codec/audio_decoder/libnative_media_adec.ndk.json +++ b/multimedia/av_codec/audio_decoder/libnative_media_adec.ndk.json @@ -13,5 +13,6 @@ { "name": "OH_AudioDecoder_SetParameter" }, { "name": "OH_AudioDecoder_PushInputData" }, { "name": "OH_AudioDecoder_FreeOutputData" }, - { "name": "OH_AudioDecoder_IsValid" } + { "name": "OH_AudioDecoder_IsValid" }, + { "name": "OH_AudioDecoder_SetDecryptionConfig" } ] diff --git a/multimedia/av_codec/avdemuxer/libnative_media_avdemuxer.ndk.json b/multimedia/av_codec/avdemuxer/libnative_media_avdemuxer.ndk.json index bf9ca16b8a9bb96485c6792d7612d5b7eb96b32b..b13a1cf2033ae3e4b889195062349983bcf281e9 100644 --- a/multimedia/av_codec/avdemuxer/libnative_media_avdemuxer.ndk.json +++ b/multimedia/av_codec/avdemuxer/libnative_media_avdemuxer.ndk.json @@ -4,5 +4,7 @@ { "name": "OH_AVDemuxer_SelectTrackByID" }, { "name": "OH_AVDemuxer_UnselectTrackByID" }, { "name": "OH_AVDemuxer_ReadSample" }, - { "name": "OH_AVDemuxer_SeekToTime" } + { "name": "OH_AVDemuxer_SeekToTime" }, + { "name": "OH_AVDemuxer_SetMediaKeySystemInfoCallback" }, + { "name": "OH_AVDemuxer_GetMediaKeySystemInfo" } ] diff --git a/multimedia/av_codec/native_avcodec_audiodecoder.h b/multimedia/av_codec/native_avcodec_audiodecoder.h index bb62e8a8c20f4026b1cedd2cb9ffc4ccb7da7030..77b265b92d2508f32dc362de19d602eed749362c 100644 --- a/multimedia/av_codec/native_avcodec_audiodecoder.h +++ b/multimedia/av_codec/native_avcodec_audiodecoder.h @@ -22,6 +22,8 @@ #include "native_avformat.h" #include "native_avmemory.h" #include "native_avcodec_base.h" +#include "native_drm_common.h" +#include "native_mediakeysession.h" #ifdef __cplusplus extern "C" { @@ -218,6 +220,21 @@ OH_AVErrCode OH_AudioDecoder_FreeOutputData(OH_AVCodec *codec, uint32_t index); */ OH_AVErrCode OH_AudioDecoder_IsValid(OH_AVCodec *codec, bool *isValid); +/** + * @brief Set decryption info. + * + * @syscap SystemCapability.Multimedia.Media.AudioDecoder + * @param codec Pointer to an OH_AVCodec instance + * @param mediaKeySession A media key session instance with decryption function. + * @param secureVideoPath Require secure decoder or not. + * @return Returns AV_ERR_OK if the execution is successful, + * otherwise returns a specific error code, refer to {@link OH_AVErrCode} + * @since 11 + * @version 1.0 +*/ +OH_AVErrCode OH_AudioDecoder_SetDecryptionConfig(OH_AVCodec *codec, MediaKeySession *mediaKeySession, + bool secureVideoPath); + #ifdef __cplusplus } #endif diff --git a/multimedia/av_codec/native_avcodec_videodecoder.h b/multimedia/av_codec/native_avcodec_videodecoder.h index 3bc557751bb5aef040fedc6c4651f7c988315fc3..79d6e87c692f85171acda759c2ed4bc89a5ef1aa 100644 --- a/multimedia/av_codec/native_avcodec_videodecoder.h +++ b/multimedia/av_codec/native_avcodec_videodecoder.h @@ -22,6 +22,8 @@ #include "native_avformat.h" #include "native_avmemory.h" #include "native_avcodec_base.h" +#include "native_drm_common.h" +#include "native_mediakeysession.h" #ifdef __cplusplus extern "C" { @@ -242,6 +244,21 @@ OH_AVErrCode OH_VideoDecoder_FreeOutputData(OH_AVCodec *codec, uint32_t index); */ OH_AVErrCode OH_VideoDecoder_IsValid(OH_AVCodec *codec, bool *isValid); +/** + * @brief Set decryption info. + * + * @syscap SystemCapability.Multimedia.Media.VideoDecoder + * @param codec Pointer to an OH_AVCodec instance + * @param mediaKeySession A media key session instance with decryption function. + * @param secureVideoPath Require secure decoder or not. + * @return Returns AV_ERR_OK if the execution is successful, + * otherwise returns a specific error code, refer to {@link OH_AVErrCode} + * @since 11 + * @version 1.0 +*/ +OH_AVErrCode OH_VideoDecoder_SetDecryptionConfig(OH_AVCodec *codec, MediaKeySession *mediaKeySession, + bool secureVideoPath); + #ifdef __cplusplus } #endif diff --git a/multimedia/av_codec/native_avdemuxer.h b/multimedia/av_codec/native_avdemuxer.h index cdcff091443aa49dcd6b8b6a1565143afcab8a26..1cdbf5e04a34a2a9def7fadcb7f6ac19bf9c25de 100644 --- a/multimedia/av_codec/native_avdemuxer.h +++ b/multimedia/av_codec/native_avdemuxer.h @@ -21,6 +21,7 @@ #include "native_averrors.h" #include "native_avmemory.h" #include "native_avsource.h" +#include "native_drm_common.h" #ifdef __cplusplus extern "C" { @@ -110,6 +111,32 @@ OH_AVErrCode OH_AVDemuxer_ReadSample(OH_AVDemuxer *demuxer, uint32_t trackIndex, */ OH_AVErrCode OH_AVDemuxer_SeekToTime(OH_AVDemuxer *demuxer, int64_t millisecond, OH_AVSeekMode mode); +/** + * @brief Method to set player media key system info callback. + * @syscap SystemCapability.Multimedia.Media.Spliter + * @param demuxer Pointer to an OH_AVDemuxer instance + * @param callback object pointer. + * @return Returns {@link AV_ERR_OK} if the media key system info callback is set; returns an error code defined + * in {@link native_averrors.h} otherwise. + * @since 11 + * @version 1.0 + */ +OH_AVErrCode OH_AVDemuxer_SetMediaKeySystemInfoCallback(OH_AVDemuxer *demuxer, + DRM_MediaKeySystemInfoCallback callback); + +/** + * @brief Obtains media key system info to create media key session. + * @syscap SystemCapability.Multimedia.Media.Spliter + * @param demuxer Pointer to an OH_AVDemuxer instance + * @param mediaKeySystemInfo Indicates the media key systemInfo info which ram space allocated + * by callee and released by caller. + * @return Returns {@link AV_ERR_OK} if the current position is get; returns an error code defined + * in {@link native_averrors.h} otherwise. + * @since 11 + * @version 1.0 + */ +OH_AVErrCode OH_AVDemuxer_GetMediaKeySystemInfo(OH_AVDemuxer *demuxer, DRM_MediaKeySystemInfo **mediaKeySystemInfo); + #ifdef __cplusplus } #endif diff --git a/multimedia/av_codec/video_decoder/libnative_media_vdec.ndk.json b/multimedia/av_codec/video_decoder/libnative_media_vdec.ndk.json index 7e6fd7d7a269e611b4e2ab3781005ca759dc527b..ffd2e639f1cbeac82421d3dd0f76a88290af4397 100644 --- a/multimedia/av_codec/video_decoder/libnative_media_vdec.ndk.json +++ b/multimedia/av_codec/video_decoder/libnative_media_vdec.ndk.json @@ -15,5 +15,6 @@ { "name": "OH_VideoDecoder_PushInputData" }, { "name": "OH_VideoDecoder_RenderOutputData" }, { "name": "OH_VideoDecoder_FreeOutputData" }, - { "name": "OH_VideoDecoder_IsValid" } + { "name": "OH_VideoDecoder_IsValid" }, + { "name": "OH_VideoDecoder_SetDecryptionConfig" } ]