Skip to content

Commit

Permalink
Avoid double seek.
Browse files Browse the repository at this point in the history
When seeking, the seek command would get called again after
the frame refreshed - causing the frame to be displayed twice.
  • Loading branch information
bmatherly committed Feb 25, 2015
1 parent f4870d0 commit 06bca9b
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 13 deletions.
12 changes: 1 addition & 11 deletions src/player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
Player::Player(QWidget *parent)
: QWidget(parent)
, m_position(0)
, m_seekPosition(SEEK_INACTIVE)
, m_isMeltedPlaying(-1)
, m_zoomToggleFactor(Settings.playerZoom() == 0.0f? 1.0f : Settings.playerZoom())
, m_pauseAfterOpen(false)
Expand Down Expand Up @@ -385,11 +384,8 @@ void Player::togglePlayPaused()
void Player::seek(int position)
{
if (m_isSeekable) {
emit seeked();
if (position >= 0) {
if (m_seekPosition == SEEK_INACTIVE)
emit seeked(qMin(position, m_duration - 1));
m_seekPosition = qMin(position, m_duration - 1);
emit seeked(qMin(position, m_duration - 1));
}
}
// Seek implies pause.
Expand Down Expand Up @@ -516,9 +512,6 @@ void Player::onShowFrame(int position, double fps, int in, int out, int length,
m_positionSpinner->blockSignals(false);
m_scrubber->onSeek(position);
}
if (m_seekPosition != SEEK_INACTIVE)
emit seeked(m_seekPosition);
m_seekPosition = SEEK_INACTIVE;
if (m_isMeltedPlaying == -1 || isPlaying != m_isMeltedPlaying) {
m_isMeltedPlaying = isPlaying;
if (isPlaying) {
Expand Down Expand Up @@ -552,9 +545,6 @@ void Player::onFrameDisplayed(const SharedFrame& frame)
}
if (position >= m_duration)
emit endOfStream();
if (m_seekPosition != SEEK_INACTIVE)
emit seeked(m_seekPosition);
m_seekPosition = SEEK_INACTIVE;
showAudio(frame);
}

Expand Down
2 changes: 0 additions & 2 deletions src/player.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ class Player : public QWidget

signals:
void endOfStream();
void seeked();
void showStatusMessage(QString);
void audioLevels(const QVector<double>&);
void inChanged(int);
Expand Down Expand Up @@ -129,7 +128,6 @@ public slots:
QIcon m_pauseIcon;
QSlider* m_volumeSlider;
AudioSignal* m_audioSignal;
int m_seekPosition;
int m_previousIn;
int m_previousOut;
double m_savedVolume;
Expand Down

0 comments on commit 06bca9b

Please sign in to comment.