| Index: talk/app/webrtc/java/src/org/webrtc/VideoCapturerAndroid.java
|
| diff --git a/talk/app/webrtc/java/src/org/webrtc/VideoCapturerAndroid.java b/talk/app/webrtc/java/src/org/webrtc/VideoCapturerAndroid.java
|
| index e40cd1ac29cb9afac7eea536fa6681692f365d81..63388a22f675132af71b509d1582aa14f8f6d869 100644
|
| --- a/talk/app/webrtc/java/src/org/webrtc/VideoCapturerAndroid.java
|
| +++ b/talk/app/webrtc/java/src/org/webrtc/VideoCapturerAndroid.java
|
| @@ -270,6 +270,21 @@ public class VideoCapturerAndroid extends VideoCapturer implements PreviewCallba
|
| return true;
|
| }
|
|
|
| + // Requests a new output format from the video capturer. Captured frames
|
| + // by the camera will be scaled/or dropped by the video capturer.
|
| + public synchronized void onOutputFormatRequest(
|
| + final int width, final int height, final int fps) {
|
| + if (cameraThreadHandler == null) {
|
| + Log.e(TAG, "Calling onOutputFormatRequest() for already stopped camera.");
|
| + return;
|
| + }
|
| + cameraThreadHandler.post(new Runnable() {
|
| + @Override public void run() {
|
| + onOutputFormatRequestOnCameraThread(width, height, fps);
|
| + }
|
| + });
|
| + }
|
| +
|
| private VideoCapturerAndroid() {
|
| Log.d(TAG, "VideoCapturerAndroid");
|
| }
|
| @@ -641,6 +656,16 @@ public class VideoCapturerAndroid extends VideoCapturer implements PreviewCallba
|
| }
|
| }
|
|
|
| + private void onOutputFormatRequestOnCameraThread(
|
| + int width, int height, int fps) {
|
| + if (camera == null) {
|
| + return;
|
| + }
|
| + Log.d(TAG, "onOutputFormatRequestOnCameraThread: " + width + "x" + height +
|
| + "@" + fps);
|
| + frameObserver.OnOutputFormatRequest(width, height, fps);
|
| + }
|
| +
|
| synchronized void returnBuffer(final long timeStamp) {
|
| if (cameraThreadHandler == null) {
|
| // The camera has been stopped.
|
| @@ -919,6 +944,11 @@ public class VideoCapturerAndroid extends VideoCapturer implements PreviewCallba
|
| // VideoCapturerAndroid.
|
| abstract void OnFrameCaptured(byte[] data, int length, int rotation,
|
| long timeStamp);
|
| +
|
| + // Requests an output format from the video capturer. Captured frames
|
| + // by the camera will be scaled/or dropped by the video capturer.
|
| + // Called on a Java thread owned by VideoCapturerAndroid.
|
| + abstract void OnOutputFormatRequest(int width, int height, int fps);
|
| }
|
|
|
| // An implementation of CapturerObserver that forwards all calls from
|
| @@ -941,9 +971,16 @@ public class VideoCapturerAndroid extends VideoCapturer implements PreviewCallba
|
| nativeOnFrameCaptured(nativeCapturer, data, length, rotation, timeStamp);
|
| }
|
|
|
| + @Override
|
| + public void OnOutputFormatRequest(int width, int height, int fps) {
|
| + nativeOnOutputFormatRequest(nativeCapturer, width, height, fps);
|
| + }
|
| +
|
| private native void nativeCapturerStarted(long nativeCapturer,
|
| boolean success);
|
| private native void nativeOnFrameCaptured(long nativeCapturer,
|
| byte[] data, int length, int rotation, long timeStamp);
|
| + private native void nativeOnOutputFormatRequest(long nativeCapturer,
|
| + int width, int height, int fps);
|
| }
|
| }
|
|
|