1050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen/* 2050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * Copyright (C) 2014 The Android Open Source Project 3050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * 4050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * Licensed under the Apache License, Version 2.0 (the "License"); 5050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * you may not use this file except in compliance with the License. 6050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * You may obtain a copy of the License at 7050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * 8050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * http://www.apache.org/licenses/LICENSE-2.0 9050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * 10050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * Unless required by applicable law or agreed to in writing, software 11050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * distributed under the License is distributed on an "AS IS" BASIS, 12050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * See the License for the specific language governing permissions and 14050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * limitations under the License. 15050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen */ 16050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 17050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 18050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen/* 19050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * This file defines an NDK API. 20050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * Do not remove methods. 21050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * Do not change method signatures. 22050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * Do not change the value of constants. 23050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * Do not change the size of any of the classes defined in here. 24050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * Do not reference types that are not part of the NDK. 25050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen * Do not #include files that aren't part of the NDK. 26050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen */ 27050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 28050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen#ifndef _NDK_MEDIA_CRYPTO_H 29050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen#define _NDK_MEDIA_CRYPTO_H 30050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 31050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen#include <sys/types.h> 3279e2b622702fb148ccff12d6f38643466555c4ebMarco Nelissen#include <stdbool.h> 33050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 34050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen#ifdef __cplusplus 35050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissenextern "C" { 36050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen#endif 37050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 38050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissenstruct AMediaCrypto; 39050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissentypedef struct AMediaCrypto AMediaCrypto; 40050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 41050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissentypedef uint8_t AMediaUUID[16]; 42050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 43829e097f832b4c4c41733f9b77121888204d993eMarco Nelissenbool AMediaCrypto_isCryptoSchemeSupported(const AMediaUUID uuid); 44050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 45050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissenbool AMediaCrypto_requiresSecureDecoderComponent(const char *mime); 46050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 47050eb3280d7305b84f723d515be2dc9606dc39d1Marco NelissenAMediaCrypto* AMediaCrypto_new(const AMediaUUID uuid, const void *initData, size_t initDataSize); 48050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 49050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissenvoid AMediaCrypto_delete(AMediaCrypto* crypto); 50050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 51050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 52050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen#ifdef __cplusplus 53050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen} // extern "C" 54050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen#endif 55050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen 56050eb3280d7305b84f723d515be2dc9606dc39d1Marco Nelissen#endif // _NDK_MEDIA_CRYPTO_H 57