Merge branch 'video' of git.linphone.org:linphone-android-private into video

This commit is contained in:
Simon Morlat 2010-11-29 15:07:15 +01:00
commit 03b80b879e
4 changed files with 15 additions and 23 deletions

View file

@ -52,7 +52,8 @@ public abstract class AndroidCameraRecord {
public void startPreview() { // FIXME throws exception?
if (previewStarted) {
Log.w(tag, "Already started");
return;
throw new RuntimeException("Video recorder already started");
// return
}
if (params.surfaceView.getVisibility() != SurfaceView.VISIBLE) {
@ -91,7 +92,7 @@ public abstract class AndroidCameraRecord {
}
}
onSettingParameters(parameters);
onSettingCameraParameters(parameters);
camera.setParameters(parameters);
@ -114,33 +115,28 @@ public abstract class AndroidCameraRecord {
previewStarted = true;
// Register callback to get capture buffer
if (storedPreviewCallback != null) {
lowLevelSetPreviewCallback(camera, storedPreviewCallback);
}
lowLevelSetPreviewCallback(camera, storedPreviewCallback);
onCameraStarted(camera);
onPreviewStarted(camera);
}
protected void onSettingParameters(Parameters parameters) {
}
protected void onSettingCameraParameters(Parameters parameters) {}
/**
* Hook.
* @param camera
*/
public void onCameraStarted(Camera camera) {}
public void onPreviewStarted(Camera camera) {}
public void storePreviewCallBack(PreviewCallback cb) {
this.storedPreviewCallback = cb;
if (camera == null) {
Log.w(tag, "Capture camera not ready, storing callback");
this.storedPreviewCallback = cb;
return;
}

View file

@ -46,18 +46,14 @@ public class AndroidCameraRecordBufferedImpl extends AndroidCameraRecordImpl {
}
@Override
public void onCameraStarted(Camera camera) {
super.onCameraStarted(camera);
public void onPreviewStarted(Camera camera) {
super.onPreviewStarted(camera);
Size s = camera.getParameters().getPreviewSize();
int wishedBufferSize = s.height * s.width * 3 / 2;
camera.addCallbackBuffer(new byte[wishedBufferSize]);
camera.addCallbackBuffer(new byte[wishedBufferSize]);
/*
for (int i=1; i < 30; i++) {
camera.addCallbackBuffer(new byte[wishedBufferSize]);
}*/
}
@Override
@ -67,8 +63,8 @@ public class AndroidCameraRecordBufferedImpl extends AndroidCameraRecordImpl {
}
@Override
protected void onSettingParameters(Parameters parameters) {
super.onSettingParameters(parameters);
protected void onSettingCameraParameters(Parameters parameters) {
super.onSettingCameraParameters(parameters);
// Only on v8 hardware
camera.setDisplayOrientation(90 * orientationCode);
}

View file

@ -34,11 +34,11 @@ public class AndroidCameraRecordImpl extends AndroidCameraRecord implements Prev
private long filterCtxPtr;
private double timeElapsedBetweenFrames = 0;
private long lastFrameTime = 0;
private final long expectedTimeBetweenFrames;
private final double expectedTimeBetweenFrames;
public AndroidCameraRecordImpl(RecorderParams parameters) {
super(parameters);
expectedTimeBetweenFrames = 1l / Math.round(parameters.fps);
expectedTimeBetweenFrames = 1d / Math.round(parameters.fps);
filterCtxPtr = parameters.filterDataNativePtr;
storePreviewCallBack(this);

View file

@ -138,7 +138,7 @@ public class AndroidCameraRecordManager {
parameters.rotation = rotation;
parameters.surfaceView = surfaceView;
if (version > 8) {
if (version >= 8) {
recorder = new AndroidCameraRecordBufferedImpl(parameters);
} else {
recorder = new AndroidCameraRecordImpl(parameters);