Interface IMediaReader

  • All Known Subinterfaces:
    IMediaReaderCupertino, IMediaReaderMPEGDash

    public interface IMediaReader

    IMediaReader: generic media reader interface. All media types implement this interface to interact with PlaylistPlayer.

    • Method Detail

      • init

        void init​(IApplicationInstance appInstance,
                  IMediaStream stream,
                  String mediaReadType,
                  String basePath,
                  String mediaName)
        Initialize mediaReader
        Parameters:
        stream - parent stream
        mediaReadType - media reader type id. Example: flv
        basePath - Base path for application instance
        mediaName - name of the media item
      • setMediaReaderItem

        void setMediaReaderItem​(com.wowza.wms.stream.MediaReaderItem mediaReaderItem)
        Set the mediaReader item definition
        Parameters:
        mediaReaderItem -
      • open

        void open​(String basePath,
                  String name)
        Open the file for reading
        Parameters:
        basePath - base path to file
        name - file name without extension
      • getMetadata

        java.util.List getMetadata()
        Get a collection of metadata packets in ByteBuffers for this file. You can use 'new AMFDataList(data)' to convert to AMF objects.
        Returns:
        collection of metadata packets in ByteBuffers
      • rewind

        void rewind()
        rewind file to start
      • close

        void close()
        close file
      • isOpen

        boolean isOpen()
        is file open
        Returns:
        is file open
      • seek

        com.wowza.wms.stream.PlaylistSeekResult seek​(long timecode,
                                                     int seektype)
        seek to timecode in file
        Parameters:
        timecode - timecode (milliseconds) to seek to
        seektype - seek type IMediaReader.SEEK_*
        Returns:
        detailed results object of seek or null if failure
      • writePackets

        int writePackets​(IMediaStream stream,
                         java.io.OutputStream out,
                         AMFObj wmsObjAudio,
                         AMFObj wmsObjVideo,
                         AMFObj wmsObjData,
                         com.wowza.wms.stream.file.PlaylistCursor flvCursor,
                         com.wowza.wms.stream.file.PlaylistWriteControl control,
                         com.wowza.wms.stream.file.PlaylistReaderWriteResults results,
                         long[] sizes,
                         com.wowza.wms.stream.FastPlaySettings fastPlaySettings,
                         boolean isForceTCZero)
        From current location in file write packets to output
        Parameters:
        stream - parent mediaStream
        out - output stream
        wmsObjAudio - audio channel amfObj
        wmsObjVideo - video channel amfObj
        wmsObjData - data channel amfObj
        flvCursor - current cursor that keeps track of timecodes and flags indicating position in media file
        control - write control flags. Mainly used to control when it should stop writing
        results - write results returned from this routine
        sizes - array of values that keep track of number of bytes written and number of packets for each data type (audio, video, data). See IMediaStreamPlay.PLAYSIZES_*
        fastPlaySettings - current fastPlay settings for the stream
        isForceTCZero - are we forcing all timecodes to zero
        Returns:
        number of bytes written
      • writePackets

        int writePackets​(java.util.List<AMFPacket> packetList,
                         com.wowza.wms.stream.file.PlaylistCursor flvCursor,
                         com.wowza.wms.stream.file.PlaylistWriteControl control,
                         com.wowza.wms.stream.file.PlaylistReaderWriteResults results,
                         long[] sizes,
                         com.wowza.wms.stream.FastPlaySettings fastPlaySettings)
        Write packets to the packetList as AMFPackets
        Parameters:
        packetList - list to which to write packets
        flvCursor - current cursor that keeps track of timecodes and flags indicating position in media file
        control - write control flags. Mainly used to control when it should stop writing
        results - write results returned from this routine
        sizes - array of values that keep track of number of bytes written and number of packets for each data type (audio, video, data). See IMediaStreamPlay.PLAYSIZES_*
        fastPlaySettings - current fastPlay settings for the stream
        Returns:
        number of bytes written
      • writeGeneratedKeyFrame

        int writeGeneratedKeyFrame​(IMediaStream stream,
                                   java.io.OutputStream out,
                                   AMFObj wmsObjAudio,
                                   AMFObj wmsObjVideo,
                                   AMFObj wmsObjData,
                                   com.wowza.wms.stream.file.PlaylistCursor flvCursor,
                                   com.wowza.wms.stream.file.PlaylistWriteControl control,
                                   com.wowza.wms.stream.file.PlaylistReaderWriteResults results,
                                   long[] sizes,
                                   com.wowza.wms.stream.FastPlaySettings fastPlaySettings,
                                   boolean isForceTCZero)
        From current location in file generate a key frame (enhanced seek) and write it to out
        Parameters:
        stream - parent mediaStream
        out - output stream
        wmsObjAudio - audio channel amfObj
        wmsObjVideo - video channel amfObj
        wmsObjData - data channel amfObj
        flvCursor - current cursor that keeps track of timecodes and flags indicating position in media file
        control - write control flags. Mainly used to control when it should stop writing
        results - write results returned from this routine
        sizes - array of values that keep track of number of bytes written and number of packets for each data type (audio, video, data). See IMediaStreamPlay.PLAYSIZES_*
        fastPlaySettings - current fastPlay settings for the stream
        isForceTCZero - are we forcing all timecodes to zero
        Returns:
        number of bytes written
      • sendZeroLengthPacket

        int sendZeroLengthPacket​(int type,
                                 int timecode,
                                 boolean isAbsolute,
                                 IMediaStream stream,
                                 java.io.OutputStream out,
                                 AMFObj wmsObj,
                                 com.wowza.wms.stream.file.PlaylistCursor flvCursor,
                                 com.wowza.wms.stream.file.PlaylistWriteControl control,
                                 com.wowza.wms.stream.file.PlaylistReaderWriteResults results,
                                 long[] sizes,
                                 boolean isForceTCZero)
      • startPlayback

        void startPlayback()
        Called each time the player being playback (before the buffer it filled)
      • getDuration

        long getDuration()
        Get duration or time (milliseconds) of the media file
        Returns:
        duration or time (milliseconds) of the media file
      • getLength

        long getLength()
        Get the stream length in bytes
        Returns:
        stream length in bytes
      • getPath

        String getPath()
        Get abstract path to the media item
        Returns:
        abstract path to the media item
      • getMediaExtension

        String getMediaExtension()
        Get media extension
        Returns:
        media extension
      • getStreamPosition

        IMediaReaderStreamPosition getStreamPosition()
        Get a reference to the current stream position
        Returns:
        stream position
      • setStreamPosition

        void setStreamPosition​(IMediaReaderStreamPosition pos)
        Set the file position within the media file
        Parameters:
        pos - stream position
      • setProperties

        void setProperties​(WMSProperties properties)
        Set the properties for this media reader
        Parameters:
        properties - properties