summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer
authorllornkcor <llornkcor>2002-04-21 03:39:22 (UTC)
committer llornkcor <llornkcor>2002-04-21 03:39:22 (UTC)
commite22eee22120129209bf91c91bd3176f977c75493 (patch) (unidiff)
treed11225387cde06f3c22019f7ea6837b4a2d1ffe7 /core/multimedia/opieplayer
parent6818807a46b80774de328b4c3001d4bc9d788666 (diff)
downloadopie-e22eee22120129209bf91c91bd3176f977c75493.zip
opie-e22eee22120129209bf91c91bd3176f977c75493.tar.gz
opie-e22eee22120129209bf91c91bd3176f977c75493.tar.bz2
REALLY fixed when playing stream..., stopped stream
Diffstat (limited to 'core/multimedia/opieplayer') (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/loopcontrol.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/loopcontrol.cpp b/core/multimedia/opieplayer/loopcontrol.cpp
index 45c2d3e..15175d0 100644
--- a/core/multimedia/opieplayer/loopcontrol.cpp
+++ b/core/multimedia/opieplayer/loopcontrol.cpp
@@ -226,48 +226,50 @@ void LoopControl::startAudio() {
226 226
227 if ( !isMuted && mediaPlayerState->curDecoder() ) { 227 if ( !isMuted && mediaPlayerState->curDecoder() ) {
228 228
229 currentSample = audioSampleCounter + 1; 229 currentSample = audioSampleCounter + 1;
230 230
231 if ( currentSample != audioSampleCounter + 1 ) 231 if ( currentSample != audioSampleCounter + 1 )
232 qDebug("out of sync with decoder %i %i", currentSample, audioSampleCounter); 232 qDebug("out of sync with decoder %i %i", currentSample, audioSampleCounter);
233 233
234 long samplesRead = 0; 234 long samplesRead = 0;
235 bool readOk=mediaPlayerState->curDecoder()->audioReadSamples( (short*)audioBuffer, channels, 1024, samplesRead, stream ); 235 bool readOk=mediaPlayerState->curDecoder()->audioReadSamples( (short*)audioBuffer, channels, 1024, samplesRead, stream );
236 long sampleWeShouldBeAt = long( playtime.elapsed() ) * freq / 1000; 236 long sampleWeShouldBeAt = long( playtime.elapsed() ) * freq / 1000;
237 long sampleWaitTime = currentSample - sampleWeShouldBeAt; 237 long sampleWaitTime = currentSample - sampleWeShouldBeAt;
238 238
239// this causes drop outs not sure why its even here 239// this causes drop outs not sure why its even here
240// if ( ( sampleWaitTime > 2000 ) && ( sampleWaitTime < 20000 ) ) { 240// if ( ( sampleWaitTime > 2000 ) && ( sampleWaitTime < 20000 ) ) {
241// usleep( (long)((double)sampleWaitTime * 1000000.0 / freq) ); 241// usleep( (long)((double)sampleWaitTime * 1000000.0 / freq) );
242// } 242// }
243// else if ( sampleWaitTime <= -5000 ) { 243// else if ( sampleWaitTime <= -5000 ) {
244// qDebug("need to catch up by: %li (%i,%li)", -sampleWaitTime, currentSample, sampleWeShouldBeAt ); 244// qDebug("need to catch up by: %li (%i,%li)", -sampleWaitTime, currentSample, sampleWeShouldBeAt );
245// //mediaPlayerState->curDecoder()->audioSetSample( sampleWeShouldBeAt, stream ); 245// //mediaPlayerState->curDecoder()->audioSetSample( sampleWeShouldBeAt, stream );
246// currentSample = sampleWeShouldBeAt; 246// currentSample = sampleWeShouldBeAt;
247// } 247// }
248 248
249 audioDevice->write( audioBuffer, samplesRead * 2 * channels ); 249 audioDevice->write( audioBuffer, samplesRead * 2 * channels );
250 if( mediaPlayerState->isStreaming == FALSE);
251
250 audioSampleCounter = currentSample + samplesRead - 1; 252 audioSampleCounter = currentSample + samplesRead - 1;
251 253
252 moreAudio = readOk && (audioSampleCounter <= total_audio_samples); 254 moreAudio = readOk && (audioSampleCounter <= total_audio_samples);
253 255
254 } else { 256 } else {
255 257
256 moreAudio = FALSE; 258 moreAudio = FALSE;
257 259
258 } 260 }
259 261
260 } 262 }
261 263
262 audioMutex->unlock(); 264 audioMutex->unlock();
263} 265}
264 266
265 267
266void LoopControl::killTimers() { 268void LoopControl::killTimers() {
267 269
268 audioMutex->lock(); 270 audioMutex->lock();
269 271
270 if ( hasVideoChannel ) 272 if ( hasVideoChannel )
271 killTimer( videoId ); 273 killTimer( videoId );
272 killTimer( sliderId ); 274 killTimer( sliderId );
273 threadOkToGo = FALSE; 275 threadOkToGo = FALSE;