Class ShadowMediaMuxer

    • Constructor Detail

      • ShadowMediaMuxer

        public ShadowMediaMuxer()
    • Method Detail

      • __constructor__

        @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.

        Throws:
        IOException
      • nativeSetup

        @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.
        Throws:
        IOException
      • nativeAddTrack

        @Implementation
        protected static int nativeAddTrack​(long nativeObject,
                                            String[] keys,
                                            Object[] values)
        Returns an incremented track id for the associated muxer.
      • nativeWriteSampleData

        @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.
      • nativeStop

        @Implementation
        protected static void nativeStop​(long nativeObject)
        Closes the FileOutputStream for the associated muxer.