public unsafe CameraFrame(global::Com.Moodstocks.Android.Camera.CameraFrame.IReleaseListener p0, byte[] p1, global::Com.Moodstocks.Android.Camera.Size p2, int p3)
            : base(IntPtr.Zero, JniHandleOwnership.DoNotTransfer)
        {
            if (Handle != IntPtr.Zero)
            {
                return;
            }

            IntPtr native_p1 = JNIEnv.NewArray(p1);

            try {
                JValue *__args = stackalloc JValue [4];
                __args [0] = new JValue(p0);
                __args [1] = new JValue(native_p1);
                __args [2] = new JValue(p2);
                __args [3] = new JValue(p3);
                if (GetType() != typeof(CameraFrame))
                {
                    SetHandle(
                        global::Android.Runtime.JNIEnv.StartCreateInstance(GetType(), "(Lcom/moodstocks/android/camera/CameraFrame$ReleaseListener;[BLcom/moodstocks/android/camera/Size;I)V", __args),
                        JniHandleOwnership.TransferLocalRef);
                    global::Android.Runtime.JNIEnv.FinishCreateInstance(Handle, "(Lcom/moodstocks/android/camera/CameraFrame$ReleaseListener;[BLcom/moodstocks/android/camera/Size;I)V", __args);
                    return;
                }

                if (id_ctor_Lcom_moodstocks_android_camera_CameraFrame_ReleaseListener_arrayBLcom_moodstocks_android_camera_Size_I == IntPtr.Zero)
                {
                    id_ctor_Lcom_moodstocks_android_camera_CameraFrame_ReleaseListener_arrayBLcom_moodstocks_android_camera_Size_I = JNIEnv.GetMethodID(class_ref, "<init>", "(Lcom/moodstocks/android/camera/CameraFrame$ReleaseListener;[BLcom/moodstocks/android/camera/Size;I)V");
                }
                SetHandle(
                    global::Android.Runtime.JNIEnv.StartCreateInstance(class_ref, id_ctor_Lcom_moodstocks_android_camera_CameraFrame_ReleaseListener_arrayBLcom_moodstocks_android_camera_Size_I, __args),
                    JniHandleOwnership.TransferLocalRef);
                JNIEnv.FinishCreateInstance(Handle, class_ref, id_ctor_Lcom_moodstocks_android_camera_CameraFrame_ReleaseListener_arrayBLcom_moodstocks_android_camera_Size_I, __args);
            } finally {
                if (p1 != null)
                {
                    JNIEnv.CopyArray(native_p1, p1);
                    JNIEnv.DeleteLocalRef(native_p1);
                }
            }
        }
 static void n_OnFrameReleased(IntPtr jnienv, IntPtr native__this)
 {
     global::Com.Moodstocks.Android.Camera.CameraFrame.IReleaseListener __this = global::Java.Lang.Object.GetObject <global::Com.Moodstocks.Android.Camera.CameraFrame.IReleaseListener> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
     __this.OnFrameReleased();
 }