summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer2/lib.cpp
authorkergoth <kergoth>2003-08-09 16:24:58 (UTC)
committer kergoth <kergoth>2003-08-09 16:24:58 (UTC)
commite16d333ec2e8509fc665921ca106c25325bae9e0 (patch) (side-by-side diff)
tree9e9068190a15bc9b2a52ab33b40881128f732c0e /noncore/multimedia/opieplayer2/lib.cpp
parent1c58d1407f9584fedcdae390a04e2b37e5853361 (diff)
downloadopie-e16d333ec2e8509fc665921ca106c25325bae9e0.zip
opie-e16d333ec2e8509fc665921ca106c25325bae9e0.tar.gz
opie-e16d333ec2e8509fc665921ca106c25325bae9e0.tar.bz2
Merge from BRANCH_1_0
Diffstat (limited to 'noncore/multimedia/opieplayer2/lib.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/lib.cpp59
1 files changed, 46 insertions, 13 deletions
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp
index d04af08..11ad745 100644
--- a/noncore/multimedia/opieplayer2/lib.cpp
+++ b/noncore/multimedia/opieplayer2/lib.cpp
@@ -33,9 +33,5 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <qimage.h>
+
#include <qtextstream.h>
-#include <qpe/resource.h>
-#include <qfile.h>
#include <qdir.h>
@@ -74,3 +70,3 @@ using namespace XINE;
-Lib::Lib( InitializationMode initMode, XineVideoWidget* widget )
+Lib::Lib( InitializationMode initMode, XineVideoWidget* widget )
{
@@ -90,2 +86,12 @@ Lib::Lib( InitializationMode initMode, XineVideoWidget* widget )
ts << "misc.memcpy_method:glibc\n";
+ ts << "# uncomment if you experience double speed audio \n #audio.oss_sync_method:softsync\n";
+ ts << "codec.ffmpeg_pp_quality:3\n";
+ ts << "audio.num_buffers:50\n";
+ ts << "audio.size_buffers:4160\n";
+ ts << "video.num_buffers:20\n";
+ ts << "video.size_buffers:4096\n";
+ ts << "audio.out_num_audio_buf:16\n";
+ ts << "audio.out_size_audio_buf:8096\n";
+ ts << "audio.out_size_zero_buf:1024\n";
+ ts << "audio.passthrough_offset:0\n";
f.close();
@@ -141,3 +147,3 @@ void Lib::initialize()
- ::null_preload_decoders( m_stream );
+ ::null_preload_decoders( m_stream );
@@ -193,4 +199,12 @@ int Lib::play( const QString& fileName, int startPos, int start_time ) {
assert( m_initialized );
+ // FIXME actually a hack imho. Should not be needed to dispose the whole stream
+ // but without we get wrong media length reads from libxine for the second media
+ //xine_dispose ( m_stream );
QString str = fileName.stripWhiteSpace();
+
+ //m_stream = xine_stream_new (m_xine, m_audioOutput, m_videoOutput );
+ //m_queue = xine_event_new_queue (m_stream);
+ //xine_event_create_listener_thread (m_queue, xine_event_handler, this);
+
if ( !xine_open( m_stream, QFile::encodeName(str.utf8() ).data() ) ) {
@@ -245,3 +259,7 @@ int Lib::currentTime() const {
xine_get_pos_length( m_stream, &pos, &time, &length );
- return time/1000;
+ if ( time > 0 ) {
+ return time/1000;
+ } else {
+ return 0;
+ }
}
@@ -252,4 +270,21 @@ int Lib::length() const {
int pos, time, length;
- xine_get_pos_length( m_stream, &pos, &time, &length );
- return length/1000;
+/* dilb: patch to solve the wrong stream length reported to the GUI*/
+ int iRetVal=0, iTestLoop=0;
+
+ do
+ {
+ iRetVal = xine_get_pos_length( m_stream, &pos, &time, &length );
+ if (iRetVal)
+ {/* if the function didn't return 0, then pos, time and length are valid.*/
+ return length/1000;
+ }
+ /*don't poll too much*/
+ usleep(100000);
+ iTestLoop++;
+ }
+ while ( iTestLoop < 10 ); /* if after 1s, we still don't have any
+valid stream, then return -1 (this value could be used to make the stream
+unseekable, but it should never occur!! Mr. Murphy ? :) ) */
+
+ return -1;
}
@@ -368,5 +403,3 @@ void Lib::setGamma( int value ) {
- //qDebug( QString( "%1").arg(value) );
- /* int gammaValue = ( 100 + value ); */
- ::null_set_videoGamma( m_videoOutput, value );
+ ::null_set_videoGamma( m_videoOutput, value );
}