public abstract class MediaDecoder extends java.lang.Object implements IMediaCodec
| Modifier and Type | Field and Description |
|---|---|
protected int |
mState |
protected static int |
STATE_INITIALIZED |
protected static int |
STATE_PAUSED |
protected static int |
STATE_PLAYING |
protected static int |
STATE_PREPARED |
protected static int |
STATE_UNINITIALIZED |
protected static int |
STATE_WAIT |
protected java.lang.String |
TAG |
| Constructor and Description |
|---|
MediaDecoder() |
| Modifier and Type | Method and Description |
|---|---|
protected long |
adjustPresentationTime(long startTime,
long presentationTimeUs)
adjust presentation time
|
protected boolean |
callErrorHandler(java.lang.Exception e) |
protected void |
callOnPrepared() |
protected void |
callOnRelease() |
protected void |
callOnStart() |
protected void |
callOnStop() |
protected android.media.MediaCodec |
createCodec(android.media.MediaExtractor media_extractor,
int track_index,
android.media.MediaFormat format) |
int |
getBitRate() |
IMediaCodecCallback |
getCallback() |
long |
getDuration() |
protected abstract android.view.Surface |
getOutputSurface() |
protected long |
handleInput(long presentationTimeUs) |
protected abstract boolean |
handleOutput(java.nio.ByteBuffer buffer,
int offset,
int size,
long presentationTimeUs)
process decoded data
|
protected abstract int |
handlePrepare(android.media.MediaExtractor media_extractor) |
protected void |
internal_HandleInput() |
protected void |
internal_handleOutput() |
boolean |
isPrepared() |
boolean |
isRunning() |
void |
pause() |
void |
prepare() |
void |
release() |
void |
restart() |
void |
seek(long newTime) |
protected static int |
selectTrack(android.media.MediaExtractor extractor,
java.lang.String mimeType)
search first track index matched specific MIME
|
void |
setCallback(IMediaCodecCallback callback) |
void |
setDataSource(android.content.Context context,
android.net.Uri uri) |
void |
setDataSource(android.content.Context context,
android.net.Uri uri,
java.util.Map<java.lang.String,java.lang.String> headers) |
void |
setDataSource(java.io.FileDescriptor fd) |
void |
setDataSource(java.io.FileDescriptor fd,
long offset,
long length) |
void |
setDataSource(java.lang.String path) |
void |
setDataSource(java.lang.String path,
java.util.Map<java.lang.String,java.lang.String> headers) |
void |
start() |
void |
stop() |
protected void |
updateMovieInfo(android.media.MediaMetadataRetriever metadata) |
protected final java.lang.String TAG
protected static final int STATE_UNINITIALIZED
protected static final int STATE_INITIALIZED
protected static final int STATE_PREPARED
protected static final int STATE_PLAYING
protected static final int STATE_PAUSED
protected static final int STATE_WAIT
protected int mState
public void setCallback(IMediaCodecCallback callback)
public IMediaCodecCallback getCallback()
public long getDuration()
public int getBitRate()
public void setDataSource(java.lang.String path)
throws java.io.IOException
java.io.IOExceptionpublic void setDataSource(java.lang.String path,
java.util.Map<java.lang.String,java.lang.String> headers)
throws java.io.IOException
java.io.IOExceptionpublic void setDataSource(java.io.FileDescriptor fd)
throws java.io.IOException
java.io.IOExceptionpublic void setDataSource(java.io.FileDescriptor fd,
long offset,
long length)
throws java.io.IOException
java.io.IOExceptionpublic void setDataSource(android.content.Context context,
android.net.Uri uri,
java.util.Map<java.lang.String,java.lang.String> headers)
throws java.io.IOException
java.io.IOExceptionpublic void setDataSource(android.content.Context context,
android.net.Uri uri)
throws java.io.IOException
java.io.IOExceptionpublic void prepare()
throws java.io.IOException
prepare in interface IMediaCodecjava.io.IOExceptionpublic boolean isPrepared()
isPrepared in interface IMediaCodecpublic boolean isRunning()
isRunning in interface IMediaCodecprotected abstract int handlePrepare(android.media.MediaExtractor media_extractor)
protected abstract android.view.Surface getOutputSurface()
protected android.media.MediaCodec createCodec(android.media.MediaExtractor media_extractor,
int track_index,
android.media.MediaFormat format)
throws java.io.IOException
java.io.IOExceptionpublic void restart()
public void start()
start in interface IMediaCodecpublic void stop()
stop in interface IMediaCodecpublic void pause()
public void release()
release in interface IMediaCodecpublic void seek(long newTime)
protected void internal_HandleInput()
protected long handleInput(long presentationTimeUs)
protected void internal_handleOutput()
protected abstract boolean handleOutput(java.nio.ByteBuffer buffer,
int offset,
int size,
long presentationTimeUs)
buffer - offset - size - presentationTimeUs - protected boolean callErrorHandler(java.lang.Exception e)
protected void callOnPrepared()
protected void callOnStart()
protected void callOnStop()
protected void callOnRelease()
protected void updateMovieInfo(android.media.MediaMetadataRetriever metadata)
protected long adjustPresentationTime(long startTime,
long presentationTimeUs)
startTime - presentationTimeUs - protected static final int selectTrack(android.media.MediaExtractor extractor,
java.lang.String mimeType)
extractor - mimeType - "video/" or "audio/"