summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/EffectsRecorder.java
diff options
context:
space:
mode:
authorPannag Sanketi <psanketi@google.com>2011-10-14 11:10:32 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-10-14 11:10:32 -0700
commite3fd19525c55e58025faa0508c16fd410a159a5f (patch)
treeee838f544edc8d4575a553ccc3402586f44333c9 /src/com/android/camera/EffectsRecorder.java
parent7e6b690c96b36b134d6825562b4ae66e055ba6a8 (diff)
parentdca2af0a95ccb682d57bcea43f03fb01b929edf3 (diff)
downloadLegacyCamera-e3fd19525c55e58025faa0508c16fd410a159a5f.zip
LegacyCamera-e3fd19525c55e58025faa0508c16fd410a159a5f.tar.gz
LegacyCamera-e3fd19525c55e58025faa0508c16fd410a159a5f.tar.bz2
Merge "Fixing crash in video capture intent with effects on" into ics-mr0
Diffstat (limited to 'src/com/android/camera/EffectsRecorder.java')
-rw-r--r--src/com/android/camera/EffectsRecorder.java35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/com/android/camera/EffectsRecorder.java b/src/com/android/camera/EffectsRecorder.java
index a3f6b50..8f72a8b 100644
--- a/src/com/android/camera/EffectsRecorder.java
+++ b/src/com/android/camera/EffectsRecorder.java
@@ -46,6 +46,7 @@ import java.io.IOException;
import java.io.FileNotFoundException;
import java.io.File;
import java.lang.Runnable;
+import java.io.FileDescriptor;
/**
@@ -84,6 +85,7 @@ public class EffectsRecorder {
private MediaRecorder.OnErrorListener mErrorListener;
private String mOutputFile;
+ private FileDescriptor mFd;
private int mOrientationHint = 0;
private int mCameraFacing = Camera.CameraInfo.CAMERA_FACING_BACK;
@@ -193,6 +195,21 @@ public class EffectsRecorder {
}
mOutputFile = outputFile;
+ mFd = null;
+ }
+
+ public void setOutputFile(FileDescriptor fd) {
+ switch (mState) {
+ case STATE_RECORD:
+ throw new RuntimeException("setOutputFile cannot be called while recording!");
+ case STATE_RELEASED:
+ throw new RuntimeException("setOutputFile called on an already released recorder!");
+ default:
+ break;
+ }
+
+ mOutputFile = null;
+ mFd = fd;
}
public void setPreviewDisplay(SurfaceHolder previewSurfaceHolder,
@@ -537,15 +554,21 @@ public class EffectsRecorder {
break;
}
- if (mOutputFile == null) {
- throw new RuntimeException("No output file name provided!");
+ if ((mOutputFile == null) && (mFd == null)) {
+ throw new RuntimeException("No output file name or descriptor provided!");
}
if (mState == STATE_CONFIGURE) {
startPreview();
}
+
Filter recorder = mRunner.getGraph().getFilter("recorder");
- recorder.setInputValue("outputFile", mOutputFile);
+ if (mFd != null) {
+ recorder.setInputValue("outputFileDescriptor", mFd);
+ } else {
+ recorder.setInputValue("outputFile", mOutputFile);
+ }
+
recorder.setInputValue("orientationHint", mOrientationHint);
if (mInfoListener != null) {
recorder.setInputValue("infoListener", mInfoListener);
@@ -722,7 +745,11 @@ public class EffectsRecorder {
if (mEffectsListener != null) {
mHandler.post(new Runnable() {
public void run() {
- mEffectsListener.onEffectsError(exception, mOutputFile);
+ if (mFd != null) {
+ mEffectsListener.onEffectsError(exception, null);
+ } else {
+ mEffectsListener.onEffectsError(exception, mOutputFile);
+ }
}
});
}