I am using the Android NDK MediaDrm API to decrypt video access units with PlayReady.
I have found that certain API calls hang indefinitely. These calls are all successful in this order:
AMediaDrm_createByUUID()
AMediaDrm_openSession()
AMediaDrm_getKeyRequest()
AMediaDrm_provideKeyResponse()
But after the AMediaDrm_provideKeyResponse()
call, any call to AMediaDrm_closeSession()
or AMediaDrm_decrypt()
will hang forever. Looking at the disassembly in both cases, we get stuck at a line jumping to itself such as:
0xf2ea9dec: jmp 0xf2ea9dec
AMediaDrm_closeSession()
works when called straight after AMediaDrm_openSession()
or AMediaDrm_getKeyRequest()
.
Has anyone experienced this issue before? Is there something I might be doing wrong with AMediaDrm_provideKeyResponse()
?