Я использую API, как описано в Документация Microsoft , см. Изображение ниже.
При установке я не получаю никаких ошибок от API в любой момент. Я создаю безопасный декодер, открываю сеанс, извлекаю ключ, предоставляю ответ и т. Д. c.
AMediaDrm_isCryptoSchemeSupported
возвращается, как и ожидалось. - Код c есть
AMediaCodec_configure
с соответствующим объектом AMediaCrypto
и поверхностью ANativeWindow
- SurfaceView с setSecure(true)
.
Воспроизведение первых секунд незашифрованного содержимого видео в порядке. Когда пришло время расшифровывать, для каждого входного семпла я создаю AMediaCodecCryptoInfo
с соответствующей информацией и отправляю их sh в декодер с помощью queueSecureInputBuffer()
.
Последовательность буферизации
AMediaCodec_queueSecureInputBuffer()
AMediaCodec_dequeueOutputBuffer()
AMediaCodec_releaseOutputBuffer()
На первом примере из созданного журнала (см. Ниже) я могу вывести вызов плагина PlayReady Drm_Reader_Bind. Но нет попытки расшифровать. Ошибка не возвращается. Ничего не отображается.
Если я продолжу буферизовать зашифрованное содержимое, в конечном итоге AMediaCodec_dequeueOutputBuffer()
вернет AMEDIACODEC_INFO_TRY_AGAIN_LATER
.
Что мне не хватает для расшифровки и рендеринга плагина?
Последние записи из плагина DRM.
03-13 02:09:15.190 1766 1766 E PlayReadySession: [bindLicenseWithKID,188]: The key index:0 !!
03-13 02:09:15.190 1766 1766 E PlayReadySession: bindLicenseWithKID,229: kid_num = 1
03-13 02:09:15.190 1766 1766 E PlayReadySession: bindLicenseWithKID,245, do non-persist init
03-13 02:09:15.190 1766 1766 E PlayReadySession: resetDrmHeaderWithKID >>
03-13 02:09:15.190 1766 1766 E [PR40][SDK] : [API] Drm_Reader_Bind in
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : DRM_LEVL_PerformOperationsXMR, f_eOperation = 1
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : DRM_LEVL_PerformOperationsXMR(938):[PR40] 3_XMR_IS_EXPIRATION_VALID-dwBeginDate:
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : 2020-3-12 17:5:7
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : DRM_LEVL_PerformOperationsXMR(939): 3_XMR_IS_EXPIRATION_VALID curtime:
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : 2020-3-12 17:9:15
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : DRM_LEVL_PerformOperationsXMR(950):4_XMR_IS_EXPIRATION_VALID-dwEndDate:
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : 2020-4-11 16:6:7
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : DRM_LEVL_PerformOperationsXMR(951):4_XMR_IS_EXPIRATION_VALID curtime:
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.192 1766 1766 E [PR40][SDK] : 2020-3-12 17:9:15
03-13 02:09:15.193 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.193 1766 1766 E [PR40][SDK] : DRM_LEVL_PerformOperationsXMR, lReasonForFail = 0
03-13 02:09:15.193 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.193 1766 1766 E [PR40][SDK] : DRM_LEVL_PerformOperationsXMR, f_eOperation = 5
03-13 02:09:15.193 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.193 1766 1766 E [PR40][SDK] : DRM_LEVL_PerformOperationsXMR, lReasonForFail = 0
03-13 02:09:15.193 1766 1766 I [PR40][SDK] : === DRM_PLAY_OPL_CALLBACK ===
03-13 02:09:15.193 1766 1766 I [PR40][SDK] : wCompressedDigitalVideo = 100
03-13 02:09:15.193 1766 1766 I [PR40][SDK] : wUncompressedDigitalVideo = 250
03-13 02:09:15.194 1766 1766 I [PR40][SDK] : wAnalogVideo = 150
03-13 02:09:15.194 1766 1766 I [PR40][SDK] : wCompressedDigitalAudio = 100
03-13 02:09:15.194 1766 1766 I [PR40][SDK] : wUncompressedDigitalAudio = 100
03-13 02:09:15.196 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.196 1766 1766 E [PR40][SDK] : DRM_LEVL_PerformOperationsXMR, f_eOperation = 5
03-13 02:09:15.196 1766 1766 E [PR40][SDK] : [PR40][SDK]
03-13 02:09:15.196 1766 1766 E [PR40][SDK] : DRM_LEVL_PerformOperationsXMR, lReasonForFail = 0
03-13 02:09:15.196 1766 1766 E [PR40][SDK] : [API] Drm_Reader_Bind out, dr = 0x00000000
Используемая последовательность API DRM