Merge "MediaMuxer: added WebM filetype; open output file RW."
This commit is contained in:
@@ -13422,6 +13422,7 @@ package android.media {
|
||||
|
||||
public static final class MediaMuxer.OutputFormat {
|
||||
field public static final int MUXER_OUTPUT_MPEG_4 = 0; // 0x0
|
||||
field public static final int MUXER_OUTPUT_WEBM = 1; // 0x1
|
||||
}
|
||||
|
||||
public class MediaPlayer {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user