author | Alfredo Yang <ayang@mozilla.com> |
Wed, 24 May 2017 15:25:09 +0800 | |
changeset 361493 | 1de90f1305e0ac9074db07ed6d1fb432ec68d835 |
parent 361492 | 04c6a723dddcdb76456b8c58a90445d6ea490fe7 |
child 361494 | ae809917d5db3293869402f858ce1cf5e4a72968 |
push id | 90875 |
push user | cbook@mozilla.com |
push date | Wed, 31 May 2017 12:23:54 +0000 |
treeherder | mozilla-inbound@7061759a0b57 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | jya |
bugs | 1364872 |
milestone | 55.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/dom/media/MediaFormatReader.cpp +++ b/dom/media/MediaFormatReader.cpp @@ -1093,19 +1093,19 @@ MediaFormatReader::DemuxerProxy::NotifyD }); } MediaFormatReader::MediaFormatReader(AbstractMediaDecoder* aDecoder, MediaDataDemuxer* aDemuxer, VideoFrameContainer* aVideoFrameContainer) : MediaDecoderReader(aDecoder) , mAudio(this, MediaData::AUDIO_DATA, - Preferences::GetUint("media.audio-max-decode-error", 3)) + MediaPrefs::MaxAudioDecodeError()) , mVideo(this, MediaData::VIDEO_DATA, - Preferences::GetUint("media.video-max-decode-error", 2)) + MediaPrefs::MaxVideoDecodeError()) , mDemuxer(new DemuxerProxy(aDemuxer)) , mDemuxerInitDone(false) , mPendingNotifyDataArrived(false) , mLastReportedNumDecodedFrames(0) , mPreviousDecodedKeyframeTime_us(sNoPreviousDecodedKeyframe) , mInitDone(false) , mTrackDemuxersMayBlock(false) , mSeekScheduled(false)
--- a/dom/media/MediaPrefs.h +++ b/dom/media/MediaPrefs.h @@ -160,16 +160,25 @@ private: DECL_MEDIA_PREF("media.webspeech.test.fake_fsm_events", WebSpeechFakeFSMEvents, bool, false); DECL_MEDIA_PREF(TEST_PREFERENCE_FAKE_RECOGNITION_SERVICE, WebSpeechFakeRecognitionService, bool, false); DECL_MEDIA_PREF("media.webspeech.recognition.enable", WebSpeechRecognitionEnabled, bool, false); DECL_MEDIA_PREF("media.webspeech.recognition.force_enable", WebSpeechRecognitionForceEnabled, bool, false); DECL_MEDIA_PREF("media.num-decode-threads", MediaThreadPoolDefaultCount, uint32_t, 4); DECL_MEDIA_PREF("media.decoder.limit", MediaDecoderLimit, int32_t, MediaDecoderLimitDefault()); +#if defined(RELEASE_OR_BETA) + DECL_MEDIA_PREF("media.audio-max-decode-error", MaxAudioDecodeError, uint32_t, 3); + DECL_MEDIA_PREF("media.video-max-decode-error", MaxVideoDecodeError, uint32_t, 2); +#else + // Take zero tolerance of decoding error in debug for any decoder regression. + DECL_MEDIA_PREF("media.audio-max-decode-error", MaxAudioDecodeError, uint32_t, 0); + DECL_MEDIA_PREF("media.video-max-decode-error", MaxVideoDecodeError, uint32_t, 0); +#endif + // Ogg DECL_MEDIA_PREF("media.ogg.enabled", OggEnabled, bool, true); // Flac DECL_MEDIA_PREF("media.ogg.flac.enabled", FlacInOgg, bool, false); DECL_MEDIA_PREF("media.flac.enabled", FlacEnabled, bool, true); #if !defined(RELEASE_OR_BETA) DECL_MEDIA_PREF("media.rust.test_mode", RustTestMode, bool, false);
--- a/dom/media/mediasource/test/mediasource.js +++ b/dom/media/mediasource/test/mediasource.js @@ -1,12 +1,14 @@ // Helpers for Media Source Extensions tests var gMSETestPrefs = [ - [ "media.mediasource.enabled", true ] + [ "media.mediasource.enabled", true ], + ['media.audio-max-decode-error', 0], + ['media.video-max-decode-error', 0], ]; // Called before runWithMSE() to set the prefs before running MSE tests. function addMSEPrefs(...prefs) { gMSETestPrefs = gMSETestPrefs.concat(prefs); } function runWithMSE(testFunction) {
--- a/dom/media/test/manifest.js +++ b/dom/media/test/manifest.js @@ -1588,16 +1588,18 @@ function Log(token, msg) { // Number of tests to run in parallel. var PARALLEL_TESTS = 2; // Prefs to set before running tests. Use this to improve coverage of // conditions that might not otherwise be encountered on the test data. var gTestPrefs = [ ['media.recorder.max_memory', 1024], + ['media.audio-max-decode-error', 0], + ['media.video-max-decode-error', 0], ]; // When true, we'll loop forever on whatever test we run. Use this to debug // intermittent test failures. const DEBUG_TEST_LOOP_FOREVER = false; // Manages a run of media tests. Runs them in chunks in order to limit // the number of media elements/threads running in parallel. This limits peak