15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// From private/ppb_content_decryptor_private.idl, 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// modified Mon Aug 25 13:52:39 2014. 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/c/pp_errors.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/private/ppb_content_decryptor_private.h" 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/shared_impl/tracked_callback.h" 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/thunk/enter.h" 125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "ppapi/thunk/ppapi_thunk_export.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ppapi { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace thunk { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void PromiseResolved(PP_Instance instance, uint32_t promise_id) { 20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::PromiseResolved()"; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EnterInstance enter(instance); 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (enter.failed()) 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return; 24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) enter.functions()->PromiseResolved(instance, promise_id); 25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 26f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 27f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void PromiseResolvedWithSession(PP_Instance instance, 28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) uint32_t promise_id, 29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) struct PP_Var web_session_id) { 30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::PromiseResolvedWithSession()"; 31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EnterInstance enter(instance); 32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) if (enter.failed()) 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) return; 34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) enter.functions()->PromiseResolvedWithSession(instance, 35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) promise_id, 36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) web_session_id); 37f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)} 38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid PromiseResolvedWithKeyIds(PP_Instance instance, 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci uint32_t promise_id, 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci struct PP_Var key_ids_array) { 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci VLOG(4) << "PPB_ContentDecryptor_Private::PromiseResolvedWithKeyIds()"; 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EnterInstance enter(instance); 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (enter.failed()) 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return; 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci enter.functions()->PromiseResolvedWithKeyIds(instance, 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci promise_id, 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci key_ids_array); 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void PromiseRejected(PP_Instance instance, 52f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) uint32_t promise_id, 53f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) PP_CdmExceptionCode exception_code, 54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) uint32_t system_code, 55f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) struct PP_Var error_description) { 56f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::PromiseRejected()"; 57f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) EnterInstance enter(instance); 58f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) if (enter.failed()) 59f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) return; 60f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) enter.functions()->PromiseRejected(instance, 61f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) promise_id, 62f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) exception_code, 63f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) system_code, 64f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) error_description); 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 67a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)void SessionMessage(PP_Instance instance, 68f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) struct PP_Var web_session_id, 69a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) struct PP_Var message, 70a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) struct PP_Var destination_url) { 71a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::SessionMessage()"; 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EnterInstance enter(instance); 73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (enter.failed()) 74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return; 75a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) enter.functions()->SessionMessage(instance, 76f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) web_session_id, 77a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) message, 78a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) destination_url); 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid SessionKeysChange(PP_Instance instance, 821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci struct PP_Var web_session_id, 831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci PP_Bool has_additional_usable_key) { 841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci VLOG(4) << "PPB_ContentDecryptor_Private::SessionKeysChange()"; 851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EnterInstance enter(instance); 861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (enter.failed()) 871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return; 881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci enter.functions()->SessionKeysChange(instance, 891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci web_session_id, 901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci has_additional_usable_key); 911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid SessionExpirationChange(PP_Instance instance, 941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci struct PP_Var web_session_id, 951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci PP_Time new_expiry_time) { 961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci VLOG(4) << "PPB_ContentDecryptor_Private::SessionExpirationChange()"; 971320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci EnterInstance enter(instance); 981320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if (enter.failed()) 991320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return; 1001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci enter.functions()->SessionExpirationChange(instance, 1011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci web_session_id, 1021320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci new_expiry_time); 1031320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 1041320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 105f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void SessionReady(PP_Instance instance, struct PP_Var web_session_id) { 106a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::SessionReady()"; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EnterInstance enter(instance); 108c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (enter.failed()) 109c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return; 110f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) enter.functions()->SessionReady(instance, web_session_id); 111f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 112f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 113f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void SessionClosed(PP_Instance instance, struct PP_Var web_session_id) { 114a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::SessionClosed()"; 115f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) EnterInstance enter(instance); 116f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) if (enter.failed()) 117f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return; 118f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) enter.functions()->SessionClosed(instance, web_session_id); 119a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)} 120a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) 121a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)void SessionError(PP_Instance instance, 122f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) struct PP_Var web_session_id, 123f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) PP_CdmExceptionCode exception_code, 124f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) uint32_t system_code, 125f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) struct PP_Var error_description) { 126a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::SessionError()"; 127a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) EnterInstance enter(instance); 128a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) if (enter.failed()) 129a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) return; 130a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) enter.functions()->SessionError(instance, 131f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) web_session_id, 132f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) exception_code, 133f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) system_code, 134f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) error_description); 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DeliverBlock(PP_Instance instance, 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource decrypted_block, 1392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_DecryptedBlockInfo* decrypted_block_info) { 140c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::DeliverBlock()"; 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EnterInstance enter(instance); 142c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (enter.failed()) 143c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return; 144c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) enter.functions()->DeliverBlock(instance, 145c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) decrypted_block, 146c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) decrypted_block_info); 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DecoderInitializeDone(PP_Instance instance, 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_DecryptorStreamType decoder_type, 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t request_id, 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool success) { 153c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::DecoderInitializeDone()"; 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EnterInstance enter(instance); 155c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (enter.failed()) 156c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return; 157c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) enter.functions()->DecoderInitializeDone(instance, 158c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) decoder_type, 159c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) request_id, 160c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) success); 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DecoderDeinitializeDone(PP_Instance instance, 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_DecryptorStreamType decoder_type, 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t request_id) { 166c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::DecoderDeinitializeDone()"; 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EnterInstance enter(instance); 168c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (enter.failed()) 169c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return; 170c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) enter.functions()->DecoderDeinitializeDone(instance, 171c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) decoder_type, 172c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) request_id); 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DecoderResetDone(PP_Instance instance, 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_DecryptorStreamType decoder_type, 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) uint32_t request_id) { 178c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::DecoderResetDone()"; 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EnterInstance enter(instance); 180c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (enter.failed()) 181c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return; 182c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) enter.functions()->DecoderResetDone(instance, decoder_type, request_id); 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void DeliverFrame(PP_Instance instance, 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource decrypted_frame, 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_DecryptedFrameInfo* decrypted_frame_info) { 188c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::DeliverFrame()"; 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EnterInstance enter(instance); 190c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (enter.failed()) 191c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return; 192c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) enter.functions()->DeliverFrame(instance, 193c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) decrypted_frame, 194c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) decrypted_frame_info); 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void DeliverSamples( 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Instance instance, 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Resource audio_frames, 2001e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const struct PP_DecryptedSampleInfo* decrypted_sample_info) { 201c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) VLOG(4) << "PPB_ContentDecryptor_Private::DeliverSamples()"; 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) EnterInstance enter(instance); 203c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (enter.failed()) 204c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return; 205c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) enter.functions()->DeliverSamples(instance, 206c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) audio_frames, 2071e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) decrypted_sample_info); 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 210f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const PPB_ContentDecryptor_Private_0_12 211f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) g_ppb_contentdecryptor_private_thunk_0_12 = { 212f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) &PromiseResolved, 213f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) &PromiseResolvedWithSession, 2141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci &PromiseResolvedWithKeyIds, 215f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) &PromiseRejected, 216a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) &SessionMessage, 2171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci &SessionKeysChange, 2181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci &SessionExpirationChange, 219a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) &SessionReady, 220a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) &SessionClosed, 221a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) &SessionError, 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) &DeliverBlock, 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) &DecoderInitializeDone, 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) &DecoderDeinitializeDone, 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) &DecoderResetDone, 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) &DeliverFrame, 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) &DeliverSamples 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 232f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)PPAPI_THUNK_EXPORT const PPB_ContentDecryptor_Private_0_12* 233f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) GetPPB_ContentDecryptor_Private_0_12_Thunk() { 234f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) return &g_ppb_contentdecryptor_private_thunk_0_12; 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace thunk 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ppapi 239