summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/loopcontrol.cpp
Unidiff
Diffstat (limited to 'core/multimedia/opieplayer/loopcontrol.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/multimedia/opieplayer/loopcontrol.cpp26
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
154void LoopControl::setPosition( long pos ) { 154void 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
221void LoopControl::startAudio() { 221void 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
353bool LoopControl::init( const QString& filename ) { 354bool 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
451void LoopControl::play() { 451void 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;