If one removes the check for STATE_DRAINED from MediaCodecLoop, then this happens:
C 18.072s Main ********************************************************************************
C 18.072s Main Detailed Logs
C 18.072s Main ********************************************************************************
C 18.072s Main [UNKNOWN] MediaCodecAudioDecoderTest/AudioDecoderTest.ProduceAudioSamples/0:
C 18.073s Main [ RUN ] MediaCodecAudioDecoderTest/AudioDecoderTest.ProduceAudioSamples/0
C 18.073s Main ../../media/filters/audio_decoder_unittest.cc:339: Failure
C 18.073s Main Value of: buffer->timestamp().InMicroseconds()
C 18.073s Main Actual: 80500
C 18.073s Main Expected: sample_info.timestamp
C 18.073s Main Which is: 500
C 18.073s Main Google Test trace:
C 18.073s Main ../../media/filters/audio_decoder_unittest.cc:427: i = 1, j = 0
C 18.073s Main ../../media/filters/audio_decoder_unittest.cc:340: Failure
C 18.073s Main Value of: buffer->duration().InMicroseconds()
C 18.074s Main Actual: 10000
C 18.074s Main Expected: sample_info.duration
C 18.074s Main Which is: 3500
C 18.074s Main Google Test trace:
C 18.074s Main ../../media/filters/audio_decoder_unittest.cc:427: i = 1, j = 0
C 18.074s Main ../../media/filters/audio_decoder_unittest.cc:350: Failure
C 18.074s Main Value of: audio_hash.IsEquivalent(sample_info.hash, 0.02)
C 18.074s Main Actual: false
C 18.074s Main Expected: true
C 18.075s Main Audio hashes differ. Expected: -0.26,0.87,1.36,0.84,-0.30,-1.22, Actual: -0.54,0.02,-0.38,-0.15,-0.76,-0.45,
C 18.075s Main Google Test trace:
C 18.075s Main ../../media/filters/audio_decoder_unittest.cc:427: i = 1, j = 0
C 18.075s Main ../../media/filters/audio_decoder_unittest.cc:355: Failure
C 18.075s Main Value of: GetDecodedAudioMD5(i)
C 18.075s Main Actual: "86afe194049ec8efa802d779ec6aeda3"
C 18.075s Main Expected: exact_hash
C 18.075s Main Which is: "48ea9bb1bdbf85e04cfb2689aa372349"
C 18.075s Main Google Test trace:
C 18.076s Main ../../media/filters/audio_decoder_unittest.cc:427: i = 1, j = 0
C 18.076s Main ../../media/filters/audio_decoder_unittest.cc:339: Failure
C 18.076s Main Value of: buffer->timestamp().InMicroseconds()
C 18.076s Main Actual: 90500
C 18.076s Main Expected: sample_info.timestamp
C 18.076s Main Which is: 4000
C 18.076s Main Google Test trace:
C 18.076s Main ../../media/filters/audio_decoder_unittest.cc:427: i = 1, j = 1
C 18.076s Main ../../media/filters/audio_decoder_unittest.cc:350: Failure
C 18.076s Main Value of: audio_hash.IsEquivalent(sample_info.hash, 0.02)
C 18.077s Main Actual: false
C 18.077s Main Expected: true
C 18.077s Main Audio hashes differ. Expected: 0.09,0.23,0.21,0.03,-0.17,-0.24, Actual: -0.20,0.13,-0.06,-0.05,-0.43,-0.34,
C 18.077s Main Google Test trace:
C 18.077s Main ../../media/filters/audio_decoder_unittest.cc:427: i = 1, j = 1
C 18.077s Main ../../media/filters/audio_decoder_unittest.cc:355: Failure
C 18.077s Main Value of: GetDecodedAudioMD5(i)
C 18.077s Main Actual: "63f746c63ed19aaf6f55b818a74db3c8"
C 18.078s Main Expected: exact_hash
C 18.078s Main Which is: "150be2d114cdffcb2eb84ec3ff05ab1c"
C 18.078s Main Google Test trace:
C 18.078s Main ../../media/filters/audio_decoder_unittest.cc:427: i = 1, j = 1
C 18.078s Main ../../media/filters/audio_decoder_unittest.cc:339: Failure
C 18.078s Main Value of: buffer->timestamp().InMicroseconds()
C 18.078s Main Actual: 100500
C 18.078s Main Expected: sample_info.timestamp
C 18.078s Main Which is: 14000
C 18.079s Main Google Test trace:
C 18.079s Main ../../media/filters/audio_decoder_unittest.cc:427: i = 1, j = 2
C 18.079s Main ../../media/filters/audio_decoder_unittest.cc:350: Failure
C 18.079s Main Value of: audio_hash.IsEquivalent(sample_info.hash, 0.02)
C 18.079s Main Actual: false
C 18.079s Main Expected: true
C 18.079s Main Audio hashes differ. Expected: 0.10,0.24,0.23,0.04,-0.14,-0.23, Actual: 0.83,0.47,0.96,0.29,0.59,0.00,
C 18.079s Main Google Test trace:
C 18.080s Main ../../media/filters/audio_decoder_unittest.cc:427: i = 1, j = 2
C 18.080s Main ../../media/filters/audio_decoder_unittest.cc:355: Failure
C 18.080s Main Value of: GetDecodedAudioMD5(i)
C 18.080s Main Actual: "8c20f2cc6b1e048370bc8cf93a579909"
C 18.080s Main Expected: exact_hash
C 18.080s Main Which is: "a330b3b2e7e6d1f0dca474f5f070b2c7"
C 18.080s Main Google Test trace:
C 18.080s Main ../../media/filters/audio_decoder_unittest.cc:427: i = 1, j = 2
C 18.080s Main [ FAILED ] MediaCodecAudioDecoderTest/AudioDecoderTest.ProduceAudioSamples/0, where GetParam() = bear-opus.ogg (128 ms)
C 18.080s Main [----------] 1 test from MediaCodecAudioDecoderTest/AudioDecoderTest (128 ms total)
C 18.081s Main
C 18.081s Main [----------] Global test environment tear-down
C 18.081s Main [==========] 1 test from 1 test case ran. (129 ms total)
C 18.081s Main [ PASSED ] 0 tests.
C 18.081s Main [ FAILED ] 1 test, listed below:
C 18.081s Main
C 18.081s Main 1 FAILED TEST
on closer inspection, the flushed version of the codec returns AGAIN many times, until it returns a decoded buffer with pts 0.08 (should have been 0).
unsure if this is a bug that's specific to the codec or not.
Comment 1 by sheriffbot@chromium.org
, Jul 3 2017Status: Untriaged (was: Available)