From 6929ec1d84756bc65d247521421cdcb3ccf21ebb Mon Sep 17 00:00:00 2001 From: qiu-qiu-wang Date: Thu, 30 Nov 2023 15:05:57 +0800 Subject: [PATCH] remove OH_ prefix from drm enum/struct/callback rename from drminfo to mediakeysysteminfo add drm avcodec adaptor api Signed-off-by: qiu-qiu-wang --- .../libnative_media_adec.ndk.json | 3 ++- .../libnative_media_avdemuxer.ndk.json | 4 ++- .../av_codec/native_avcodec_audiodecoder.h | 17 ++++++++++++ .../av_codec/native_avcodec_videodecoder.h | 17 ++++++++++++ multimedia/av_codec/native_avdemuxer.h | 27 +++++++++++++++++++ .../libnative_media_vdec.ndk.json | 3 ++- 6 files changed, 68 insertions(+), 3 deletions(-) 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 1b4472c0517..82ff39d0c96 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 bf9ca16b8a9..b13a1cf2033 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 bb62e8a8c20..77b265b92d2 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 3bc557751bb..79d6e87c692 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 cdcff091443..1cdbf5e04a3 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 7e6fd7d7a26..ffd2e639f1c 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" } ] -- Gitee