diff --git a/res/layout-land/video.xml b/res/layout-land/video.xml
deleted file mode 100644
index 207405d19..000000000
--- a/res/layout-land/video.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/res/layout-land/video_no_opengl.xml b/res/layout-land/video_no_opengl.xml
deleted file mode 100644
index 7e71989de..000000000
--- a/res/layout-land/video_no_opengl.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/res/layout-sw533dp-land/video.xml b/res/layout-sw533dp-land/video.xml
deleted file mode 100644
index 06ced7910..000000000
--- a/res/layout-sw533dp-land/video.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/res/layout-sw533dp-land/video_no_opengl.xml b/res/layout-sw533dp-land/video_no_opengl.xml
deleted file mode 100644
index 4a20a7911..000000000
--- a/res/layout-sw533dp-land/video_no_opengl.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/res/layout-sw720dp-land/video.xml b/res/layout-sw720dp-land/video.xml
deleted file mode 100644
index 48c9ca2b1..000000000
--- a/res/layout-sw720dp-land/video.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/res/layout-sw720dp-land/video_no_opengl.xml b/res/layout-sw720dp-land/video_no_opengl.xml
deleted file mode 100644
index 42131ad95..000000000
--- a/res/layout-sw720dp-land/video_no_opengl.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/res/layout/video.xml b/res/layout/video.xml
index 4bb4e3218..86b7465e8 100644
--- a/res/layout/video.xml
+++ b/res/layout/video.xml
@@ -12,8 +12,8 @@
diff --git a/res/layout/video_no_opengl.xml b/res/layout/video_no_opengl.xml
index ea88c256d..d53c33a85 100644
--- a/res/layout/video_no_opengl.xml
+++ b/res/layout/video_no_opengl.xml
@@ -12,8 +12,8 @@
diff --git a/src/android/org/linphone/CallVideoFragment.java b/src/android/org/linphone/CallVideoFragment.java
index ebc0d20c8..39b03632a 100644
--- a/src/android/org/linphone/CallVideoFragment.java
+++ b/src/android/org/linphone/CallVideoFragment.java
@@ -23,12 +23,16 @@ import org.linphone.compatibility.Compatibility;
import org.linphone.compatibility.CompatibilityScaleGestureDetector;
import org.linphone.compatibility.CompatibilityScaleGestureListener;
import org.linphone.core.LinphoneCall;
+import org.linphone.core.LinphoneCore;
+import org.linphone.core.VideoSize;
import org.linphone.mediastream.Log;
import org.linphone.mediastream.video.AndroidVideoWindowImpl;
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration;
import android.app.Fragment;
+import android.content.Context;
import android.os.Bundle;
+import android.util.DisplayMetrics;
import android.view.GestureDetector;
import android.view.GestureDetector.OnDoubleTapListener;
import android.view.GestureDetector.OnGestureListener;
@@ -82,6 +86,7 @@ public class CallVideoFragment extends Fragment implements OnGestureListener, On
public void onVideoPreviewSurfaceReady(AndroidVideoWindowImpl vw, SurfaceView surface) {
mCaptureView = surface;
LinphoneManager.getLc().setPreviewWindow(mCaptureView);
+ resizePreview();
}
public void onVideoPreviewSurfaceDestroyed(AndroidVideoWindowImpl vw) {
@@ -139,6 +144,33 @@ public class CallVideoFragment extends Fragment implements OnGestureListener, On
}
}
+ private void resizePreview() {
+ LinphoneCore lc = LinphoneManager.getLc();
+ if (lc.getCallsNb() > 0) {
+ LinphoneCall call = lc.getCurrentCall();
+ if (call == null) {
+ call = lc.getCalls()[0];
+ }
+ if (call == null) return;
+
+ DisplayMetrics metrics = new DisplayMetrics();
+ getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
+ int screenHeight = metrics.heightPixels;
+ int maxHeight = screenHeight / 4; // Let's take at most 1/4 of the screen for the camera preview
+
+ VideoSize videoSize = call.getCurrentParams().getSentVideoSize(); // It already takes care of rotation
+ int width = videoSize.width;
+ int height = videoSize.height;
+
+ Log.d("Video height is " + height + ", width is " + width);
+ width = width * maxHeight / height;
+ height = maxHeight;
+
+ mCaptureView.getHolder().setFixedSize(width, height);
+ Log.d("Video preview size set to " + width + "x" + height);
+ }
+ }
+
private void fixZOrder(SurfaceView video, SurfaceView preview) {
video.setZOrderOnTop(false);
preview.setZOrderOnTop(true);
@@ -177,6 +209,8 @@ public class CallVideoFragment extends Fragment implements OnGestureListener, On
mGestureDetector = new GestureDetector(inCallActivity, this);
mScaleDetector = Compatibility.getScaleGestureDetector(inCallActivity, this);
+
+ resizePreview();
}
@Override