// ----------------------------------------------------------------------------
static void android_media_visualizer_native_finalize(JNIEnv *env,  jobject thiz) {
    ALOGV("android_media_visualizer_native_finalize jobject: %p\n", thiz);

    // delete the Visualizer object
    Visualizer* lpVisualizer = (Visualizer *)env->GetLongField(
        thiz, fields.fidNativeVisualizer);
    if (lpVisualizer) {
        lpVisualizer->cancelCaptureCallBack();
        ALOGV("deleting Visualizer: %p\n", lpVisualizer);
        delete lpVisualizer;
    }

    // delete the JNI data
    visualizerJniStorage* lpJniStorage = (visualizerJniStorage *)env->GetLongField(
        thiz, fields.fidJniData);
    if (lpJniStorage) {
        ALOGV("deleting pJniStorage: %p\n", lpJniStorage);
        delete lpJniStorage;
    }
}