addbackbuffer managed directly in java code

This commit is contained in:
guillaume 2010-11-18 15:01:15 +01:00
parent 465a5d4e0c
commit d2d1e257b6
3 changed files with 5 additions and 23 deletions

View file

@ -192,14 +192,6 @@ public abstract class AndroidCameraRecord {
} }
/**
* Hook to add back a buffer for reuse in capture.
* Override in a version supporting addPreviewCallBackWithBuffer()
* @param buffer buffer to reuse
*/
public void addBackCaptureBuffer(byte[] buffer) {}
private void updateVisibility() { private void updateVisibility() {
if (!visibilityChangeable) { if (!visibilityChangeable) {

View file

@ -41,11 +41,6 @@ public class AndroidCameraRecordBufferedImpl extends AndroidCameraRecordImpl {
camera.setPreviewCallbackWithBuffer(cb); camera.setPreviewCallbackWithBuffer(cb);
} }
@Override
public void addBackCaptureBuffer(byte[] buffer) {
camera.addCallbackBuffer(buffer);
}
@Override @Override
public void onCameraStarted(Camera camera) { public void onCameraStarted(Camera camera) {
super.onCameraStarted(camera); super.onCameraStarted(camera);
@ -62,8 +57,8 @@ public class AndroidCameraRecordBufferedImpl extends AndroidCameraRecordImpl {
} }
@Override @Override
protected void badBufferLengthReceived(byte[] buffer, int expectedBufferLength) { public void onPreviewFrame(byte[] data, Camera camera) {
super.badBufferLengthReceived(buffer, expectedBufferLength); super.onPreviewFrame(data, camera);
addBackCaptureBuffer(buffer); camera.addCallbackBuffer(data);
} }
} }

View file

@ -60,7 +60,8 @@ public class AndroidCameraRecordImpl extends AndroidCameraRecord implements Prev
Size s = camera.getParameters().getPreviewSize(); Size s = camera.getParameters().getPreviewSize();
int expectedBuffLength = s.width * s.height * 3 /2; int expectedBuffLength = s.width * s.height * 3 /2;
if (expectedBuffLength != data.length) { if (expectedBuffLength != data.length) {
badBufferLengthReceived(data, expectedBuffLength); Log.e("Linphone", "onPreviewFrame called with bad buffer length " + data.length
+ " whereas expected is " + expectedBuffLength + " don't calling putImage");
return; return;
} }
@ -74,7 +75,6 @@ public class AndroidCameraRecordImpl extends AndroidCameraRecord implements Prev
double currentTimeElapsed = 0.8 * (curTime - lastFrameTime) / 1000 + 0.2 * timeElapsedBetweenFrames; double currentTimeElapsed = 0.8 * (curTime - lastFrameTime) / 1000 + 0.2 * timeElapsedBetweenFrames;
if (1 / currentTimeElapsed > fps) { if (1 / currentTimeElapsed > fps) {
// Log.d("Linphone", "Clipping frame " + Math.round(1 / currentTimeElapsed) + " > " + fps); // Log.d("Linphone", "Clipping frame " + Math.round(1 / currentTimeElapsed) + " > " + fps);
addBackCaptureBuffer(data);
return; return;
} }
lastFrameTime = curTime; lastFrameTime = curTime;
@ -85,10 +85,5 @@ public class AndroidCameraRecordImpl extends AndroidCameraRecord implements Prev
} }
// Hook
protected void badBufferLengthReceived(byte[] data, int expectedBuffLength) {
Log.e("Linphone", "onPreviewFrame called with bad buffer length " + data.length
+ " whereas expected is " + expectedBuffLength + " don't calling putImage");
}
} }