diff --git a/multimedia/av_codec/avdemuxer/libnative_media_avdemuxer.ndk.json b/multimedia/av_codec/avdemuxer/libnative_media_avdemuxer.ndk.json index 0f1551246d802812986609a36989a170eb00d451..2a3cb212f6ff277c6801502b05a573e86a028c25 100644 --- a/multimedia/av_codec/avdemuxer/libnative_media_avdemuxer.ndk.json +++ b/multimedia/av_codec/avdemuxer/libnative_media_avdemuxer.ndk.json @@ -26,5 +26,13 @@ { "first_introduced": "11", "name": "OH_AVDemuxer_ReadSampleBuffer" + }, + { + "first_introduced": "11", + "name": "OH_AVDemuxer_SetMediaKeySystemInfoCallback" + }, + { + "first_introduced": "11", + "name": "OH_AVDemuxer_GetMediaKeySystemInfo" } ] diff --git a/multimedia/av_codec/native_avcodec_videodecoder.h b/multimedia/av_codec/native_avcodec_videodecoder.h index 46dc45b8c99b4bbc433dce7b2a24c8e8ecfdd994..6c41bb59980a422c0a350c601ceae8221b1739b8 100644 --- a/multimedia/av_codec/native_avcodec_videodecoder.h +++ b/multimedia/av_codec/native_avcodec_videodecoder.h @@ -24,6 +24,8 @@ extern "C" { #endif +typedef struct MediaKeySession MediaKeySession; + /** * @brief Creates a video decoder instance from the mime type, which is recommended in most cases. * @syscap SystemCapability.Multimedia.Media.VideoDecoder @@ -300,8 +302,23 @@ OH_AVErrCode OH_VideoDecoder_FreeOutputBuffer(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 -#endif // NATIVE_AVCODEC_VIDEODECODER_H \ No newline at end of file +#endif // NATIVE_AVCODEC_VIDEODECODER_H diff --git a/multimedia/av_codec/native_avdemuxer.h b/multimedia/av_codec/native_avdemuxer.h index c5935a2e028b632dfed01c02601324ad5a128f84..84634687e987dbfa241f494a726351ff3fa3bbdf 100644 --- a/multimedia/av_codec/native_avdemuxer.h +++ b/multimedia/av_codec/native_avdemuxer.h @@ -25,6 +25,8 @@ extern "C" { #endif typedef struct OH_AVDemuxer OH_AVDemuxer; +typedef struct DRM_MediaKeySystemInfo DRM_MediaKeySystemInfo; +typedef void (*DRM_MediaKeySystemInfoCallback)(DRM_MediaKeySystemInfo* mediaKeySystemInfo); /** * @brief Creates an OH_AVDemuxer instance for getting samples from source. @@ -125,6 +127,32 @@ OH_AVErrCode OH_AVDemuxer_ReadSampleBuffer(OH_AVDemuxer *demuxer, uint32_t track */ 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 drm 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 system 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 e39821e1aa16dcab39df73d59c78203983217742..f6b521476fa3d78ff0042ea38ded1c5687e8468f 100644 --- a/multimedia/av_codec/video_decoder/libnative_media_vdec.ndk.json +++ b/multimedia/av_codec/video_decoder/libnative_media_vdec.ndk.json @@ -82,5 +82,10 @@ { "first_introduced": "11", "name": "OH_VideoDecoder_RenderOutputBuffer" + }, + { + "first_introduced": "11", + "name": "OH_VideoDecoder_SetDecryptionConfig" } + ]