Package 

Interface DataSource


  • 
    public interface DataSource
    
                        

    Represents the source of input data.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      public class DataSource.Chunk

      Represents a chunk of data.Can be used to read input from readTrack.

    • Method Summary

      Modifier and Type Method Description
      abstract void initialize()
      abstract void deinitialize()
      abstract boolean isInitialized()
      abstract int getOrientation() Metadata information.
      abstract Array<double> getLocation() Metadata information.
      abstract long getDurationUs() Returns the video total duration in microseconds.
      abstract MediaFormat getTrackFormat(@NonNull() TrackType type) Called before starting to inspect the input format for this track.Can return null if this media does not include this track type.
      abstract void selectTrack(@NonNull() TrackType type) Called before starting, but after getTrackFormat,to select the given track.
      abstract long seekTo(long desiredPositionUs) Moves all selected tracks to the specified presentation time.
      abstract boolean canReadTrack(@NonNull() TrackType type) Returns true if we can read the given track at this point.
      abstract void readTrack(@NonNull() DataSource.Chunk chunk) Called to read contents for the current track type.
      abstract long getPositionUs() Returns the current read position, between 0 and duration.
      abstract boolean isDrained() When this source has been totally read, it can return true here tonotify an end of input stream.
      abstract void releaseTrack(@NonNull() TrackType type) Called to release resources for a given track.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getOrientation

         abstract int getOrientation()

        Metadata information. Returns the video orientation, or 0.

      • getLocation

        @Nullable() abstract Array<double> getLocation()

        Metadata information. Returns the video location, or null.

      • getDurationUs

         abstract long getDurationUs()

        Returns the video total duration in microseconds.

      • getTrackFormat

        @Nullable() abstract MediaFormat getTrackFormat(@NonNull() TrackType type)

        Called before starting to inspect the input format for this track.Can return null if this media does not include this track type.

        Parameters:
        type - track type
      • seekTo

         abstract long seekTo(long desiredPositionUs)

        Moves all selected tracks to the specified presentation time.The timestamp should be between 0 and getDurationUs.The actual timestamp might differ from the desired one because ofseeking constraints (e.g. seek to sync frames). It will typically be smallerbecause we use SEEK_TO_PREVIOUS_SYNC inthe default source.

        Parameters:
        desiredPositionUs - requested timestamp
      • canReadTrack

         abstract boolean canReadTrack(@NonNull() TrackType type)

        Returns true if we can read the given track at this point.If true if returned, source should expect a readTrack call.

        Parameters:
        type - track type
      • readTrack

         abstract void readTrack(@NonNull() DataSource.Chunk chunk)

        Called to read contents for the current track type.Contents should be put inside buffer, and theother chunk flags should be filled.

        Parameters:
        chunk - output chunk
      • getPositionUs

         abstract long getPositionUs()

        Returns the current read position, between 0 and duration.

      • isDrained

         abstract boolean isDrained()

        When this source has been totally read, it can return true here tonotify an end of input stream.

      • releaseTrack

         abstract void releaseTrack(@NonNull() TrackType type)

        Called to release resources for a given track.

        Parameters:
        type - track type