-
- All Implemented Interfaces:
-
com.otaliastudios.transcoder.source.DataSource
public abstract class DefaultDataSource implements DataSource
A DataSource implementation that uses Android's Media APIs.
-
-
Method Summary
Modifier and Type Method Description voidinitialize()voiddeinitialize()booleanisInitialized()voidselectTrack(@NonNull() TrackType type)Called before starting, but after getTrackFormat,to select the given track. voidreleaseTrack(@NonNull() TrackType type)Called to release resources for a given track. longseekTo(long desiredPositionUs)Moves all selected tracks to the specified presentation time. booleanisDrained()When this source has been totally read, it can return true here tonotify an end of input stream. booleancanReadTrack(@NonNull() TrackType type)Returns true if we can read the given track at this point. voidreadTrack(@NonNull() DataSource.Chunk chunk)Called to read contents for the current track type. longgetPositionUs()Returns the current read position, between 0 and duration. Array<double>getLocation()Metadata information. intgetOrientation()Metadata information. longgetDurationUs()Returns the video total duration in microseconds. MediaFormatgetTrackFormat(@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. -
-
Method Detail
-
initialize
void initialize()
-
deinitialize
void deinitialize()
-
isInitialized
boolean isInitialized()
-
selectTrack
void selectTrack(@NonNull() TrackType type)
Called before starting, but after getTrackFormat,to select the given track.
- Parameters:
type- track type
-
releaseTrack
void releaseTrack(@NonNull() TrackType type)
Called to release resources for a given track.
- Parameters:
type- track type
-
seekTo
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
-
isDrained
boolean isDrained()
When this source has been totally read, it can return true here tonotify an end of input stream.
-
canReadTrack
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
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
long getPositionUs()
Returns the current read position, between 0 and duration.
-
getLocation
@Nullable() Array<double> getLocation()
Metadata information. Returns the video location, or null.
-
getOrientation
int getOrientation()
Metadata information. Returns the video orientation, or 0.
-
getDurationUs
long getDurationUs()
Returns the video total duration in microseconds.
-
getTrackFormat
@Nullable() 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
-
-
-
-