Throw IllegalStateException if native objects are used after dispose.

This makes it easier to debug issues related to double dispose /
use after dispose.

Bug: webrtc:7566, webrtc:8297
Change-Id: I07429b2b794deabb62b5f3ea1cf92eea6f66a149
Reviewed-on: https://webrtc-review.googlesource.com/102540
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24894}
diff --git a/sdk/android/api/org/webrtc/VideoSource.java b/sdk/android/api/org/webrtc/VideoSource.java
index e0c6167..7f9f3e5 100644
--- a/sdk/android/api/org/webrtc/VideoSource.java
+++ b/sdk/android/api/org/webrtc/VideoSource.java
@@ -30,13 +30,18 @@
    * maintain the input orientation, so it doesn't matter if e.g. 1280x720 or 720x1280 is requested.
    */
   public void adaptOutputFormat(int width, int height, int fps) {
-    nativeAdaptOutputFormat(nativeSource, width, height, fps);
+    nativeAdaptOutputFormat(getNativeVideoTrackSource(), width, height, fps);
   }
 
   public CapturerObserver getCapturerObserver() {
     return capturerObserver;
   }
 
+  /** Returns a pointer to webrtc::VideoTrackSourceInterface. */
+  long getNativeVideoTrackSource() {
+    return getNativeMediaSource();
+  }
+
   // Returns source->internal() from webrtc::VideoTrackSourceProxy.
   private static native long nativeGetInternalSource(long source);
   private static native void nativeAdaptOutputFormat(long source, int width, int height, int fps);