humble-video-noarch/src/main/java/io/humble/ferry/RefCounted.java
public void delete()
   {
     if(swigCPtr != 0) {
       // assigning to an object removes an incorrect java
       // compiler warning for some
       // generated files
       Object object = this;
       if (object instanceof RefCounted && mRefCounter != null) {
         mRefCounter.delete();
       } else if (swigCMemOwn) {
         swigCMemOwn = false;
       }

     }
     mJavaRefCount = null;
     mRefCounter = null;
     mObjectToForceFinalize = null;
     mLifecycleReference = null;
     swigCPtr = 0;
   }
public void delete()
   {
     if(swigCPtr != 0) {
       // assigning to an object removes an incorrect java
       // compiler warning for some
       // generated files
       Object object = this;
       if (object instanceof RefCounted && mRefCounter != null) {
         mRefCounter.delete();
       } else if (swigCMemOwn) {
         swigCMemOwn = false;
       }

     }
     mJavaRefCount = null;
     mRefCounter = null;
     mObjectToForceFinalize = null;
     mLifecycleReference = null;
     swigCPtr = 0;
   }
Releases any underlying native memory and marks this object
as invalid.
<p>
Normally Ferry manages when to release native memory.
</p>
<p>
In the unlikely event you want to control EXACTLY when a native
object is released, each Humble object has a {@link #delete()}
method that you can use. Once you call {@link #delete()},
you must ENSURE your object is never referenced again from
that Java object -- Ferry tries to help you avoid crashes if you
accidentally use an object after deletion but on this but we
cannot offer 100% protection (specifically if another thread
is accessing that object EXACTLY when you {@link #delete()} it).
</p>