thank you for your patch, it includes the ideas that where missing in my patch. It really looks like that we are now able to fix the whole track change procedure.
I have modified you patch a little bit to iron out some remaining issues.
* CueControl::trackLoaded emits seekAbs in any case to overwrite the position from the previous track
* m_iTrackLoading is set to 0 not before all EngineControls are setup with the new track. This ensures that the track is properly seeked when the new buffer is processed.
* m_pTrackSamples has to be set to 0 in EgineBuffer::slotLoadTrack because of the other changes
* the m_pause.lock() in EgineBuffer::slotLoadTrack ensures that the buffer is not processed when starting to change the track
Hi RJ,
thank you for your patch, it includes the ideas that where missing in my patch. It really looks like that we are now able to fix the whole track change procedure.
I have modified you patch a little bit to iron out some remaining issues. :trackLoaded emits seekAbs in any case to overwrite the position from the previous track :slotLoadTrack because of the other changes :slotLoadTrack ensures that the buffer is not processed when starting to change the track
* CueControl:
* m_iTrackLoading is set to 0 not before all EngineControls are setup with the new track. This ensures that the track is properly seeked when the new buffer is processed.
* m_pTrackSamples has to be set to 0 in EgineBuffer:
* the m_pause.lock() in EgineBuffer:
See attached.