summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/loopcontrol_threaded.cpp
Unidiff
Diffstat (limited to 'core/multimedia/opieplayer/loopcontrol_threaded.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/multimedia/opieplayer/loopcontrol_threaded.cpp54
1 files changed, 30 insertions, 24 deletions
diff --git a/core/multimedia/opieplayer/loopcontrol_threaded.cpp b/core/multimedia/opieplayer/loopcontrol_threaded.cpp
index 0a1fc17..9a162c2 100644
--- a/core/multimedia/opieplayer/loopcontrol_threaded.cpp
+++ b/core/multimedia/opieplayer/loopcontrol_threaded.cpp
@@ -20,12 +20,26 @@
20#define _REENTRANT 20#define _REENTRANT
21 21
22#include "mediaplayerplugininterface.h"
23#include "loopcontrol.h"
24#include "audiodevice.h"
25#include "videowidget.h"
26#include "audiowidget.h"
27#include "mediaplayerstate.h"
28
29/* OPIE */
22#include <qpe/qpeapplication.h> 30#include <qpe/qpeapplication.h>
23#include <qpe/custom.h> 31#include <qpe/custom.h>
24#include <qimage.h> 32
25#include <qpainter.h>
26#if !defined(QT_NO_COP) 33#if !defined(QT_NO_COP)
27#include <qpe/qcopenvelope_qws.h> 34#include <qpe/qcopenvelope_qws.h>
28#endif 35#endif
29#include "mediaplayerplugininterface.h" 36
37#include <opie2/odebug.h>
38
39/* QT */
40#include <qimage.h>
41#include <qpainter.h>
42
43/* STD */
30#include <stdio.h> 44#include <stdio.h>
31#include <stdlib.h> 45#include <stdlib.h>
@@ -34,12 +48,4 @@
34#include <unistd.h> 48#include <unistd.h>
35#include <pthread.h> 49#include <pthread.h>
36#include "loopcontrol.h"
37#include "audiodevice.h"
38#include "videowidget.h"
39#include "audiowidget.h"
40#include "mediaplayerstate.h"
41
42
43
44 50
45 51
@@ -192,5 +198,5 @@ void LoopControl::setPosition( long pos ) {
192 videoMutex->lock(); 198 videoMutex->lock();
193 audioMutex->lock(); 199 audioMutex->lock();
194 //qDebug("setting position"); 200 //odebug << "setting position" << oendl;
195 playtime.restart(); 201 playtime.restart();
196 playtime = playtime.addMSecs( -pos * 1000 / framerate ); 202 playtime = playtime.addMSecs( -pos * 1000 / framerate );
@@ -293,5 +299,5 @@ void LoopControl::startVideo() {
293 } while ( !done ); 299 } while ( !done );
294 300
295// qDebug("elapsed: %i %i (%f)", int( playtime.elapsed() ), current_frame, framerate ); 301// odebug << "elapsed: " << int( playtime.elapsed() ) << " " << current_frame << " (" << framerate << ")" << oendl;
296 302
297 } else { 303 } else {
@@ -308,5 +314,5 @@ void LoopControl::startVideo() {
308 videoMutex->lock(); 314 videoMutex->lock();
309 if ( current_frame > prev_frame + 1 ) { 315 if ( current_frame > prev_frame + 1 ) {
310 // qDebug("skipped a frame"); 316 // odebug << "skipped a frame" << oendl;
311 mediaPlayerState->curDecoder()->videoSetFrame( current_frame, stream ); 317 mediaPlayerState->curDecoder()->videoSetFrame( current_frame, stream );
312 } 318 }
@@ -342,5 +348,5 @@ void LoopControl::startAudio() {
342 348
343// if ( currentSample != audioSampleCounter + 1 ) 349// if ( currentSample != audioSampleCounter + 1 )
344// qDebug("out of sync with decoder %i %i", currentSample, audioSampleCounter); 350// odebug << "out of sync with decoder " << currentSample << " " << audioSampleCounter << "" << oendl;
345 audioMutex->unlock(); 351 audioMutex->unlock();
346 352
@@ -366,10 +372,10 @@ void LoopControl::startAudio() {
366 372
367 if ( sampleWaitTime >= 0 && sampleWaitTime <= 2000 ) { 373 if ( sampleWaitTime >= 0 && sampleWaitTime <= 2000 ) {
368 //qDebug("sampleWaitTime: %i", sampleWaitTime); 374 //odebug << "sampleWaitTime: " << sampleWaitTime << "" << oendl;
369 usleep( ( sampleWaitTime * 1000000 ) / ( freq ) ); 375 usleep( ( sampleWaitTime * 1000000 ) / ( freq ) );
370 } else { 376 } else {
371 audioMutex->lock(); 377 audioMutex->lock();
372 if ( sampleWaitTime <= -2000 ) { 378 if ( sampleWaitTime <= -2000 ) {
373 // qDebug("need to catch up by: %li (%i,%li)", -sampleWaitTime, currentSample, sampleWeShouldBeAt ); 379 // odebug << "need to catch up by: " << -sampleWaitTime << " (" << currentSample << "," << sampleWeShouldBeAt << ")" << oendl;
374 mediaPlayerState->curDecoder()->audioSetSample( sampleWeShouldBeAt, stream ); 380 mediaPlayerState->curDecoder()->audioSetSample( sampleWeShouldBeAt, stream );
375 currentSample = sampleWeShouldBeAt; 381 currentSample = sampleWeShouldBeAt;
@@ -388,6 +394,6 @@ void LoopControl::startAudio() {
388 emitChangePos = TRUE; 394 emitChangePos = TRUE;
389 395
390 //qDebug("currentSample: %i audioSampleCounter: %i total_audio_samples: %i", currentSample, audioSampleCounter, total_audio_samples); 396 //odebug << "currentSample: " << currentSample << " audioSampleCounter: " << audioSampleCounter << " total_audio_samples: " << total_audio_samples << "" << oendl;
391// qDebug("current: %i counter: %i total: %i", currentSample, audioSampleCounter, (int)total_audio_samples); 397// odebug << "current: " << currentSample << " counter: " << audioSampleCounter << " total: " << (int)total_audio_samples << "" << oendl;
392 moreAudio = audioSampleCounter <= total_audio_samples; 398 moreAudio = audioSampleCounter <= total_audio_samples;
393 399
@@ -402,5 +408,5 @@ void LoopControl::startAudio() {
402 } 408 }
403 409
404 // qDebug( "End of file" ); 410 // odebug << "End of file" << oendl;
405 411
406 if ( !moreVideo && !moreAudio ) 412 if ( !moreVideo && !moreAudio )
@@ -416,5 +422,5 @@ void LoopControl::killTimers() {
416 void *thread_result = 0; 422 void *thread_result = 0;
417 if ( pthread_join(video_tid,&thread_result) != 0 ) 423 if ( pthread_join(video_tid,&thread_result) != 0 )
418 // qDebug("thread join error 1"); 424 // odebug << "thread join error 1" << oendl;
419 pthread_attr_destroy(&video_attr); 425 pthread_attr_destroy(&video_attr);
420 } 426 }
@@ -426,5 +432,5 @@ void LoopControl::killTimers() {
426 void *thread_result = 0; 432 void *thread_result = 0;
427 if ( pthread_join(audio_tid,&thread_result) != 0 ) 433 if ( pthread_join(audio_tid,&thread_result) != 0 )
428 // qDebug("thread join error 2"); 434 // odebug << "thread join error 2" << oendl;
429 pthread_attr_destroy(&audio_attr); 435 pthread_attr_destroy(&audio_attr);
430 } 436 }
@@ -448,5 +454,5 @@ void LoopControl::startTimers() {
448#ifdef USE_REALTIME_AUDIO_THREAD 454#ifdef USE_REALTIME_AUDIO_THREAD
449 pthread_attr_setschedpolicy(&audio_attr,SCHED_RR); // Real-time round robin 455 pthread_attr_setschedpolicy(&audio_attr,SCHED_RR); // Real-time round robin
450 //qDebug("min: %i, max: %i", sched_get_priority_min( SCHED_RR ), sched_get_priority_max( SCHED_RR ) ); 456 //odebug << "min: " << sched_get_priority_min( SCHED_RR ) << ", max: " << sched_get_priority_max( SCHED_RR ) << "" << oendl;
451 sched_param params; 457 sched_param params;
452 params.sched_priority = 50; 458 params.sched_priority = 50;
@@ -513,5 +519,5 @@ bool LoopControl::init( const QString& filename ) {
513 current_frame = total_video_frames = total_audio_samples = 0; 519 current_frame = total_video_frames = total_audio_samples = 0;
514 520
515 // qDebug( "Using the %s decoder", mediaPlayerState->curDecoder()->pluginName() ); 521 // odebug << "Using the " << mediaPlayerState->curDecoder()->pluginName() << " decoder" << oendl;
516 522
517 // ### Hack to use libmpeg3plugin to get the number of audio samples if we are using the libmad plugin 523 // ### Hack to use libmpeg3plugin to get the number of audio samples if we are using the libmad plugin