Diffstat (limited to 'core/multimedia/opieplayer/loopcontrol.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | core/multimedia/opieplayer/loopcontrol.cpp | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/core/multimedia/opieplayer/loopcontrol.cpp b/core/multimedia/opieplayer/loopcontrol.cpp index 3171c4b..70e4a78 100644 --- a/core/multimedia/opieplayer/loopcontrol.cpp +++ b/core/multimedia/opieplayer/loopcontrol.cpp | |||
@@ -153,7 +153,7 @@ void LoopControl::timerEvent( QTimerEvent *te ) { | |||
153 | 153 | ||
154 | void LoopControl::setPosition( long pos ) { | 154 | void LoopControl::setPosition( long pos ) { |
155 | audioMutex->lock(); | 155 | audioMutex->lock(); |
156 | 156 | // qDebug("Loop control %d", pos); | |
157 | if ( hasVideoChannel && hasAudioChannel ) { | 157 | if ( hasVideoChannel && hasAudioChannel ) { |
158 | playtime.restart(); | 158 | playtime.restart(); |
159 | playtime = playtime.addMSecs( long((double)-pos * 1000.0 / framerate) ); | 159 | playtime = playtime.addMSecs( long((double)-pos * 1000.0 / framerate) ); |
@@ -220,7 +220,6 @@ void LoopControl::startVideo() { | |||
220 | 220 | ||
221 | void LoopControl::startAudio() { | 221 | void LoopControl::startAudio() { |
222 | 222 | ||
223 | //qDebug("start audio"); | ||
224 | audioMutex->lock(); | 223 | audioMutex->lock(); |
225 | if ( moreAudio ) { | 224 | if ( moreAudio ) { |
226 | 225 | ||
@@ -237,14 +236,14 @@ void LoopControl::startAudio() { | |||
237 | long sampleWaitTime = currentSample - sampleWeShouldBeAt; | 236 | long sampleWaitTime = currentSample - sampleWeShouldBeAt; |
238 | 237 | ||
239 | // this causes drop outs not sure why its even here | 238 | // this causes drop outs not sure why its even here |
240 | if ( ( sampleWaitTime > 2000 ) && ( sampleWaitTime < 20000 ) ) { | 239 | // if ( ( sampleWaitTime > 2000 ) && ( sampleWaitTime < 20000 ) ) { |
241 | usleep( (long)((double)sampleWaitTime * 1000000.0 / freq) ); | 240 | // usleep( (long)((double)sampleWaitTime * 1000000.0 / freq) ); |
242 | } | 241 | // } |
243 | else if ( sampleWaitTime <= -5000 ) { | 242 | // else if ( sampleWaitTime <= -5000 ) { |
244 | qDebug("need to catch up by: %li (%i,%li)", -sampleWaitTime, currentSample, sampleWeShouldBeAt ); | 243 | // qDebug("need to catch up by: %li (%i,%li)", -sampleWaitTime, currentSample, sampleWeShouldBeAt ); |
245 | // //mediaPlayerState->curDecoder()->audioSetSample( sampleWeShouldBeAt, stream ); | 244 | // // //mediaPlayerState->curDecoder()->audioSetSample( sampleWeShouldBeAt, stream ); |
246 | currentSample = sampleWeShouldBeAt; | 245 | // currentSample = sampleWeShouldBeAt; |
247 | } | 246 | // } |
248 | 247 | ||
249 | audioDevice->write( audioBuffer, samplesRead * 2 * channels ); | 248 | audioDevice->write( audioBuffer, samplesRead * 2 * channels ); |
250 | 249 | ||
@@ -345,14 +344,15 @@ void LoopControl::stop( bool willPlayAgainShortly ) { | |||
345 | } | 344 | } |
346 | 345 | ||
347 | audioMutex->unlock(); | 346 | audioMutex->unlock(); |
348 | |||
349 | } | 347 | } |
348 | audioSampleCounter=0; | ||
349 | current_frame=0; | ||
350 | total_audio_samples=0; | ||
350 | } | 351 | } |
351 | 352 | ||
352 | 353 | ||
353 | bool LoopControl::init( const QString& filename ) { | 354 | bool LoopControl::init( const QString& filename ) { |
354 | stop(); | 355 | stop(); |
355 | |||
356 | audioMutex->lock(); | 356 | audioMutex->lock(); |
357 | 357 | ||
358 | fileName = filename; | 358 | fileName = filename; |
@@ -450,6 +450,8 @@ bool LoopControl::init( const QString& filename ) { | |||
450 | 450 | ||
451 | void LoopControl::play() { | 451 | void LoopControl::play() { |
452 | qDebug("LC- play"); | 452 | qDebug("LC- play"); |
453 | mediaPlayerState->setPosition( 0); //uglyhack | ||
454 | |||
453 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 455 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
454 | if ( !disabledSuspendScreenSaver || previousSuspendMode != hasVideoChannel ) { | 456 | if ( !disabledSuspendScreenSaver || previousSuspendMode != hasVideoChannel ) { |
455 | disabledSuspendScreenSaver = TRUE; | 457 | disabledSuspendScreenSaver = TRUE; |