summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorRobert Shih <robertshih@google.com>2013-10-28 13:15:41 -0700
committerRobert Shih <robertshih@google.com>2014-01-29 18:32:47 -0800
commit1797dc93fb203762eecbc9c026b77263e4e4a4f5 (patch)
tree4ee4ae2a14c96f7fa0215481c922acf3f7170445 /media
parent729b12c7a91f9caa65af77197cf6a8814a5a2051 (diff)
downloadframeworks_base-1797dc93fb203762eecbc9c026b77263e4e4a4f5.zip
frameworks_base-1797dc93fb203762eecbc9c026b77263e4e4a4f5.tar.gz
frameworks_base-1797dc93fb203762eecbc9c026b77263e4e4a4f5.tar.bz2
MediaMuxer: added WebM filetype; open output file RW.
Files with RW access can be memory mapped. Change-Id: Ic5df057e6661b062e834845a19b606c8d01a0608
Diffstat (limited to 'media')
-rw-r--r--media/java/android/media/MediaMuxer.java21
1 files changed, 11 insertions, 10 deletions
diff --git a/media/java/android/media/MediaMuxer.java b/media/java/android/media/MediaMuxer.java
index e5c97e7..f518ab2 100644
--- a/media/java/android/media/MediaMuxer.java
+++ b/media/java/android/media/MediaMuxer.java
@@ -17,13 +17,11 @@
package android.media;
import android.media.MediaCodec.BufferInfo;
-
import dalvik.system.CloseGuard;
-import java.io.File;
import java.io.FileDescriptor;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.util.Map;
@@ -79,6 +77,7 @@ final public class MediaMuxer {
private OutputFormat() {}
/** MPEG4 media file format*/
public static final int MUXER_OUTPUT_MPEG_4 = 0;
+ public static final int MUXER_OUTPUT_WEBM = 1;
};
// All the native functions are listed here.
@@ -120,20 +119,22 @@ final public class MediaMuxer {
if (path == null) {
throw new IllegalArgumentException("path must not be null");
}
- if (format != OutputFormat.MUXER_OUTPUT_MPEG_4) {
+ if (format != OutputFormat.MUXER_OUTPUT_MPEG_4 &&
+ format != OutputFormat.MUXER_OUTPUT_WEBM) {
throw new IllegalArgumentException("format is invalid");
}
- FileOutputStream fos = null;
+ // Use RandomAccessFile so we can open the file with RW access;
+ // RW access allows the native writer to memory map the output file.
+ RandomAccessFile file = null;
try {
- File file = new File(path);
- fos = new FileOutputStream(file);
- FileDescriptor fd = fos.getFD();
+ file = new RandomAccessFile(path, "rws");
+ FileDescriptor fd = file.getFD();
mNativeObject = nativeSetup(fd, format);
mState = MUXER_STATE_INITIALIZED;
mCloseGuard.open("release");
} finally {
- if (fos != null) {
- fos.close();
+ if (file != null) {
+ file.close();
}
}
}