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