The following code generates java.lang.IllegalStateException once in a while:
int iInputBufIndex = _mcDecoder.dequeueInputBuffer(TIMEOUT_USEC);
where _mcDecoder is an instance of MediaCodec. The decoded stream is H.264 video. The code works well most of the time. Is there a way to check the state of MediaCodec proactively to avoid this exception?
The stack trace:
java.lang.IllegalStateException
at android.media.MediaCodec.dequeueInputBuffer(Native Method)
at net.mydomain.android.MYNAMESPACE.MYCLASS.MyMethod0(Unknown Source)
at net.mydomain.android.MYNAMESPACE.MYCLASS.ProcessH264(Unknown Source)
at net.mydomain.android.MYNAMESPACE.MYCLASS.MyMethod1(Unknown Source)
at net.mydomain.android.MYNAMESPACE.MYCLASS.MyMethod2(Unknown Source)
at net.mydomain.android.MYNAMESPACE.MYCLASS.MyMethod3(Unknown Source)
at net.mydomain.android.MYNAMESPACE.MYCLASS.access$5(Unknown Source)
at net.mydomain.android.MYNAMESPACE.MYCLASS$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:841)