diff options
author | Robert Shih <robertshih@google.com> | 2013-10-28 13:15:41 -0700 |
---|---|---|
committer | Robert Shih <robertshih@google.com> | 2014-01-29 18:32:47 -0800 |
commit | 1797dc93fb203762eecbc9c026b77263e4e4a4f5 (patch) | |
tree | 4ee4ae2a14c96f7fa0215481c922acf3f7170445 /media | |
parent | 729b12c7a91f9caa65af77197cf6a8814a5a2051 (diff) | |
download | frameworks_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.java | 21 |
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(); } } } |