Android PlayReady DRM queueSecureInputBuffer не расшифровывается - PullRequest
0 голосов
/ 12 марта 2020

Я использую 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 DRM API sequence used

...