private Packet DecryptPacketOnIemeThread(EncryptedPacket packet, CancellationToken token) { // Do padding only for Widevine with keys shorter then 16 bytes // Shorter keys need to be zero padded, not PCKS#7 if (DrmType == EmeUtils.DrmType.Widevine && packet.Iv.Length < 16) { packet.Iv = PadIv(packet.Iv); } var pHandleArray = new HandleSize[1]; var ret = CreateParamsAndDecryptData(packet, ref pHandleArray, token); if (ret == eCDMReturnType.E_SUCCESS) { return(new DecryptedEMEPacket(thread) { Dts = packet.Dts, Pts = packet.Pts, StreamType = packet.StreamType, IsKeyFrame = packet.IsKeyFrame, Duration = packet.Duration, HandleSize = pHandleArray[0] }); } Logger.Error($"Decryption failed: {packet.StreamType} - {ret}"); throw new DrmException($"Decryption failed: {packet.StreamType} - {ret}"); }
public void CleanHandle() { HandleSize = new HandleSize(); }