Added focus support. Rotation functinonal.

This commit is contained in:
Guillaume Beraudo 2010-11-22 17:20:11 +01:00
parent ef01a009d5
commit b23207e728
2 changed files with 30 additions and 5 deletions

View file

@ -20,6 +20,7 @@ package org.linphone.core;
import android.hardware.Camera; import android.hardware.Camera;
import android.hardware.Camera.ErrorCallback; import android.hardware.Camera.ErrorCallback;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.PreviewCallback; import android.hardware.Camera.PreviewCallback;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
@ -46,7 +47,7 @@ public abstract class AndroidCameraRecord {
private static AndroidCameraRecord instance; private static AndroidCameraRecord instance;
private static Handler handler; private static Handler handler;
private static boolean previewStarted; private static boolean previewStarted;
private static int orientationCode; protected static int orientationCode;
public AndroidCameraRecord() { public AndroidCameraRecord() {
// TODO check if another instance is loaded and kill it. // TODO check if another instance is loaded and kill it.
@ -99,11 +100,21 @@ public abstract class AndroidCameraRecord {
parameters.setPreviewSize(width, height); parameters.setPreviewSize(width, height);
parameters.setPreviewFrameRate(fps); parameters.setPreviewFrameRate(fps);
// parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_EDOF); if (parameters.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
camera.setParameters(parameters); Log.w("Linphone", "Auto Focus supported by camera device");
camera.setDisplayOrientation(90 * orientationCode); parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
// parameters.setRotation() } else {
Log.w("Linphone", "Auto Focus not supported by camera device");
if (parameters.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_INFINITY)) {
Log.w("Linphone", "Infinity Focus supported by camera device");
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_INFINITY);
} else {
Log.w("Linphone", "Infinity Focus not supported by camera device");
}
}
onSettingParameters(parameters);
camera.setParameters(parameters);
@ -144,6 +155,10 @@ public abstract class AndroidCameraRecord {
protected void onSettingParameters(Parameters parameters) {
}
/** /**
* Hook. * Hook.
* @param camera * @param camera

View file

@ -19,6 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
package org.linphone.core; package org.linphone.core;
import android.hardware.Camera; import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.PreviewCallback; import android.hardware.Camera.PreviewCallback;
import android.hardware.Camera.Size; import android.hardware.Camera.Size;
import android.util.Log; import android.util.Log;
@ -61,4 +62,13 @@ public class AndroidCameraRecordBufferedImpl extends AndroidCameraRecordImpl {
super.onPreviewFrame(data, camera); super.onPreviewFrame(data, camera);
camera.addCallbackBuffer(data); camera.addCallbackBuffer(data);
} }
@Override
protected void onSettingParameters(Parameters parameters) {
super.onSettingParameters(parameters);
// Only on v8 hardware
camera.setDisplayOrientation(90 * orientationCode);
}
} }