Assertion failure at AudioParamTimeline::valuesForFrameRangeImpl |
|||
Issue description- OSX, Version 57.0.2974.0 (ToT) To reproduce the issue: 1. Go to: https://musiclab.chromeexperiments.com/Piano-Roll 2. Play 10 seconds and stop. Repeat 2~3 times. Stack trace from debug build: [5214:36419:0105/145638.874473:FATAL:AudioParamTimeline.cpp(668)] Check failed: fillToEndFrame >= startFrame (904024 vs. 911616) 0 libbase.dylib 0x000000011ff1c05e base::debug::StackTrace::StackTrace() 30 1 libbase.dylib 0x000000011ff1c0c5 base::debug::StackTrace::StackTrace() 21 2 libbase.dylib 0x000000011ffb4300 logging::LogMessage::~LogMessage() 80 3 libbase.dylib 0x000000011ffb1e05 logging::LogMessage::~LogMessage() 21 4 libblink_modules.dylib 0x0000000143d3729d blink::AudioParamTimeline::valuesForFrameRangeImpl(unsigned long, unsigned long, float, float*, unsigned int, double, double) 3773 5 libblink_modules.dylib 0x0000000143d36337 blink::AudioParamTimeline::valuesForFrameRange(unsigned long, unsigned long, float, float*, unsigned int, double, double, float, float) 247 6 libblink_modules.dylib 0x0000000143d2dfdf blink::AudioParamHandler::calculateTimelineValues(float*, unsigned int) 255 7 libblink_modules.dylib 0x0000000143d2da44 blink::AudioParamHandler::calculateFinalValues(float*, unsigned int, bool) 404 8 libblink_modules.dylib 0x0000000143d2deb3 blink::AudioParamHandler::calculateSampleAccurateValues(float*, unsigned int) 387 9 libblink_modules.dylib 0x0000000143d750e1 blink::GainHandler::process(unsigned long) 721 10 libblink_modules.dylib 0x0000000143d05f40 blink::AudioHandler::processIfNecessary(unsigned long) 608 11 libblink_modules.dylib 0x0000000143d244b2 blink::AudioNodeOutput::pull(blink::AudioBus*, unsigned long) 722 12 libblink_modules.dylib 0x0000000143d2dcbe blink::AudioParamHandler::calculateFinalValues(float*, unsigned int, bool) 1038 13 libblink_modules.dylib 0x0000000143d2deb3 blink::AudioParamHandler::calculateSampleAccurateValues(float*, unsigned int) 387 14 libblink_modules.dylib 0x0000000143d750e1 blink::GainHandler::process(unsigned long) 721 15 libblink_modules.dylib 0x0000000143d05f40 blink::AudioHandler::processIfNecessary(unsigned long) 608 16 libblink_modules.dylib 0x0000000143d244b2 blink::AudioNodeOutput::pull(blink::AudioBus*, unsigned long) 722 17 libblink_modules.dylib 0x0000000143d1f0cc blink::AudioNodeInput::pull(blink::AudioBus*, unsigned long) 364 18 libblink_modules.dylib 0x0000000143d066bd blink::AudioHandler::pullInputs(unsigned long) 413 19 libblink_modules.dylib 0x0000000143d05e67 blink::AudioHandler::processIfNecessary(unsigned long) 391 20 libblink_modules.dylib 0x0000000143d244b2 blink::AudioNodeOutput::pull(blink::AudioBus*, unsigned long) 722 21 libblink_modules.dylib 0x0000000143d1eee5 blink::AudioNodeInput::sumAllConnections(blink::AudioBus*, unsigned long) 789 22 libblink_modules.dylib 0x0000000143d1f13c blink::AudioNodeInput::pull(blink::AudioBus*, unsigned long) 476 23 libblink_modules.dylib 0x0000000143d066bd blink::AudioHandler::pullInputs(unsigned long) 413 24 libblink_modules.dylib 0x0000000143d05e67 blink::AudioHandler::processIfNecessary(unsigned long) 391 25 libblink_modules.dylib 0x0000000143d244b2 blink::AudioNodeOutput::pull(blink::AudioBus*, unsigned long) 722 26 libblink_modules.dylib 0x0000000143d1eee5 blink::AudioNodeInput::sumAllConnections(blink::AudioBus*, unsigned long) 789 27 libblink_modules.dylib 0x0000000143d1f13c blink::AudioNodeInput::pull(blink::AudioBus*, unsigned long) 476 28 libblink_modules.dylib 0x0000000143d066bd blink::AudioHandler::pullInputs(unsigned long) 413 29 libblink_modules.dylib 0x0000000143d05e67 blink::AudioHandler::processIfNecessary(unsigned long) 391 30 libblink_modules.dylib 0x0000000143d244b2 blink::AudioNodeOutput::pull(blink::AudioBus*, unsigned long) 722 31 libblink_modules.dylib 0x0000000143d1f0cc blink::AudioNodeInput::pull(blink::AudioBus*, unsigned long) 364 32 libblink_modules.dylib 0x0000000143d066bd blink::AudioHandler::pullInputs(unsigned long) 413 33 libblink_modules.dylib 0x0000000143d05e67 blink::AudioHandler::processIfNecessary(unsigned long) 391 34 libblink_modules.dylib 0x0000000143d244b2 blink::AudioNodeOutput::pull(blink::AudioBus*, unsigned long) 722 35 libblink_modules.dylib 0x0000000143d1eee5 blink::AudioNodeInput::sumAllConnections(blink::AudioBus*, unsigned long) 789 36 libblink_modules.dylib 0x0000000143d1f13c blink::AudioNodeInput::pull(blink::AudioBus*, unsigned long) 476 37 libblink_modules.dylib 0x0000000143cfbddb blink::AudioDestinationHandler::render(blink::AudioBus*, blink::AudioBus*, unsigned long, blink::AudioIOPosition const&) 779 38 libblink_platform.dylib 0x0000000138420bb9 blink::AudioDestination::provideInput(blink::AudioBus*, unsigned long) 233 39 libblink_platform.dylib 0x0000000138421bc5 blink::AudioPullFIFO::fillBuffer(unsigned long) 101 40 libblink_platform.dylib 0x0000000138421b1c blink::AudioPullFIFO::consume(blink::AudioBus*, unsigned long) 124 41 libblink_platform.dylib 0x00000001384208fe blink::AudioDestination::render(blink::WebVector<float*> const&, unsigned long, double, double, unsigned long) 1022 42 libcontent.dylib 0x00000001286b5561 content::RendererWebAudioDeviceImpl::Render(base::TimeDelta, base::TimeTicks, int, media::AudioBus*) 689 43 libmedia.dylib 0x00000001316d9c1e media::AudioRendererMixerInput::ProvideInput(media::AudioBus*, unsigned int) 398 44 libmedia.dylib 0x00000001316c83b7 media::AudioConverter::SourceCallback(int, media::AudioBus*) 2647 45 libmedia.dylib 0x00000001316cac93 media::AudioConverter::ConvertWithDelay(unsigned int, media::AudioBus*) 755 46 libmedia.dylib 0x00000001316d5bc3 media::AudioRendererMixer::Render(base::TimeDelta, base::TimeTicks, int, media::AudioBus*) 627 47 libmedia.dylib 0x000000013164403b media::AudioOutputDevice::AudioThreadCallback::Process(unsigned int) 1291 48 libmedia.dylib 0x0000000131604e25 media::AudioDeviceThread::ThreadMain() 1221 49 libbase.dylib 0x00000001201c7df1 base::(anonymous namespace)::ThreadFunc(void*) 705 50 libsystem_pthread.dylib 0x00007fff9e71c99d _pthread_body 131 51 libsystem_pthread.dylib 0x00007fff9e71c91a _pthread_body 0 52 libsystem_pthread.dylib 0x00007fff9e71a351 thread_start 13
,
Jan 5 2017
,
Jan 9 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2d2dfb10fa78a88b6ac615b8041948b13df181bb commit 2d2dfb10fa78a88b6ac615b8041948b13df181bb Author: rtoy <rtoy@chromium.org> Date: Mon Jan 09 22:44:30 2017 Sort event list if any event time was clamped Per spec, if an AudioParam event is scheduled in the past, the event time is clamped to the current time. However, this clamping can change to time order of the event list so that it is no longer in sorted order. Thus, if any event has it's time clamped, the event list needs to be sorted in time order again. The sort must be stable to preserve the behavior of events that were scheduled at the same time. Some additional DCHECKs added to verify sorted order. Unable to come up with a test for this using an offline context. BUG= 678802 TEST=Run test from bug report. Review-Url: https://codereview.chromium.org/2623563002 Cr-Commit-Position: refs/heads/master@{#442382} [modify] https://crrev.com/2d2dfb10fa78a88b6ac615b8041948b13df181bb/third_party/WebKit/Source/modules/webaudio/AudioParamTimeline.cpp [modify] https://crrev.com/2d2dfb10fa78a88b6ac615b8041948b13df181bb/third_party/WebKit/Source/modules/webaudio/AudioParamTimeline.h
,
Jan 11 2017
|
|||
►
Sign in to add a comment |
|||
Comment 1 by hongchan@chromium.org
, Jan 5 2017