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.

  • Field Details

  • Method Details

    • 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

      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, 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(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, 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, 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