This is a multi-part message in MIME format. --------------4531000C2FDE4BFEBAFB5166 Content-Type: multipart/alternative; boundary="------------5D8A159F89A0921A501BD71E" --------------5D8A159F89A0921A501BD71E Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Hi, Jouni! While Phabricator is down I'll post the review here :) I have tested the patch and it has at least two regressions: 1) It crashes when there is no audio attached (see a patch in attachement that should fix that): 2) When in drop frames mode, the video does not always cycle in the end of the clip. Basically, sometimes video just "jumps over" the end of the selection or the clip range. To test that you can do the following: i) create a big image (with or without sound) ii) select several frames, e.g. 5-30th frames iii) start play iv) playback will jump over the 30th frame and will continue to the infinity -- Dmitry Kazakov --------------5D8A159F89A0921A501BD71E Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit Hi, Jouni!

While Phabricator is down I'll post the review here :)

I have tested the patch and it has at least two regressions:

1) It crashes when there is no audio attached (see a patch in attachement that should fix that):
2) When in drop frames mode, the video does not always cycle in the end of the clip. Basically, sometimes video just "jumps over" the end of the selection or the clip range. To test that you can do the following:

i) create a big image (with or without sound)
ii) select several frames, e.g. 5-30th frames
iii) start play
iv) playback will jump over the 30th frame and will continue to the infinity


-- 
Dmitry Kazakov
--------------5D8A159F89A0921A501BD71E-- --------------4531000C2FDE4BFEBAFB5166 Content-Type: text/x-patch; name="animation-no-audio-crash-fix.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="animation-no-audio-crash-fix.diff" diff --git a/libs/ui/canvas/kis_animation_player.cpp b/libs/ui/canvas/kis_animation_player.cpp index 2f98daa..0eebfa0 100644 --- a/libs/ui/canvas/kis_animation_player.cpp +++ b/libs/ui/canvas/kis_animation_player.cpp @@ -448,7 +448,7 @@ void KisAnimationPlayer::uploadFrame(int frame, bool forceAudioSync) const int fps = animationInterface->framerate(); if (frame < 0) { - const int currentTime = (m_d->dropFramesMode) ? m_d->syncedAudio->position() : m_d->playbackTime.elapsed(); + const int currentTime = (m_d->dropFramesMode && m_d->syncedAudio) ? m_d->syncedAudio->position() : m_d->playbackTime.elapsed(); const int framesDiff = currentTime - m_d->nextFrameExpectedTime; // qDebug() << ppVar(framesDiff) @@ -472,8 +472,10 @@ void KisAnimationPlayer::uploadFrame(int frame, bool forceAudioSync) if (m_d->dropFramesMode) { if (m_d->expectedFrame < frame) { - // Animation restarting, restart audio as well - slotSyncScrubbingAudio(m_d->frameToMSec(frame, fps)); + if (m_d->syncedAudio) { + // Animation restarting, restart audio as well + slotSyncScrubbingAudio(m_d->frameToMSec(frame, fps)); + } m_d->lastTimerInterval = m_d->expectedInterval; m_d->nextFrameExpectedTime = currentTime + m_d->expectedInterval; } else { --------------4531000C2FDE4BFEBAFB5166--