fix: race condition in VideoFrameDecoder causing SIGSEGV and IllegalStateException
Serialize access to the cached MediaCodec decoder with a Mutex to prevent
concurrent access from multiple IO threads. Add error recovery so a broken
decoder is released and recreated on the next call.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>