1a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik/* 2a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * Copyright (C) 2013 The Android Open Source Project 3a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * 4a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * Licensed under the Apache License, Version 2.0 (the "License"); 5a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * you may not use this file except in compliance with the License. 6a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * You may obtain a copy of the License at 7a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * 8a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * http://www.apache.org/licenses/LICENSE-2.0 9a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * 10a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * Unless required by applicable law or agreed to in writing, software 11a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * distributed under the License is distributed on an "AS IS" BASIS, 12a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * See the License for the specific language governing permissions and 14a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik * limitations under the License. 15a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik */ 16a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik 17a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik#define LOG_TAG "FancyDecoding" 18a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik 19a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik#include <android/bitmap.h> 20a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik#include <stdlib.h> 21a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik#include <stdio.h> 22a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik#include "FrameSequenceJNI.h" 23a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik#include "JNIHelpers.h" 24a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik#include "Stream.h" 25a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik#include "utils/log.h" 26a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik 27a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craikvoid throwException(JNIEnv* env, const char* error) { 28a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik jclass clazz = env->FindClass("java/lang/RuntimeException"); 29a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik env->ThrowNew(clazz, error); 30a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik} 31a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik 32a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craikjint JNI_OnLoad(JavaVM* vm, void* reserved) { 33a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik JNIEnv* env; 34a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik if (vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6) != JNI_OK) { 35a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik return -1; 36a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik } 37a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik if (FrameSequence_OnLoad(env)) { 38a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik ALOGE("Failed to load FrameSequence"); 39a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik return -1; 40a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik } 41a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik if (JavaStream_OnLoad(env)) { 42a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik ALOGE("Failed to load JavaStream"); 43a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik return -1; 44a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik } 45a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik 46a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik return JNI_VERSION_1_6; 47a1265c3d8a20e805e0c45083d5c7d728d4b70009Chris Craik} 48