NdkMediaCrypto.h revision 829e097f832b4c4c41733f9b77121888204d993e
1fa458e413c3e5b8d479e49258d060b7bb4567c57danno@chromium.org/* 243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * Copyright (C) 2014 The Android Open Source Project 343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * 443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * Licensed under the Apache License, Version 2.0 (the "License"); 543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * you may not use this file except in compliance with the License. 643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * You may obtain a copy of the License at 743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * 843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * http://www.apache.org/licenses/LICENSE-2.0 943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * 1043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * Unless required by applicable law or agreed to in writing, software 1143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * distributed under the License is distributed on an "AS IS" BASIS, 1243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * See the License for the specific language governing permissions and 1443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * limitations under the License. 1543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen */ 1643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 1743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 1843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen/* 1943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * This file defines an NDK API. 2043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * Do not remove methods. 2143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * Do not change method signatures. 2243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * Do not change the value of constants. 2343d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * Do not change the size of any of the classes defined in here. 2443d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * Do not reference types that are not part of the NDK. 2543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen * Do not #include files that aren't part of the NDK. 2643d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen */ 2743d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 2843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen#ifndef _NDK_MEDIA_CRYPTO_H 2943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen#define _NDK_MEDIA_CRYPTO_H 3043d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 31c612e0211bdb8821cbd7886e15b0273ed82d2e9edanno@chromium.org#include <sys/types.h> 3243d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 331805e21b0aece8c05f4960a5c0751c4463557891fschneider@chromium.org#ifdef __cplusplus 34f837290e142d49c9e1332841ec2c49ee2f09584avegorov@chromium.orgextern "C" { 35b3284ad36ee358a35b81379ad1c449e4f8021362kasperl@chromium.org#endif 3665fae84840520e9ce49a78bf542abf073b49ac3fricow@chromium.org 37ce5e87bd905d592a8bd612b3dedf7a994177c13aager@chromium.orgstruct AMediaCrypto; 38dff694e8cc18aa9640e92962de2699b9d07a7690vegorov@chromium.orgtypedef struct AMediaCrypto AMediaCrypto; 3943d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 40fa943b736b1d996084393011529d568165bb5d83lrn@chromium.orgtypedef uint8_t AMediaUUID[16]; 4143d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 4255ee80713569ab0324fc8dcedcb5518501daa6a6ricow@chromium.orgbool AMediaCrypto_isCryptoSchemeSupported(const AMediaUUID uuid); 43b5737496145078e47f3d28f19ed8d918e2254738ager@chromium.org 44a74f0daeb278665869b4b6a3bc2739e88fed93b1ager@chromium.orgbool AMediaCrypto_requiresSecureDecoderComponent(const char *mime); 4543d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansen 4671affb54842da76b24f0bb3184e9f0960523f89dkasperl@chromium.orgAMediaCrypto* AMediaCrypto_new(const AMediaUUID uuid, const void *initData, size_t initDataSize); 4771affb54842da76b24f0bb3184e9f0960523f89dkasperl@chromium.org 4843d26ecc3563a46f62a0224030667c8f8f3f6cebchristian.plesner.hansenvoid AMediaCrypto_delete(AMediaCrypto* crypto); 49b3284ad36ee358a35b81379ad1c449e4f8021362kasperl@chromium.org 50b3284ad36ee358a35b81379ad1c449e4f8021362kasperl@chromium.org 51b3284ad36ee358a35b81379ad1c449e4f8021362kasperl@chromium.org#ifdef __cplusplus 52b3284ad36ee358a35b81379ad1c449e4f8021362kasperl@chromium.org} // extern "C" 53b3284ad36ee358a35b81379ad1c449e4f8021362kasperl@chromium.org#endif 54b3284ad36ee358a35b81379ad1c449e4f8021362kasperl@chromium.org 55b3284ad36ee358a35b81379ad1c449e4f8021362kasperl@chromium.org#endif // _NDK_MEDIA_CRYPTO_H 56b3284ad36ee358a35b81379ad1c449e4f8021362kasperl@chromium.org