summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/frame.cpp51
-rw-r--r--noncore/multimedia/opieplayer2/frame.h45
-rw-r--r--noncore/multimedia/opieplayer2/lib.cpp8
-rw-r--r--noncore/multimedia/opieplayer2/lib.h10
-rw-r--r--noncore/multimedia/opieplayer2/opieplayer2.pro4
-rw-r--r--noncore/multimedia/opieplayer2/zeckeplayer.pro13
6 files changed, 4 insertions, 127 deletions
diff --git a/noncore/multimedia/opieplayer2/frame.cpp b/noncore/multimedia/opieplayer2/frame.cpp
deleted file mode 100644
index 3a3e418..0000000
--- a/noncore/multimedia/opieplayer2/frame.cpp
+++ b/dev/null
@@ -1,51 +0,0 @@
-
-#include "frame.h"
-
-using namespace XINE;
-
-Frame::Frame() {
- m_height = 0;
- m_width = 0;
- m_ratioCode = 0;
- m_format = 0;
- m_u = 0;
- m_y = 0;
- m_v = 0;
-}
-Frame::Frame( int *width, int* height,
- int *ratio_code, int *format,
- uint8_t **y, uint8_t **u,
- uint8_t **v ) {
- m_width = width;
- m_height = height;
- m_ratioCode = ratio_code ;
- m_format = format;
- m_y = y;
- m_u = u;
- m_v = v;
-}
-Frame::~Frame() {
-
-
-}
-void Frame::setHeight( int* height ) {
- m_height = height;
-}
-void Frame::setWidth( int* width ) {
- m_width = width;
-}
-void Frame::setRatioCode( int* ratio ) {
- m_ratioCode = ratio;
-}
-void Frame::setFormat( int* format ) {
- m_format = format;
-}
-void Frame::setU( uint8_t** u ) {
- m_u = u;
-}
-void Frame::setY( uint8_t** y ) {
- m_y = y;
-}
-void Frame::setV( uint8_t** v ) {
- m_v = v;
-}
diff --git a/noncore/multimedia/opieplayer2/frame.h b/noncore/multimedia/opieplayer2/frame.h
deleted file mode 100644
index 0ce7feb..0000000
--- a/noncore/multimedia/opieplayer2/frame.h
+++ b/dev/null
@@ -1,45 +0,0 @@
-
-#ifndef XINELIBFRAME_H
-#define XINELIBFRAME_H
-
-#include <xine.h>
-
-namespace XINE {
- class Frame {
- public:
- Frame();
- Frame( int *width, int* height,
- int *ratio_code, int *format,
- uint8_t **y, uint8_t **u,
- uint8_t **v );
- ~Frame();
- int* width() { return m_width; };
- int* height() { return m_height; };
-
- int* ratioCode() { return m_ratioCode; };
- int* format() { return m_format; };
- uint8_t ** y() { return m_y; };
- uint8_t ** u() { return m_u; };
- uint8_t ** v() { return m_v; };
-
- void setHeight( int* );
- void setWidth( int* );
- void setRatioCode(int *);
- void setFormat( int* );
- void setU( uint8_t** );
- void setY( uint8_t** );
- void setV( uint8_t** );
-
- private:
- friend class Lib;
- int* m_height;
- int* m_width;
- int* m_ratioCode;
- int* m_format;
- uint8_t** m_u;
- uint8_t** m_y;
- uint8_t** m_v;
- };
-};
-
-#endif
diff --git a/noncore/multimedia/opieplayer2/lib.cpp b/noncore/multimedia/opieplayer2/lib.cpp
index 9f0d448..e3289bc 100644
--- a/noncore/multimedia/opieplayer2/lib.cpp
+++ b/noncore/multimedia/opieplayer2/lib.cpp
@@ -1,83 +1,82 @@
/*
                This file is part of the Opie Project
              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
Copyright (c) 2002 LJP <>
Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
=.
.=l.
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include "xinevideowidget.h"
-#include "frame.h"
#include "lib.h"
/* OPIE */
#include <opie2/odebug.h>
#include <qpe/global.h>
/* QT */
#include <qtextstream.h>
#include <qdir.h>
#include <qgfx_qws.h>
/* STD */
#include <assert.h>
#include <unistd.h>
typedef void (*display_xine_frame_t) (void *user_data, uint8_t* frame,
int width, int height,int bytes );
extern "C" {
xine_vo_driver_t* init_video_out_plugin( xine_t *xine, void* video, display_xine_frame_t, void * );
int null_is_showing_video( const xine_vo_driver_t* self );
void null_set_show_video( const xine_vo_driver_t* self, int show );
int null_is_fullscreen( const xine_vo_driver_t* self );
void null_set_fullscreen( const xine_vo_driver_t* self, int screen );
int null_is_scaling( const xine_vo_driver_t* self );
void null_set_scaling( const xine_vo_driver_t* self, int scale );
void null_set_gui_width( const xine_vo_driver_t* self, int width );
void null_set_gui_height( const xine_vo_driver_t* self, int height );
void null_set_mode( const xine_vo_driver_t* self, int depth, int rgb );
void null_set_videoGamma( const xine_vo_driver_t* self , int value );
void null_display_handler( const xine_vo_driver_t* self, display_xine_frame_t t, void* user_data );
void null_preload_decoders( xine_stream_t *stream );
}
using namespace XINE;
Lib::Lib( InitializationMode initMode, XineVideoWidget* widget )
{
m_initialized = false;
m_duringInitialization = false;
m_video = false;
m_wid = widget;
printf("Lib");
QString configPath = QDir::homeDirPath() + "/Settings/opiexine.cf";
// get the configuration
// not really OO, should be an extra class, later
@@ -262,103 +261,96 @@ int Lib::currentTime() const {
int Lib::length() const {
assert( m_initialized );
int pos, time, length;
/* 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;
}
bool Lib::isSeekable() const {
assert( m_initialized );
return xine_get_stream_info( m_stream, XINE_STREAM_INFO_SEEKABLE );
}
void Lib::seekTo( int time ) {
assert( m_initialized );
odebug << "Seeking to second " << time << oendl;
//Keep it paused if it was in that state
if ( xine_get_param( m_stream, XINE_PARAM_SPEED ) ) {
xine_play( m_stream, 0, time*1000 );
}
else {
xine_play( m_stream, 0, time*1000 );
xine_set_param( m_stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE );
}
}
-Frame Lib::currentFrame() const {
- assert( m_initialized );
-
- Frame frame;
- return frame;
-};
-
QString Lib::metaInfo( int number) const {
assert( m_initialized );
return xine_get_meta_info( m_stream, number );
}
int Lib::error() const {
assert( m_initialized );
return xine_get_error( m_stream );
};
void Lib::ensureInitialized()
{
if ( m_initialized )
return;
odebug << "waiting for initialization thread to finish" << oendl;
wait();
odebug << "initialization thread finished!" << oendl;
}
void Lib::setWidget( XineVideoWidget *widget )
{
m_wid = widget;
resize ( m_wid-> size ( ) );
::null_set_mode( m_videoOutput, qt_screen->depth(), qt_screen->pixelType() );
m_wid->repaint();
}
void Lib::receiveMessage( ThreadUtil::ChannelMessage *msg, SendType sendType )
{
assert( sendType == ThreadUtil::Channel::OneWay );
handleXineEvent( msg->type(), msg->data(), msg->msg() );
delete msg;
}
void Lib::handleXineEvent( const xine_event_t* t ) {
int prog = -1; const char* name = 0;
if ( t->type == XINE_EVENT_PROGRESS ) {
xine_progress_data_t *pt = static_cast<xine_progress_data_t*>( t->data );
prog = pt->percent;
name = pt->description;
}
send( new ThreadUtil::ChannelMessage( t->type, prog, name ), OneWay );
}
diff --git a/noncore/multimedia/opieplayer2/lib.h b/noncore/multimedia/opieplayer2/lib.h
index dfddc2a..ab432a0 100644
--- a/noncore/multimedia/opieplayer2/lib.h
+++ b/noncore/multimedia/opieplayer2/lib.h
@@ -1,100 +1,99 @@
/*
                This file is part of the Opie Project
              Copyright (c) 2002 Max Reiss <harlekin@handhelds.org>
Copyright (c) 2002 LJP <>
Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
=.
.=l.
           .>+-=
 _;:,     .>    :=|. This program is free software; you can
.> <`_,   >  .   <= redistribute it and/or modify it under
:`=1 )Y*s>-.--   : the terms of the GNU General Public
.="- .-=="i,     .._ License as published by the Free Software
 - .   .-<_>     .<> Foundation; either version 2 of the License,
     ._= =}       : or (at your option) any later version.
    .%`+i>       _;_.
    .i_,=:_.      -<s. This program is distributed in the hope that
     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
    : ..    .:,     . . . without even the implied warranty of
    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
..}^=.=       =       ; Library General Public License for more
++=   -.     .`     .: details.
 :     =  ...= . :.=-
 -.   .:....=;==+<; You should have received a copy of the GNU
  -_. . .   )=.  = Library General Public License along with
    --        :-=` this library; see the file COPYING.LIB.
If not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
-#ifndef ZECKEXINELIB_H
-#define ZECKEXINELIB_H
+#ifndef XINE_VIDEO_LIB_H
+#define XINE_VIDEO_LIB_H
#include <xine.h>
#include "threadutil.h"
class XineVideoWidget;
namespace XINE {
/**
* Lib wrapps the simple interface
* of libxine for easy every day use
* This will become a full C++ Wrapper
* It supports playing, pausing, info,
* stooping, seeking.
*/
- class Frame;
class Lib : public ThreadUtil::Channel, private ThreadUtil::Thread
{
Q_OBJECT
public:
enum InitializationMode { InitializeImmediately, InitializeInThread };
Lib( InitializationMode initMode, XineVideoWidget* = 0);
~Lib();
static int majorVersion();
static int minorVersion();
static int subVersion();
void resize ( const QSize &s );
int play( const QString& fileName,
int startPos = 0,
int start_time = 0 );
void stop();
void pause( bool toggle );
int speed() const;
/**
* Set the speed of the stream, if codec supports it
* XINE_SPEED_PAUSE 0
* XINE_SPEED_SLOW_4 1
* XINE_SPEED_SLOW_2 2
* XINE_SPEED_NORMAL 4
* XINE_SPEED_FAST_2 8
*XINE_SPEED_FAST_4 16
*/
void setSpeed( int speed = XINE_SPEED_PAUSE );
int status() const;
int currentPosition()const;
//in seconds
int currentTime()const;
int length() const;
bool isSeekable()const;
/**
* Whether or not to show video output
*/
@@ -114,101 +113,96 @@ namespace XINE {
*
*/
bool isVideoFullScreen() const;
/**
* Get the meta info (like author etc) from the stream
* XINE_META_INFO_TITLE 0
* XINE_META_INFO_COMMENT 1
* XINE_META_INFO_ARTIST 2
* XINE_META_INFO_GENRE 3
* XINE_META_INFO_ALBUM 4
* XINE_META_INFO_YEAR 5
* XINE_META_INFO_VIDEOCODEC 6
* XINE_META_INFO_AUDIOCODEC 7
* XINE_META_INFO_SYSTEMLAYER 8
* XINE_META_INFO_INPUT_PLUGIN 9
*/
QString metaInfo( int number ) const;
/**
*
*/
bool isScaling() const;
/**
* seek to a position
*/
void seekTo( int time );
/**
*
* @return is media stream has video
*/
bool hasVideo() const;
/**
*
*/
void setScaling( bool );
/**
* Set the Gamma value for video output
* @param int the value between -100 and 100, 0 is original
*/
void setGamma( int );
/**
- * test
- */
- Frame currentFrame() const;
-
- /**
* Returns the error code
* XINE_ERROR_NONE 0
* XINE_ERROR_NO_INPUT_PLUGIN 1
* XINE_ERROR_NO_DEMUXER_PLUGIN 2
* XINE_ERROR_DEMUXER_FAILED 3
*/
int error() const;
void ensureInitialized();
void setWidget( XineVideoWidget *widget );
signals:
void stopped();
void initialized();
protected:
virtual void receiveMessage( ThreadUtil::ChannelMessage *msg, SendType sendType );
virtual void run();
private:
void initialize();
int m_bytes_per_pixel;
bool m_initialized:1;
bool m_duringInitialization:1;
bool m_video:1;
XineVideoWidget *m_wid;
xine_t *m_xine;
xine_stream_t *m_stream;
xine_cfg_entry_t *m_config;
xine_vo_driver_t *m_videoOutput;
xine_ao_driver_t* m_audioOutput;
xine_event_queue_t *m_queue;
void handleXineEvent( const xine_event_t* t );
void handleXineEvent( int type, int data, const char* name );
void drawFrame( uint8_t* frame, int width, int height, int bytes );
// C -> C++ bridge for the event system
static void xine_event_handler( void* user_data, const xine_event_t* t);
static void xine_display_frame( void* user_data, uint8_t* frame ,
int width, int height, int bytes );
};
};
diff --git a/noncore/multimedia/opieplayer2/opieplayer2.pro b/noncore/multimedia/opieplayer2/opieplayer2.pro
index cd103ee..af7fc5d 100644
--- a/noncore/multimedia/opieplayer2/opieplayer2.pro
+++ b/noncore/multimedia/opieplayer2/opieplayer2.pro
@@ -1,29 +1,29 @@
CONFIG = qt warn_on quick-app
HEADERS = playlistselection.h mediaplayerstate.h xinecontrol.h \
videowidget.h audiowidget.h playlistwidget.h om3u.h mediaplayer.h inputDialog.h \
- frame.h lib.h xinevideowidget.h volumecontrol.h playlistwidgetgui.h\
+ lib.h xinevideowidget.h volumecontrol.h playlistwidgetgui.h\
alphablend.h yuv2rgb.h threadutil.h mediawidget.h playlistview.h playlistfileview.h \
skin.h
SOURCES = main.cpp \
playlistselection.cpp mediaplayerstate.cpp xinecontrol.cpp \
videowidget.cpp audiowidget.cpp playlistwidget.cpp om3u.cpp mediaplayer.cpp inputDialog.cpp \
- frame.cpp lib.cpp nullvideo.c xinevideowidget.cpp volumecontrol.cpp \
+ lib.cpp nullvideo.c xinevideowidget.cpp volumecontrol.cpp \
playlistwidgetgui.cpp\
alphablend.c yuv2rgb.c yuv2rgb_arm2.c yuv2rgb_arm4l.S \
threadutil.cpp mediawidget.cpp playlistview.cpp playlistfileview.cpp \
skin.cpp
TARGET = opieplayer2
INCLUDEPATH += $(OPIEDIR)/include
DEPENDPATH += $(OPIEDIR)/include
LIBS += -lqpe -lpthread -lopiecore2 -lopieui2 -lqtaux2 -lxine
MOC_DIR = qpeobj
OBJECTS_DIR = qpeobj
include( $(OPIEDIR)/include.pro )
!isEmpty( LIBXINE_INC_DIR ) {
INCLUDEPATH = $$LIBXINE_INC_DIR $$INCLUDEPATH
}
!isEmpty( LIBXINE_LIB_DIR ) {
LIBS = -L$$LIBXINE_LIB_DIR $$LIBS
}
diff --git a/noncore/multimedia/opieplayer2/zeckeplayer.pro b/noncore/multimedia/opieplayer2/zeckeplayer.pro
deleted file mode 100644
index ba06081..0000000
--- a/noncore/multimedia/opieplayer2/zeckeplayer.pro
+++ b/dev/null
@@ -1,13 +0,0 @@
-TEMPLATE = app
-DESTDIR = .
-#CONFIG = qt warn_on
-CONFIG = qt warn_on
-HEADERS = frame.h lib.h
-SOURCES = alphablend.c yuv2rgb.c nullvideo.o frame.cpp lib.cpp mainTest.cpp
-INCLUDEPATH += $(OPIEDIR)/include /opt/QtPalmtop/include
-DEPENDPATH += $(OPIEDIR)/include /opt/QtPalmtop/include
-LIBS += -L/opt/QtPalmtop/lib -lxine -lxineutils
-TARGET = zeckeplayer
-
-
-include( $(OPIEDIR)/include.pro )