Bug 924678: Explicitly clear OmxDecoder::mDecoder, r=doublec

The MediaDecoderStateMachine frees the Decoder during its own
shutdown. If the the MediaDecoderStateMachine for an MP3 file
gets cleaned up before the MP3 frame parser is finished, the
OmxDecoder operates with an invalid Decoder.

With this patch, the MediaDecoderStateMachine informs the
OmxDecoder to clear the decoder field. The MP3 parser logic
detects this case and returns.

--HG--
extra : rebase_source : 0a00de3cf7b95ede77408e5d43cccbcd706750cd
Bug 924678: Stop MP3 parser if decoder got cleared, r=doublec

If the decoder has been cleaned up, there is no point in further
parsing the MP3 file. This patch makes the I/O logic stop in that
case.

The patch also fixes a bug where the beginning of an MP3 chunk was
parsed multiple times if the chunk is larger than 4 GiB.

--HG--
extra : rebase_source : d247ed3995991d362c51a0666274e9de3b90b7d2