@Implements(value=android.media.MediaMuxer.class, minSdk=21) public class ShadowMediaMuxer extends Object
Implementation of MediaMuxer
which directly passes input bytes to the specified file, with no modification.
Constructor and Description |
---|
ShadowMediaMuxer() |
Modifier and Type | Method and Description |
---|---|
protected void |
__constructor__(String path,
int format)
Opens a FileOutputStream for the given path, and sets muxer state.
|
protected static int |
nativeAddTrack(long nativeObject,
String[] keys,
Object[] values)
Returns an incremented track id for the associated muxer.
|
protected static long |
nativeSetup(FileDescriptor fd,
int format)
Generates and returns an internal id to track the FileOutputStream corresponding to individual MediaMuxer instances.
|
protected static void |
nativeStop(long nativeObject)
Closes the FileOutputStream for the associated muxer.
|
protected static void |
nativeWriteSampleData(long nativeObject,
int trackIndex,
ByteBuffer byteBuf,
int offset,
int size,
long presentationTimeUs,
int flags)
Writes the given data to the FileOutputStream for the associated muxer.
|
@Implementation protected void __constructor__(String path, int format) throws IOException
Opens a FileOutputStream for the given path, and sets muxer state.
This needs to be shadowed, because the current MediaMuxer constructor opens a RandomAccessFile, passes only the FileDescriptor along, and then closes the file. Since there does not appear to be an easy way to go from FileDescriptor to a writeable stream in Java, this method overrides that behavior to instead open and maintain a FileOutputStream.
IOException
@Implementation protected static long nativeSetup(FileDescriptor fd, int format) throws IOException
Generates and returns an internal id to track the FileOutputStream corresponding to individual MediaMuxer instances.
IOException
@Implementation protected static int nativeAddTrack(long nativeObject, String[] keys, Object[] values)
Returns an incremented track id for the associated muxer.
@Implementation protected static void nativeWriteSampleData(long nativeObject, int trackIndex, ByteBuffer byteBuf, int offset, int size, long presentationTimeUs, int flags)
Writes the given data to the FileOutputStream for the associated muxer.
@Implementation protected static void nativeStop(long nativeObject)
Closes the FileOutputStream for the associated muxer.