Skip to content

DEBUG ASSERT: "it == cbegin() || it == cend() || *it >= position" in function class mixxx::Beats::ConstIterator __cdecl mixxx::Beats::iteratorFrom(class mixxx::audio::FramePos) const at src\track\beats.cpp:470 #13262

Description

@JoergAtGithub

Bug Description

Today I go with main and some other PR based on it the following assert, after very short time of playing with 4 synced decks:

 	[Inline Frame] mixxx.exe!mixxx_debug_assert(const char *) Line 9	C++
 	mixxx.exe!mixxx::Beats::iteratorFrom(mixxx::audio::FramePos position) Line 471	C++
 	mixxx.exe!mixxx::Beats::findNBeatsFromPosition(mixxx::audio::FramePos position, double beats) Line 501	C++
 	mixxx.exe!LoopingControl::hintReader(gsl::not_null<QVarLengthArray<Hint,512> *> pHintList) Line 591	C++
 	[Inline Frame] mixxx.exe!EngineBuffer::hintReader(const double) Line 1510	C++
 	mixxx.exe!EngineBuffer::processTrackLocked(float * pOutput=0xc0a53125b32dee8a, const int iBufferSize, mixxx::audio::SampleRate sampleRate) Line 1146	C++
 	mixxx.exe!EngineBuffer::process(float * pOutput=0x000002121549a0b0, const int iBufferSize) Line 1180	C++
 	mixxx.exe!EngineDeck::process(float * pOut=0x000002121549a0b0, const int iBufferSize) Line 65	C++
 	mixxx.exe!EngineMixer::processChannels(int iBufferSize) Line 370	C++
 	mixxx.exe!EngineMixer::process(const int iBufferSize) Line 430	C++
 	mixxx.exe!SoundDevicePortAudio::callbackProcessClkRef(const __int64 framesPerBuffer=1024, float * out=0x0000021232932160, const float * in=0x0000000000000000, const PaStreamCallbackTimeInfo * timeInfo=0x0000002b309ff7a8, unsigned long statusFlags=0) Line 998	C++
 	mixxx.exe!`anonymous namespace'::paV19CallbackClkRef(const void * inputBuffer, void * outputBuffer, unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo * timeInfo, unsigned long statusFlags=0, void * soundDevice=0x00000212114788f0) Line 72	C++
 	portaudio.dll!NonAdaptingProcess(PaUtilBufferProcessor * bp=0x0000021236b764b8, int * streamCallbackResult=0x0000002b309ff7a4, PaUtilChannelDescriptor * hostInputChannels=0x0000000000000000, PaUtilChannelDescriptor * hostOutputChannels=0x00000212373f59b0, unsigned long framesToProcess=1024) Line 879	C
 	portaudio.dll!PaUtil_EndBufferProcessing(PaUtilBufferProcessor * bp=0x0000021236b764b8, int * streamCallbackResult=0x0000002b309ff7a4) Line 1591	C
 	portaudio.dll!WaspiHostProcessingLoop(void * inputBuffer=0x0000000000000000, long inputFrames=0, void * outputBuffer=0x0000021232932160, long outputFrames=1024, void * userData=0x0000021236b76450) Line 5168	C
 	portaudio.dll!ProcessOutputBuffer(PaWasapiStream * stream=0x0000021236b76450, PaWasapiHostProcessor * processor=0x0000002b309ff8b8, unsigned int frames=1024) Line 5771	C
 	portaudio.dll!ProcThreadPoll(void * param=0x0000021236b76450) Line 6397	C
 	ucrtbase.dll!thread_start<unsigned int (__cdecl*)(void *),1>()	Unknown
 	kernel32.dll!BaseThreadInitThunk()	Unknown
 	ntdll.dll!RtlUserThreadStart()	Unknown

  Name Value Type
this 0x000002121a74fa50 {m_markers={ size=0 } m_lastMarkerPosition={m_framePosition=18107.000000000000 } ...} const mixxx::Beats *
  ▶ std::enable_shared_from_thismixxx::Beats {_Wptr=empty } std::enable_shared_from_thismixxx::Beats
  ▶ m_markers { size=0 } std::vector<mixxx::BeatMarker,std::allocatormixxx::BeatMarker>
  ▶ m_lastMarkerPosition {m_framePosition=18107.000000000000 } mixxx::audio::FramePos
  ▶ m_lastMarkerBpm {m_value=141.83333333333331 } mixxx::Bpm
  ▶ m_sampleRate {m_value=44100 } mixxx::audio::SampleRate
  ▶ m_subVersion "rounding=V4|vamp_plugin_id=qm-tempotracker:0" const QString
it {m_value={m_framePosition=-548.69917743830956 } m_beats=0x000002121a74fa50 {m_markers={ size=0 } m_lastMarkerPosition=...} ...} mixxx::Beats::ConstIterator
  ◢ m_value {m_framePosition=-548.69917743830956 } mixxx::audio::FramePos
  m_framePosition -548.69917743830956 double
  ◢ m_beats 0x000002121a74fa50 {m_markers={ size=0 } m_lastMarkerPosition={m_framePosition=18107.000000000000 } ...} const mixxx::Beats *
  ▶ std::enable_shared_from_thismixxx::Beats {_Wptr=empty } std::enable_shared_from_thismixxx::Beats
  ▶ m_markers { size=0 } std::vector<mixxx::BeatMarker,std::allocatormixxx::BeatMarker>
  ▶ m_lastMarkerPosition {m_framePosition=18107.000000000000 } mixxx::audio::FramePos
  ▶ m_lastMarkerBpm {m_value=141.83333333333331 } mixxx::Bpm
  ▶ m_sampleRate {m_value=44100 } mixxx::audio::SampleRate
  ▶ m_subVersion "rounding=V4|vamp_plugin_id=qm-tempotracker:0" const QString
  ◢ m_it std::_Vector_const_iterator<std::_Vector_val<std::_Simple_typesmixxx::BeatMarker>>
  ▶ [ptr] 0x0000000000000000 mixxx::BeatMarker *
  ▶ [Raw View] {_Ptr=0x0000000000000000 } std::_Vector_const_iterator<std::_Vector_val<std::_Simple_typesmixxx::BeatMarker>>
  m_beatOffset -1 int
  Name Value Type
this 0x00000212119d44c0 {m_pCOBeatLoopActivate=0x0000021214f3ccc0 {m_buttonMode=PUSH (0) m_iNoStates=2 } ...} LoopingControl *
  ▶ EngineControl {m_group="[Channel4]" m_pConfig=strong reference to shared pointer of type "ConfigObject" ...} EngineControl
  ▶ m_pCOBeatLoopActivate 0x0000021214f3ccc0 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pCOBeatLoopRollActivate 0x0000021214f3c9c0 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pCOLoopStartPosition 0x0000021214f3d4a0 {m_key={group="[Channel4]" item="loop_start_position" } m_pControl=strong reference to shared pointer of type "ControlDoublePrivate" } ControlObject *
  ▶ m_pCOLoopEndPosition 0x0000021214f3db00 {m_key={group="[Channel4]" item="loop_end_position" } m_pControl=strong reference to shared pointer of type "ControlDoublePrivate" } ControlObject *
  ▶ m_pCOLoopEnabled 0x0000021214f3cde0 {m_key={group="[Channel4]" item="loop_enabled" } m_pControl=strong reference to shared pointer of type "ControlDoublePrivate" } ControlObject *
  ▶ m_pCOLoopAnchor 0x0000021214f3dbc0 {m_buttonMode=TOGGLE (1) m_iNoStates=2 } ControlPushButton *
  ▶ m_pLoopInButton 0x0000021214f3b6a0 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pLoopInGotoButton 0x0000021214f3b700 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pLoopOutButton 0x0000021214f3b820 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pLoopOutGotoButton 0x0000021214f3ba60 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pLoopExitButton 0x0000021214f3bb80 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pReloopToggleButton 0x0000021214f3bbe0 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pReloopAndStopButton 0x0000021214f3bc40 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pCOLoopScale 0x0000021214f41880 {m_key={group="[Channel4]" item="loop_scale" } m_pControl=strong reference to shared pointer of type "ControlDoublePrivate" } ControlObject *
  ▶ m_pLoopHalveButton 0x0000021214f418e0 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pLoopDoubleButton 0x0000021214f42780 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pLoopRemoveButton 0x0000021214f421e0 {m_buttonMode=TRIGGER (4) m_iNoStates=2 } ControlPushButton *
  ▶ m_pSlipEnabled 0x0000021214f3c600 {m_buttonMode=TOGGLE (1) m_iNoStates=2 } ControlObject * {ControlPushButton}
  ▶ m_pRateControl 0x000002120df776f0 {m_pButtonRateTempDown=0x0000021214f41520 {m_buttonMode=PUSH (0) m_iNoStates=2 } ...} RateControl *
  ▶ m_pPlayButton 0x0000021214f3b4c0 {m_buttonMode=TOGGLE (1) m_iNoStates=2 } ControlObject * {ControlPushButton}
  ▶ m_pRepeatButton 0x0000021214f3c660 {m_buttonMode=TOGGLE (1) m_iNoStates=2 } ControlObject * {ControlPushButton}
  m_bLoopingEnabled false bool
  m_bLoopRollActive false bool
  m_bLoopWasEnabledBeforeSlipEnable false bool
  m_bAdjustingLoopIn false bool
  m_bAdjustingLoopOut false bool
  m_bAdjustingLoopInOld false bool
  m_bAdjustingLoopOutOld false bool
  m_bLoopOutPressedWhileLoopDisabled false bool
  ▶ m_activeLoopRolls { size=0 } QStack
  ▶ m_loopInfo {...} ControlValueAtomicLoopingControl::LoopInfo,8
  ▶ m_prevLoopInfo {...} ControlValueAtomicLoopingControl::LoopInfo,8
  m_prevLoopSize -1.0000000000000000 double
  ▶ m_oldLoopInfo {startPosition={m_framePosition=nan } endPosition={m_framePosition=nan } seekMode=None (2) } LoopingControl::LoopInfo
  ▶ m_currentPosition {...} ControlValueAtomicmixxx::audio::FramePos,8
  ▶ m_pQuantizeEnabled 0x0000021214f3c6c0 {m_buttonMode=TOGGLE (1) m_iNoStates=2 } ControlObject * {ControlPushButton}
  ▶ m_pActiveBeatLoop 0x0000021215038d20 {m_dBeatLoopSize=0.25000000000000000 m_bActive=false m_pLegacy=unique_ptr {m_buttonMode=TOGGLE (1) m_iNoStates=2 } ...} QAtomicPointer
  ▶ m_pCOBeatLoop 0x0000021214f3db60 {m_key={group="[Channel4]" item="beatloop" } m_pControl=strong reference to shared pointer of type "ControlDoublePrivate" } ControlObject *
  ▶ m_pCOBeatLoopSize 0x0000021214f3d2c0 {m_key={group="[Channel4]" item="beatloop_size" } m_pControl=strong reference to shared pointer of type "ControlDoublePrivate" } ControlObject *
  ▶ m_beatLoops { size=15 } QList<BeatLoopingControl *>
  ▶ m_pCOBeatJump 0x0000021214f400e0 {m_key={group="[Channel4]" item="beatjump" } m_pControl=strong reference to shared pointer of type "ControlDoublePrivate" } ControlObject *
  ▶ m_pCOBeatJumpSize 0x0000021214f40c20 {m_key={group="[Channel4]" item="beatjump_size" } m_pControl=strong reference to shared pointer of type "ControlDoublePrivate" } ControlObject *
  ▶ m_pCOBeatJumpSizeHalve 0x0000021214f3fba0 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pCOBeatJumpSizeDouble 0x0000021214f40e60 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pCOBeatJumpForward 0x0000021214f40140 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_pCOBeatJumpBackward 0x0000021214f407a0 {m_buttonMode=PUSH (0) m_iNoStates=2 } ControlPushButton *
  ▶ m_beatJumps { size=15 } QList<BeatJumpControl *>
  ▶ m_pCOLoopMove 0x0000021214f40b60 {m_key={group="[Channel4]" item="loop_move" } m_pControl=strong reference to shared pointer of type "ControlDoublePrivate" } ControlObject *
  ▶ m_loopMoves { size=15 } QList<LoopMoveControl *>
  ▶ m_pTrack shared_ptr {m_qMutex={owner={...} count=0 mutex={...} } m_fileAccess={m_fileInfo={m_fileInfo={d_ptr=pointer to implicit shared object of type "QFileInfoPrivate" } } ...} ...} [28 strong refs, 1 weak ref] [{_Uses=28 _Weaks=2 }] std::shared_ptr
  ▶ m_pBeats shared_ptr {m_markers={ size=0 } m_lastMarkerPosition={m_framePosition=18107.000000000000 } m_lastMarkerBpm={m_value=...} ...} [7 strong refs] [default] std::shared_ptr<mixxx::Beats const>
pBeats shared_ptr {m_markers={ size=0 } m_lastMarkerPosition={m_framePosition=18107.000000000000 } m_lastMarkerBpm={m_value=...} ...} [7 strong refs] [default] std::shared_ptr<mixxx::Beats const>
  ◢ [ptr] 0x000002121a74fa50 {m_markers={ size=0 } m_lastMarkerPosition={m_framePosition=18107.000000000000 } ...} const mixxx::Beats *
  ▶ std::enable_shared_from_thismixxx::Beats {_Wptr=empty } std::enable_shared_from_thismixxx::Beats
  ▶ m_markers { size=0 } std::vector<mixxx::BeatMarker,std::allocatormixxx::BeatMarker>
  ▶ m_lastMarkerPosition {m_framePosition=18107.000000000000 } mixxx::audio::FramePos
  ▶ m_lastMarkerBpm {m_value=141.83333333333331 } mixxx::Bpm
  ▶ m_sampleRate {m_value=44100 } mixxx::audio::SampleRate
  ▶ m_subVersion "rounding=V4|vamp_plugin_id=qm-tempotracker:0" const QString
  ◢ [control block] default std::_Ref_count_base {std::_Ref_countmixxx::Beats}
  ◢ [original ptr] 0x000002121a74fa50 {m_markers={ size=0 } m_lastMarkerPosition={m_framePosition=18107.000000000000 } ...} mixxx::Beats *
  ▶ std::enable_shared_from_thismixxx::Beats {_Wptr=empty } std::enable_shared_from_thismixxx::Beats
  ▶ m_markers { size=0 } std::vector<mixxx::BeatMarker,std::allocatormixxx::BeatMarker>
  ▶ m_lastMarkerPosition {m_framePosition=18107.000000000000 } mixxx::audio::FramePos
  ▶ m_lastMarkerBpm {m_value=141.83333333333331 } mixxx::Bpm
  ▶ m_sampleRate {m_value=44100 } mixxx::audio::SampleRate
  ▶ m_subVersion "rounding=V4|vamp_plugin_id=qm-tempotracker:0" const QString
  ▶ [Raw View] {_Ptr=0x000002121a74fa50 {m_markers={ size=0 } m_lastMarkerPosition={m_framePosition=18107.000000000000 } ...} } std::_Ref_count_base {std::_Ref_countmixxx::Beats}
  ◢ [Raw View] {...} std::shared_ptr<mixxx::Beats const>
  ◢ std::_Ptr_base<mixxx::Beats const > {_Ptr=0x000002121a74fa50 {m_markers={ size=0 } m_lastMarkerPosition={m_framePosition=18107.000000000000 } ...} ...} std::_Ptr_base<mixxx::Beats const>
  ◢ _Ptr 0x000002121a74fa50 {m_markers={ size=0 } m_lastMarkerPosition={m_framePosition=18107.000000000000 } ...} const mixxx::Beats *
  ▶ std::enable_shared_from_thismixxx::Beats {_Wptr=empty } std::enable_shared_from_thismixxx::Beats
  ▶ m_markers { size=0 } std::vector<mixxx::BeatMarker,std::allocatormixxx::BeatMarker>
  ▶ m_lastMarkerPosition {m_framePosition=18107.000000000000 } mixxx::audio::FramePos
  ▶ m_lastMarkerBpm {m_value=141.83333333333331 } mixxx::Bpm
  ▶ m_sampleRate {m_value=44100 } mixxx::audio::SampleRate
  ▶ m_subVersion "rounding=V4|vamp_plugin_id=qm-tempotracker:0" const QString
  ▶ _Rep 0x000002121af71be0 default std::_Ref_count_base * {std::_Ref_countmixxx::Beats}

Version

main

OS

Windows 11

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions