Added focus support. Rotation functinonal.
This commit is contained in:
parent
ef01a009d5
commit
b23207e728
2 changed files with 30 additions and 5 deletions
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue