author | llornkcor <llornkcor> | 2002-05-05 18:09:38 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-05-05 18:09:38 (UTC) |
commit | 4cd02e41953be5b271c877197cf9c12ad4785bef (patch) (unidiff) | |
tree | f530836dc741188e869c64d29c73df0142b01f11 | |
parent | a68eb5375bd8dc5f9cb3ea9b1785d923a4412edc (diff) | |
download | opie-4cd02e41953be5b271c877197cf9c12ad4785bef.zip opie-4cd02e41953be5b271c877197cf9c12ad4785bef.tar.gz opie-4cd02e41953be5b271c877197cf9c12ad4785bef.tar.bz2 |
bug fix
-rw-r--r-- | core/multimedia/opieplayer/loopcontrol.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/core/multimedia/opieplayer/loopcontrol.cpp b/core/multimedia/opieplayer/loopcontrol.cpp index faa8e56..310d512 100644 --- a/core/multimedia/opieplayer/loopcontrol.cpp +++ b/core/multimedia/opieplayer/loopcontrol.cpp | |||
@@ -334,88 +334,88 @@ void LoopControl::stop( bool willPlayAgainShortly ) { | |||
334 | killTimers(); | 334 | killTimers(); |
335 | 335 | ||
336 | audioMutex->lock(); | 336 | audioMutex->lock(); |
337 | 337 | ||
338 | mediaPlayerState->curDecoder()->close(); | 338 | mediaPlayerState->curDecoder()->close(); |
339 | 339 | ||
340 | if ( audioDevice ) { | 340 | if ( audioDevice ) { |
341 | delete audioDevice; | 341 | delete audioDevice; |
342 | delete audioBuffer; | 342 | delete audioBuffer; |
343 | audioDevice = 0; | 343 | audioDevice = 0; |
344 | audioBuffer = 0; | 344 | audioBuffer = 0; |
345 | } | 345 | } |
346 | 346 | ||
347 | audioMutex->unlock(); | 347 | audioMutex->unlock(); |
348 | 348 | ||
349 | } | 349 | } |
350 | } | 350 | } |
351 | 351 | ||
352 | 352 | ||
353 | bool LoopControl::init( const QString& filename ) { | 353 | bool LoopControl::init( const QString& filename ) { |
354 | stop(); | 354 | stop(); |
355 | 355 | ||
356 | audioMutex->lock(); | 356 | audioMutex->lock(); |
357 | 357 | ||
358 | fileName = filename; | 358 | fileName = filename; |
359 | stream = 0; // only play stream 0 for now | 359 | stream = 0; // only play stream 0 for now |
360 | current_frame = total_video_frames = total_audio_samples = 0; | 360 | current_frame = total_video_frames = total_audio_samples = 0; |
361 | 361 | ||
362 | qDebug( "Using the %s decoder", mediaPlayerState->curDecoder()->pluginName() ); | 362 | qDebug( "Using the %s decoder", mediaPlayerState->curDecoder()->pluginName() ); |
363 | 363 | ||
364 | // ### Hack to use libmpeg3plugin to get the number of audio samples if we are using the libmad plugin | 364 | // ### Hack to use libmpeg3plugin to get the number of audio samples if we are using the libmad plugin |
365 | if ( mediaPlayerState->curDecoder()->pluginName() == QString("LibMadPlugin") ) { | 365 | if ( mediaPlayerState->curDecoder()->pluginName() == QString("LibMadPlugin") ) { |
366 | if ( mediaPlayerState->libMpeg3Decoder() && mediaPlayerState->libMpeg3Decoder()->open( filename ) ) { | 366 | if ( mediaPlayerState->libMpeg3Decoder() && mediaPlayerState->libMpeg3Decoder()->open( filename )) { |
367 | total_audio_samples = mediaPlayerState->libMpeg3Decoder()->audioSamples( 0 ); | 367 | total_audio_samples = mediaPlayerState->libMpeg3Decoder()->audioSamples( 0 ); |
368 | mediaPlayerState->libMpeg3Decoder()->close(); | 368 | mediaPlayerState->libMpeg3Decoder()->close(); |
369 | } | 369 | } |
370 | } | 370 | } |
371 | 371 | ||
372 | if ( !mediaPlayerState->curDecoder()|| !mediaPlayerState->curDecoder()->open( filename ) ) { | 372 | if ( !mediaPlayerState->curDecoder()|| !mediaPlayerState->curDecoder()->open( filename ) ) { |
373 | audioMutex->unlock(); | 373 | audioMutex->unlock(); |
374 | return FALSE; | 374 | return FALSE; |
375 | } | 375 | } |
376 | 376 | ||
377 | hasAudioChannel = mediaPlayerState->curDecoder()->audioStreams() > 0; | 377 | hasAudioChannel = mediaPlayerState->curDecoder()->audioStreams() > 0; |
378 | hasVideoChannel = mediaPlayerState->curDecoder()->videoStreams() > 0; | 378 | hasVideoChannel = mediaPlayerState->curDecoder()->videoStreams() > 0; |
379 | 379 | ||
380 | if ( hasAudioChannel ) { | 380 | if ( hasAudioChannel ) { |
381 | int astream = 0; | 381 | int astream = 0; |
382 | 382 | ||
383 | channels = mediaPlayerState->curDecoder()->audioChannels( astream ); | 383 | channels = mediaPlayerState->curDecoder()->audioChannels( astream ); |
384 | qDebug( "LC- channels = %d", channels ); | 384 | qDebug( "LC- channels = %d", channels ); |
385 | 385 | ||
386 | if ( !total_audio_samples ) | 386 | if ( !total_audio_samples ) |
387 | total_audio_samples = mediaPlayerState->curDecoder()->audioSamples( astream ); | 387 | total_audio_samples = mediaPlayerState->curDecoder()->audioSamples( astream ); |
388 | 388 | ||
389 | // total_audio_samples += 1000; | 389 | total_audio_samples += 1000; |
390 | 390 | ||
391 | mediaPlayerState->setLength( total_audio_samples ); | 391 | mediaPlayerState->setLength( total_audio_samples ); |
392 | 392 | ||
393 | freq = mediaPlayerState->curDecoder()->audioFrequency( astream ); | 393 | freq = mediaPlayerState->curDecoder()->audioFrequency( astream ); |
394 | qDebug( "LC- frequency = %d", freq ); | 394 | qDebug( "LC- frequency = %d", freq ); |
395 | 395 | ||
396 | audioSampleCounter = 0; | 396 | audioSampleCounter = 0; |
397 | int bits_per_sample; | 397 | int bits_per_sample; |
398 | if ( mediaPlayerState->curDecoder()->pluginName() == QString("LibWavPlugin") ) { | 398 | if ( mediaPlayerState->curDecoder()->pluginName() == QString("LibWavPlugin") ) { |
399 | bits_per_sample =(int) mediaPlayerState->curDecoder()->getTime(); | 399 | bits_per_sample =(int) mediaPlayerState->curDecoder()->getTime(); |
400 | qDebug("using stupid hack"); | 400 | qDebug("using stupid hack"); |
401 | } else { | 401 | } else { |
402 | bits_per_sample=0; | 402 | bits_per_sample=0; |
403 | } | 403 | } |
404 | 404 | ||
405 | audioDevice = new AudioDevice( freq, channels, bits_per_sample); | 405 | audioDevice = new AudioDevice( freq, channels, bits_per_sample); |
406 | audioBuffer = new char[ audioDevice->bufferSize() ]; | 406 | audioBuffer = new char[ audioDevice->bufferSize() ]; |
407 | channels = audioDevice->channels(); | 407 | channels = audioDevice->channels(); |
408 | 408 | ||
409 | //### must check which frequency is actually used. | 409 | //### must check which frequency is actually used. |
410 | static const int size = 1; | 410 | static const int size = 1; |
411 | short int buf[size]; | 411 | short int buf[size]; |
412 | long samplesRead = 0; | 412 | long samplesRead = 0; |
413 | mediaPlayerState->curDecoder()->audioReadSamples( buf, channels, size, samplesRead, stream ); | 413 | mediaPlayerState->curDecoder()->audioReadSamples( buf, channels, size, samplesRead, stream ); |
414 | } | 414 | } |
415 | 415 | ||
416 | if ( hasVideoChannel ) { | 416 | if ( hasVideoChannel ) { |
417 | total_video_frames = mediaPlayerState->curDecoder()->videoFrames( stream ); | 417 | total_video_frames = mediaPlayerState->curDecoder()->videoFrames( stream ); |
418 | 418 | ||
419 | mediaPlayerState->setLength( total_video_frames ); | 419 | mediaPlayerState->setLength( total_video_frames ); |
420 | 420 | ||
421 | framerate = mediaPlayerState->curDecoder()->videoFrameRate( stream ); | 421 | framerate = mediaPlayerState->curDecoder()->videoFrameRate( stream ); |