static sdl_amedia_status_t SDL_AMediaCodecDummy_delete(SDL_AMediaCodec* acodec) { SDL_AMediaCodec_FakeFifo_destroy(&acodec->opaque->dummy_fifo); SDL_AMediaCodec_FreeInternal(acodec); return SDL_AMEDIA_OK; }
static sdl_amedia_status_t SDL_AMediaCodecJava_delete(SDL_AMediaCodec* acodec) { ALOGI("%s\n", __func__); if (!acodec) return SDL_AMEDIA_OK; JNIEnv *env = NULL; if (JNI_OK != SDL_JNI_SetupThreadEnv(&env)) { ALOGE("SDL_AMediaCodecJava_delete: SetupThreadEnv failed"); return SDL_AMEDIA_ERROR_UNKNOWN; } SDL_AMediaCodec_Opaque *opaque = (SDL_AMediaCodec_Opaque *)acodec->opaque; if (opaque) { if (opaque->android_media_codec) { (*env)->CallVoidMethod(env, opaque->android_media_codec, g_clazz.jmid_release); SDL_JNI_CatchException(env); } SDL_JNI_DeleteGlobalRefP(env, &opaque->output_buffer_info); SDL_JNI_DeleteGlobalRefP(env, &opaque->output_buffer); SDL_JNI_DeleteGlobalRefP(env, &opaque->output_buffer_array); SDL_JNI_DeleteGlobalRefP(env, &opaque->input_buffer); SDL_JNI_DeleteGlobalRefP(env, &opaque->input_buffer_array); SDL_JNI_DeleteGlobalRefP(env, &opaque->android_media_codec); } SDL_AMediaCodec_FreeInternal(acodec); return SDL_AMEDIA_OK; }