diff --git a/include/player.h b/include/player.h index c773054650e66019708fdb0e2236063babeb7cac..004857f922363b3f212091fe3f79363cd25d0a6e 100644 --- a/include/player.h +++ b/include/player.h @@ -74,7 +74,6 @@ public slots: void recStream(); void pause(); void togglePlayPause(); - bool skipTo(int proMil); bool skipToFrame(int f); bool skipToFrame(); void update(); @@ -105,7 +104,6 @@ private: bool mPlayerSpeedLimited; bool mPlayerSpeedFixed = false; bool mLooping = false; - bool mSliderSet; bool mRec; diff --git a/src/player.cpp b/src/player.cpp index 6d050777024151b64c7dd4f8578013e962719cec..d97c6badf2376b24f9e4fd50394bd54afc1d9d68 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -217,7 +217,6 @@ void Player::setAnim(Animation *anim) if (anim) { pause(); - mSliderSet = false; mAnimation = anim; int max = anim->getNumFrames()>1 ? anim->getNumFrames()-1 : 0; setSliderMax(max); @@ -270,11 +269,8 @@ bool Player::updateImage() time1 = time1/CLOCKS_PER_SEC; cout << " time(update image) = " << time1 << " sec." << endl; #endif - // mSliderSet is needed because setValue will call skiptoframe because of connect slot - mSliderSet = true; mSlider->setValue(mAnimation->getCurrentFrameNum()); //(1000*mAnimation->getCurrentFrameNum())/mAnimation->getNumFrames()); mFrameNum->setText(QString().number(mAnimation->getCurrentFrameNum())); - mSliderSet = false; // reset setSlider here because if value doesnt change than it would not be reset by skiptoframe return true; } @@ -533,20 +529,9 @@ void Player::recStream() } } -bool Player::skipTo(int proMil) // proMil = [0..1000] -{ - if (mSliderSet) - { - return false; - } - pause(); - mImg = mAnimation->getFrameAtPos(proMil/1000.0); // value between 0..1 - return updateImage(); -} - bool Player::skipToFrame(int f) // [0..mAnimation->getNumFrames()-1] { - if (mSliderSet) + if (f == mAnimation->getCurrentFrameNum()) { return false; } diff --git a/src/tracker.cpp b/src/tracker.cpp index a26253d4293caa9803b584b59c32cda446b22020..4ff07dd1924bfc102079cd1112802b189d31ff00 100644 --- a/src/tracker.cpp +++ b/src/tracker.cpp @@ -1426,6 +1426,12 @@ int Tracker::track(cv::Mat &img, cv::Rect &rect, int frame, bool reTrack, int re if ((mPrevFrame != -1) && (abs(frame - mPrevFrame) > MAX_STEP_TRACK)) reset(); + if (abs(frame - mPrevFrame) == 0) + { + debout << "ERROR: Frame has not changed. There is nothing to track!" << std::endl; + return -1; + } + if (img.channels() == 3) { cv::cvtColor(img,mGrey,cv::COLOR_BGR2GRAY);