I'm currently using mediacodec for liveview hardware decoding. Code looks like this
mMediaCodecDecoder = MediaCodec.createDecoderByType(MIME_TYPE);
format = MediaFormat.createVideoFormat(MIME_TYPE, mLiveViewBuff.frameData.picWidth, mLiveViewBuff.frameData.picHeight);
if (mSurfaceHolder.getSurface().isValid()) {
mMediaCodecDecoder.configure(format, mSurfaceHolder.getSurface(), null, 0);
}
mMediaCodecDecoder.start();
decoderInputBuffers = mMediaCodecDecoder.getInputBuffers();
decoderOutputBuffers = mMediaCodecDecoder.getOutputBuffers();
decoderConfigured = true;
And at some stage, I decide to release the Mediacodec like this
mMediaCodecDecoder.stop();
mMediaCodecDecoder.release();
mMediaCodecDecoder = null;
Then after that I would like to clear the surface view by doing this before I want to create another mediacodec for another liveview hardware decoding.
Canvas canvas = mSurfaceHolder.lockCanvas();
canvas.drawColor(getResources().getColor(R.color.WHITE));
mSurfaceHolder.unlockCanvasAndPost(canvas);
but I got some connect(P): already connected
error
Long story short
So basically, I have 2 h264 livefeed to use mediacodec to do hardware decode and play on surfaceview. between playing them, I woule like to clear the surfaceview by drawing pure black onto the canvas.
Please give me some advice Thanks