OBS User unknown 2007-04-14 15:42:06 +00:00 committed by Git OBS Bridge
parent 40a257c796
commit a41d5e68c3
10 changed files with 80 additions and 527 deletions

1
.gitattributes vendored
View File

@ -23,4 +23,3 @@
*.zst filter=lfs diff=lfs merge=lfs -text
## Specific LFS patterns
logo.ogg filter=lfs diff=lfs merge=lfs -text
logo04.mpg filter=lfs diff=lfs merge=lfs -text

View File

@ -1,11 +0,0 @@
--- po/de.po 2006/11/27 09:58:23 1.1
+++ po/de.po 2006/11/27 09:58:55
@@ -1936,7 +1936,7 @@
#: kaffeine.cpp:193
msgid "Player Window"
-msgstr "Wiedergabe-Fenster andocken"
+msgstr "Wiedergabe-Fenster"
#: kaffeine.cpp:219
msgid "Supported Media Formats"

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:42719f4eab6a27a06ec247369424f5a9d796fca74672573c467d024983a861b2
size 2940941

3
kaffeine-0.8.4.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a15ad9f6b154ef1c83f3d0e818f94efd7ba6c2ae4e6affcc9d28afacb701df74
size 2903979

View File

@ -1,472 +0,0 @@
--- configure.in 2006/12/05 09:02:33 1.1
+++ configure.in 2006/12/05 09:08:44
@@ -222,10 +222,10 @@
if test "$with_gstreamer" != "no" ; then
AC_MSG_CHECKING([for GStreamer])
- if "$PKG_CONFIG" --exists "gstreamer-0.8 >= 0.8.4" "gstreamer-interfaces-0.8 >= 0.8.4" ; then
+ if "$PKG_CONFIG" --exists "gstreamer-0.10 >= 0.10.4" "gstreamer-plugins-base-0.10 >= 0.10.4" ; then
with_gstreamer=yes
- CFLAGS_GSTREAMER=`"$PKG_CONFIG" --cflags gstreamer-0.8 gstreamer-interfaces-0.8`
- LIB_GSTREAMER=`"$PKG_CONFIG" --libs gstreamer-0.8 gstreamer-interfaces-0.8`
+ CFLAGS_GSTREAMER=`"$PKG_CONFIG" --cflags gstreamer-0.10 gstreamer-plugins-base-0.10`
+ LIB_GSTREAMER="`"$PKG_CONFIG" --libs gstreamer-0.10 gstreamer-plugins-base-0.10` -lgstinterfaces-0.10"
AC_MSG_RESULT([yes])
else
with_gstreamer=no
--- kaffeine/configure.in.in 2006/12/05 09:02:33 1.1
+++ kaffeine/configure.in.in 2006/12/05 09:10:36
@@ -142,10 +142,10 @@
if test "$with_gstreamer" != "no" ; then
AC_MSG_CHECKING([for GStreamer])
- if "$PKG_CONFIG" --exists "gstreamer-0.8 >= 0.8.4" "gstreamer-interfaces-0.8 >= 0.8.4" ; then
+ if "$PKG_CONFIG" --exists "gstreamer-0.10 >= 0.10.4" "gstreamer-plugins-base-0.10 >= 0.10.4" ; then
with_gstreamer=yes
- CFLAGS_GSTREAMER=`"$PKG_CONFIG" --cflags gstreamer-0.8 gstreamer-interfaces-0.8`
- LIB_GSTREAMER=`"$PKG_CONFIG" --libs gstreamer-0.8 gstreamer-interfaces-0.8`
+ CFLAGS_GSTREAMER=`"$PKG_CONFIG" --cflags gstreamer-0.10 gstreamer-plugins-base-0.10`
+ LIB_GSTREAMER="`"$PKG_CONFIG" --libs gstreamer-0.10 gstreamer-plugins-base-0.10` -lgstinterfaces-0.10"
AC_MSG_RESULT([yes])
else
with_gstreamer=no
--- kaffeine/src/player-parts/gstreamer-part/gstreamer_part.cpp
+++ kaffeine/src/player-parts/gstreamer-part/gstreamer_part.cpp
@@ -361,6 +361,7 @@
}
gchar *uri = g_strdup(url.local8Bit());
kdDebug() << "GStreamerPart: play URL: " << uri << endl;
+ g_message ("GST Uri %s", uri);
g_object_set(G_OBJECT(m_play), "uri", uri, NULL);
g_free(uri);
@@ -386,7 +387,7 @@
g_object_set(G_OBJECT(m_play), "suburi", NULL, NULL);
}
- if (gst_element_set_state(m_play, GST_STATE_PLAYING) != GST_STATE_SUCCESS)
+ if (!gst_element_set_state(m_play, GST_STATE_PLAYING))
{
// KMessageBox::error(0, i18n("Playback failed. Reason unknown."));
// if (m_url != m_logoPath)
@@ -421,12 +422,12 @@
gst_object_unref(GST_OBJECT (cdda));
return;
}
- if (gst_element_set_state(cdda, GST_STATE_PAUSED) != GST_STATE_SUCCESS)
+ if (!gst_element_set_state(cdda, GST_STATE_PAUSED))
{
gst_object_unref(GST_OBJECT (cdda));
return;
}
- if (!gst_pad_query (gst_element_get_pad(cdda, "src"), GST_QUERY_TOTAL, &fmt, &tracks))
+ if (!gst_element_query_duration (cdda, &fmt, &tracks))
{
gst_element_set_state(cdda, GST_STATE_NULL);
gst_object_unref(GST_OBJECT (cdda));
@@ -545,7 +546,8 @@
emit setStatusBarText(i18n("Mute") + ": " + i18n("On"));
else
emit setStatusBarText(i18n("Mute") + ": " + i18n("Off"));
- g_object_set(G_OBJECT(m_audiosink), "mute", m_mute, NULL);
+ // FIXME this is not really muting
+ g_object_set(G_OBJECT(m_play), "volume", m_mute ? 0.0 : 2.0, NULL);
}
void GStreamerPart::gstStateChanged()
@@ -702,9 +704,51 @@
GstElement* visual = gst_element_factory_make (name.ascii(), "visualization");
if (visual)
{
- g_object_set(G_OBJECT (m_play), "vis-plugin", visual, NULL);
- g_object_unref(m_visual);
- m_visual = visual;
+ GstElement *vis_bin, *vis_capsfilter = NULL;
+ GstPad *pad = NULL;
+ GstCaps *caps = NULL;
+
+ vis_capsfilter = gst_element_factory_make ("capsfilter", "vis_capsfilter");
+ if (!GST_IS_ELEMENT (vis_capsfilter)) {
+ kdWarning() << "GStreamer: Initialization of visualization capsfilter failed (" << name << ")" << endl;
+ }
+
+ vis_bin = gst_bin_new ("vis_bin");
+ if (!GST_IS_ELEMENT (vis_bin)) {
+ kdWarning() << "GStreamer: Initialization of visualization bin failed (" << name << ")" << endl;
+ }
+
+ gst_bin_add_many (GST_BIN (vis_bin), visual, vis_capsfilter, NULL);
+
+ /* Sink ghostpad */
+ pad = gst_element_get_pad (visual, "sink");
+ gst_element_add_pad (vis_bin, gst_ghost_pad_new ("sink", pad));
+ gst_object_unref (pad);
+
+ /* Source ghostpad, link with visual */
+ pad = gst_element_get_pad (vis_capsfilter, "src");
+ gst_element_add_pad (vis_bin, gst_ghost_pad_new ("src", pad));
+ gst_element_link_pads (visual, "src", vis_capsfilter, "sink");
+ gst_object_unref (pad);
+
+ /* Get allowed output caps from visualisation element */
+ pad = gst_element_get_pad (visual, "src");
+ caps = gst_pad_get_allowed_caps (pad);
+ gst_object_unref (pad);
+
+ if (caps && !gst_caps_is_fixed (caps)) {
+ g_object_set (vis_capsfilter, "caps", caps, NULL);
+ }
+
+ GST_DEBUG ("visualisation caps: %" GST_PTR_FORMAT, caps);
+ if (GST_IS_CAPS (caps)) {
+ gst_caps_unref (caps);
+ }
+
+ g_object_set(G_OBJECT (m_play), "vis-plugin", vis_bin, NULL);
+ if (m_visual)
+ g_object_unref(m_visual);
+ m_visual = vis_bin;
m_visualPluginName = name;
}
else
@@ -877,27 +921,21 @@
*/
bool GStreamerPart::initGStreamer()
{
- if (!gst_init_check(NULL, NULL))
+ GstBus *bus;
+
+ if (!gst_init_check(NULL, NULL, NULL))
{
KMessageBox::error(0, i18n("GStreamer could not be initialized!"));
return false;
}
- // Check if registry exists
- GstElement* dummy = gst_element_factory_make("fakesink", "fakesink");
- if (!dummy || !gst_scheduler_factory_make( NULL, GST_ELEMENT(dummy)))
- {
- KMessageBox::error(0, i18n("Missing GStreamer-registry! Did you forget to run <b>gst-register</b> (as root) after installation?"));
- return false;
- }
-
/* check GStreamer version */
- guint maj, min, mic;
- gst_version(&maj, &min, &mic);
- kdDebug() << "GStreamerPart: Found GStreamer version " << maj << "." << min << "." << mic << endl << endl;
+ guint maj, min, mic, nan;
+ gst_version(&maj, &min, &mic, &nan);
+ kdDebug() << "GStreamerPart: Found GStreamer version " << maj << "." << min << "." << mic << "." << nan << endl << endl;
/* check for visualization plugins */
- GList* factories = gst_registry_pool_feature_list(GST_TYPE_ELEMENT_FACTORY);
+ GList* factories = gst_registry_get_feature_list (gst_registry_get_default (), GST_TYPE_ELEMENT_FACTORY);
QString name, cat;
while (factories)
{
@@ -912,7 +950,7 @@
m_videoPluginList.append(name);
factories = g_list_next(factories);
}
- g_list_free(factories);
+ gst_plugin_feature_list_free(factories);
/* initialize GStreamer objects */
m_play = gst_element_factory_make ("playbin", "player");
@@ -967,21 +1005,20 @@
/*
* Visualization
*/
- kdDebug() << "GStreamerPart: Using visualization plugin: " << m_visualPluginName << endl;
- if (m_visualPluginName != "none")
- {
- m_visual = gst_element_factory_make (m_visualPluginName.ascii(), "visualization");
- if (!m_visual)
- kdWarning() << "GStreamer: Initialization of visualization plugin failed" << endl;
- }
+ slotSetVisualPlugin (m_visualPluginName);
- g_object_set(G_OBJECT(m_play), "video-sink", m_videosink, "audio-sink", m_audiosink, "vis-plugin", m_visual, NULL);
+ g_object_set(G_OBJECT(m_play), "video-sink", m_videosink, "audio-sink", m_audiosink, NULL);
//subtitle font
//g_object_set(G_OBJECT(m_play), "subtitle-font-desc", "sans normal 14", NULL);
- g_signal_connect(m_play, "error", G_CALLBACK (cb_error), this);
- g_signal_connect(m_play, "found-tag", G_CALLBACK (cb_foundtag), this);
- g_signal_connect(m_play, "eos", G_CALLBACK (cb_eos), this);
- g_signal_connect(m_play, "state-change", G_CALLBACK (cb_state), this);
+
+ bus = gst_element_get_bus(m_play);
+ gst_bus_add_signal_watch(bus);
+ g_signal_connect(bus, "message::error", G_CALLBACK (cb_error), this);
+ g_signal_connect(bus, "message::tag", G_CALLBACK (cb_foundtag), this);
+ g_signal_connect(bus, "message::eos", G_CALLBACK (cb_eos), this);
+ g_signal_connect(bus, "message::state-changed", G_CALLBACK (cb_state), this);
+
+ /* FIXME Where is this signal now */
g_signal_connect(m_play, "notify::source", G_CALLBACK(got_source), this);
gst_element_set_state(m_play, GST_STATE_READY);
return true;
@@ -989,23 +1026,28 @@
/******************* CALLBACKS ************************/
-void GStreamerPart::cb_error(GstElement* /*play*/, GstElement* /*src*/, GError *err, const char *debug, gpointer data)
+void GStreamerPart::cb_error(GstBus* /*bus*/, GstMessage *message, gpointer data)
{
GStreamerPart* gp = (GStreamerPart*)data;
+ GError *err = NULL;
+
+ gst_message_parse_error (message, &err, NULL);
gp->m_errorMsg = err->message;
- gp->m_errorDetails = debug;
+ gp->m_errorDetails = "";
QApplication::postEvent(gp, new QTimerEvent(TIMER_EVENT_ERROR));
}
-void GStreamerPart::cb_foundtag(GstElement* /*play*/, GstElement* /*src*/, const GstTagList *taglist, gpointer data)
+void GStreamerPart::cb_foundtag(GstBus* /*bus*/, GstMessage *message, gpointer data)
{
GStreamerPart* gp = (GStreamerPart*)data;
+ GstTagList *taglist;
kdDebug() << " Received meta tags..." << endl;
char* string;
guint intVal = 0;
bool success = false;
+ gst_message_parse_tag (message, &taglist);
if (gst_tag_list_get_string(taglist, GST_TAG_TITLE, &string) && string)
{
gp->m_title = string;
@@ -1052,21 +1094,25 @@
gp->m_videoCodec = string;
//kdDebug() << "GStreamerPart: 'Video Codec': " << string << endl;
}
-
+ gst_tag_list_free(taglist);
+
if (success)
QApplication::postEvent(gp, new QTimerEvent(TIMER_EVENT_FOUND_TAG));
}
-void GStreamerPart::cb_eos (GstElement* /*play*/, gpointer data)
+void GStreamerPart::cb_eos (GstBus* /*bus*/, GstMessage* /*message*/, gpointer data)
{
GStreamerPart* gp = (GStreamerPart*)data;
QApplication::postEvent(gp, new QTimerEvent(TIMER_EVENT_PLAYBACK_FINISHED));
}
-void GStreamerPart::cb_state(GstElement* /*play*/, GstElementState /*old_state*/, GstElementState new_state, gpointer data)
+void GStreamerPart::cb_state(GstBus* /*bus*/, GstMessage *message, gpointer data)
{
+ GstState old_state, new_state;
+
//kdDebug() << "GStreamerPart: state changed callback" << endl;
GStreamerPart* gp = (GStreamerPart*)data;
+ gst_message_parse_state_changed(message, &old_state, &new_state, NULL);
gp->m_newState = new_state;
QApplication::postEvent(gp, new QTimerEvent(TIMER_EVENT_NEW_STATE));
}
--- kaffeine/src/player-parts/gstreamer-part/gstreamer_part.h
+++ kaffeine/src/player-parts/gstreamer-part/gstreamer_part.h
@@ -102,10 +102,10 @@
void setAudioSink(QString sinkName);
//callbacks
- static void cb_error (GstElement *play, GstElement *src, GError *err, const char *debug, gpointer data);
- static void cb_foundtag (GstElement *play, GstElement *src, const GstTagList *list, gpointer data);
- static void cb_eos (GstElement *play, gpointer data);
- static void cb_state (GstElement *play, GstElementState old_state, GstElementState new_state, gpointer data);
+ static void cb_error (GstBus *bus, GstMessage *message, gpointer data);
+ static void cb_foundtag (GstBus *bus, GstMessage *message, gpointer data);
+ static void cb_eos (GstBus *bus, GstMessage *message, gpointer data);
+ static void cb_state (GstBus *bus, GstMessage *message, gpointer data);
static void got_source (GstElement* play, GParamSpec* pspec, gpointer data);
private:
@@ -113,7 +113,7 @@
GstElement* m_videosink;
GstElement* m_audiosink;
GstElement* m_visual;
- GstElementState m_newState;
+ GstState m_newState;
VideoWindow* m_video;
Timer* m_timer;
--- kaffeine/src/player-parts/gstreamer-part/timer.cpp
+++ kaffeine/src/player-parts/gstreamer-part/timer.cpp
@@ -40,6 +40,8 @@
Timer::Timer(GstElement *_play) : QObject()
{
+ GstBus *bus;
+
m_label = new QLabel("0:00 / 0:00", 0);
m_slider = new QSlider(Qt::Horizontal, 0);
m_slider->setMinValue(0);
@@ -49,7 +51,10 @@
gst_object_ref(GST_OBJECT(_play));
m_play = _play;
- g_signal_connect(m_play, "state-change", G_CALLBACK (cb_state), this);
+
+ bus = gst_element_get_bus(m_play);
+ gst_bus_add_signal_watch(bus);
+ g_signal_connect(bus, "message::state-changed", G_CALLBACK (cb_state), this);
m_pos = GST_CLOCK_TIME_NONE;
m_len = GST_CLOCK_TIME_NONE;
@@ -77,9 +82,8 @@
/* do actual seek */
gint64 val = m_slider->value ();
- gst_element_seek (m_play, (GstSeekType) (GST_SEEK_METHOD_SET |
- GST_FORMAT_TIME | GST_SEEK_FLAG_FLUSH),
- val * GST_SECOND);
+ gst_element_seek (m_play, 1.0, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH,
+ GST_SEEK_TYPE_SET, val * GST_SECOND, GST_SEEK_TYPE_NONE, -1);
}
static char *niceTime(guint64 t)
@@ -130,7 +134,7 @@
/* get media m_length if not yet known */
if (!GST_CLOCK_TIME_IS_VALID (m_len))
{
- if (gst_element_query (m_play, GST_QUERY_TOTAL, &fmt, &t))
+ if (gst_element_query_duration (m_play, &fmt, &t))
{
m_len = t;
m_len_change = TRUE;
@@ -139,7 +143,7 @@
}
/* get m_position in the media now */
- if (!gst_element_query (m_play, GST_QUERY_POSITION, &fmt, &t))
+ if (!gst_element_query_position (m_play, &fmt, &t))
return;
if (!GST_CLOCK_TIME_IS_VALID (m_pos) || (int) (m_pos / GST_SECOND) != (int) (t / GST_SECOND))
@@ -173,7 +177,7 @@
m_slider->setValue (m_pos / GST_SECOND);
}
-void Timer::newState(GstElementState old_state, GstElementState new_state)
+void Timer::newState(GstState old_state, GstState new_state)
{
if (old_state <= GST_STATE_PAUSED && new_state >= GST_STATE_PLAYING)
{
@@ -207,8 +211,11 @@
/************ CALLBACKS ****************/
-void Timer::cb_state(GstElement* /*play*/, GstElementState old_state, GstElementState new_state, gpointer data)
+void Timer::cb_state(GstBus */*bus*/, GstMessage *message, gpointer data)
{
+ GstState old_state, new_state;
+
+ gst_message_parse_state_changed (message, &old_state, &new_state, NULL);
((Timer*)data)->newState(old_state, new_state);
}
--- kaffeine/src/player-parts/gstreamer-part/timer.h
+++ kaffeine/src/player-parts/gstreamer-part/timer.h
@@ -63,10 +63,10 @@
void slotEndseek();
private:
- void newState(GstElementState old_state, GstElementState new_state);
+ void newState(GstState old_state, GstState new_state);
//callbacks
- static void cb_state (GstElement* play, GstElementState old_state, GstElementState new_state, gpointer data);
+ static void cb_state (GstBus*, GstMessage *message, gpointer data);
private:
QTimer *m_timer;
--- kaffeine/src/player-parts/gstreamer-part/video.cpp
+++ kaffeine/src/player-parts/gstreamer-part/video.cpp
@@ -35,7 +35,7 @@
#include <kmenubar.h>
#include <kdebug.h>
-#include <gst/xoverlay/xoverlay.h>
+#include <gst/interfaces/xoverlay.h>
#include "video.h"
@@ -45,9 +45,14 @@
VideoWindow::VideoWindow(QWidget *parent, GstElement *_element, GstElement *_play)
: QWidget (parent), m_width(0), m_height(0), m_aspectRatio(AUTO)
{
+ GstBus *bus;
+
gst_object_ref(GST_OBJECT(_play));
m_play = _play;
- g_signal_connect(m_play, "state-change", G_CALLBACK (cb_state), this);
+
+ bus = gst_element_get_bus(m_play);
+ gst_bus_add_signal_watch(bus);
+ g_signal_connect(bus, "message::state-changed", G_CALLBACK (cb_state), this);
gst_object_ref(GST_OBJECT (_element));
m_element = _element;
@@ -132,7 +137,7 @@
setGeometry();
}
-void VideoWindow::newState(GstElementState old_state, GstElementState new_state)
+void VideoWindow::newState(GstState old_state, GstState new_state)
{
if (old_state <= GST_STATE_READY && new_state >= GST_STATE_PAUSED)
{
@@ -153,14 +158,14 @@
if (strstr(val->value_name, "VIDEO"))
{
- g_object_get (info, "object", &pad, NULL);
- pad = (GstPad *) GST_PAD_REALIZE (pad);
+ g_object_get (info, "pad", &pad, NULL);
if (GST_PAD_CAPS (pad))
{
cb_capsset(pad, NULL, this);
}
else
{
+ /* FIXME Where does this map to now? */
g_signal_connect(pad, "notify::caps", G_CALLBACK(cb_capsset), this);
}
}
@@ -303,9 +308,12 @@
/***************** CALLBACKS ********************/
-void VideoWindow::cb_state(GstElement */*play*/, GstElementState old_state, GstElementState new_state, gpointer data)
+void VideoWindow::cb_state(GstBus */*bus*/, GstMessage *message, gpointer data)
{
+ GstState old_state, new_state;
+
//kdDebug() << "VideoWindow: state changed callback" << endl;
+ gst_message_parse_state_changed(message, &old_state, &new_state, NULL);
((VideoWindow *)data)->newState (old_state, new_state);
}
--- kaffeine/src/player-parts/gstreamer-part/video.h
+++ kaffeine/src/player-parts/gstreamer-part/video.h
@@ -51,7 +51,7 @@
SQUARE
};
- void newState (GstElementState old_state, GstElementState new_state);
+ void newState (GstState old_state, GstState new_state);
void newCapsset (const GstCaps *caps);
void refresh();
@@ -91,7 +91,7 @@
private:
//callbacks
- static void cb_state (GstElement *play, GstElementState old_state, GstElementState new_state, gpointer data);
+ static void cb_state (GstBus *bus, GstMessage *message, gpointer data);
static void cb_capsset (GstPad *pad, GParamSpec *pspec, gpointer data);
private:

View File

@ -1,3 +1,33 @@
-------------------------------------------------------------------
Sat Apr 14 07:51:37 CEST 2007 - stbinner@suse.de
- update to version 0.8.4:
* Playlist: menu option to not auto switch to player window
* DVB: added osd browsing dcop calls
* xine-part: dragndrop subtitles files
* fixed: removed readonly parts support
* fixed: improve screensaver disabling method again
(old behaviour for non-kde environments)
* DVB: added a "source" column in channels list.
* Playlist: fix opening playlists
* DVB: rotors support (usals and mem_pos)
* DVB: fixed multi devices usage.
* DVB: fixed devices probing
* DVB: added tuning timeout options
* DVB: fixed OSD epg bug with diseqc settings
* DVB: use klocale for datetime format
* Playlist: fix google fetcher
* xine-part: support for xcb. Requires libxcb 1.0 and xine-lib
1.1.5. Fixes several issues.
* gstreamer-part: port to gst 0.10
* fixed: allow small window size in minimal mode
* added: allow toggling (show / hide) panels by clicking tabs
* xine-part: reduced audio/sub combos sizes
* xine-part: add volume+/- to embedded context menu.
* Playlist: don't cut bottom font in rollingtitle.
* xine-part: better "Track infos" box layout.
* xine-part: don't restore video settings if not previously saved
-------------------------------------------------------------------
Mon Dec 4 16:33:29 CET 2006 - stbinner@suse.de

View File

@ -1,23 +1,22 @@
--- kaffeine/src/kaffeine.desktop
+++ kaffeine/src/kaffeine.desktop 2005/09/06 09:01:52
@@ -19,3 +19,4 @@
Name[sv]=Kaffeine
Terminal=false
Type=Application
X-KDE-HasTempFileOption=true
+InitialPreference=4
--- kaffeine/src/player-parts/xine-part/kxinewidget.cpp
+++ kaffeine/src/player-parts/xine-part/kxinewidget.cpp 2005/09/06 09:01:52
@@ -1069,8 +1069,8 @@
globalPosChanged(); /* get global pos of the window */
/**** INIT XINE DISPLAY ****/
-
--- kaffeine/src/player-parts/xine-part/kxinewidget.cpp 2007/04/14 05:59:48 1.1
+++ kaffeine/src/player-parts/xine-part/kxinewidget.cpp 2007/04/14 06:01:37
@@ -1080,7 +1080,8 @@
/**** INIT XINE DISPLAY ****/
#ifndef HAVE_XCB
- XInitThreads();
+ // too late, it will crash for sure
+ // XInitThreads();
m_xineDisplay = XOpenDisplay( getenv("DISPLAY") );
+ // too late, it will crash for sure
+ // XInitThreads();
connection = XOpenDisplay(NULL);
#else
--- kaffeine/src/instwizard.cpp
+++ kaffeine/src/instwizard.cpp 2005/09/06 09:01:52
@@ -106,8 +106,7 @@

View File

@ -1,7 +1,7 @@
#
# spec file for package kaffeine (Version 0.8.3)
# spec file for package kaffeine (Version 0.8.4)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
@ -21,7 +21,7 @@ URL: http://kaffeine.sourceforge.net/
License: GNU General Public License (GPL)
Group: Productivity/Multimedia/Video/Players
Summary: Xine-Based Multimedia Player
Version: 0.8.3
Version: 0.8.4
Release: 1
%define rversion %version
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -29,7 +29,6 @@ Requires: kdelibs3 >= %( echo `rpm -q --queryformat '%{VERSION}' kdelibs3`
Provides: kaxtv
Obsoletes: kaxtv
Source0: %name-%rversion.tar.bz2
Source3: logo04.mpg
Source4: logo.ogg
Source5: cs.po
Patch0: %name.diff
@ -37,9 +36,7 @@ Patch1: adjust-mimetypes.diff
Patch2: messagebox-dvd.diff
Patch4: mutex.diff
Patch5: kaffeine-media.diff
Patch7: kaffeine-gstreamer-0-10.patch
Patch8: kaffeine-quote-subs.patch
Patch10: fix-german-translation.diff
%description
Kaffeine plays all files and devices supported by Xine. For example,
@ -76,11 +73,7 @@ Authors:
%patch2
%patch4
#%patch5
%if %suse_version > 1001
%patch7
%endif
%patch8
%patch10
cp %SOURCE5 po/
. /etc/opt/kde3/common_options
update_admin
@ -95,14 +88,11 @@ make %{?jobs:-j%jobs}
make DESTDIR=${RPM_BUILD_ROOT} $INSTALL_TARGET
kde_post_install
#
%if %suse_version > 910
install -m 0644 %SOURCE4 $RPM_BUILD_ROOT/opt/kde3/share/apps/kaffeine/logo.avi
%else
install -m 0644 %SOURCE3 $RPM_BUILD_ROOT/opt/kde3/share/apps/kaffeine/logo.avi
%endif
# -r to get rid of Music
%suse_update_desktop_file -r kaffeine KDE AudioVideo Player Video
rm -rf $RPM_BUILD_ROOT/opt/kde3/share/locale/xx
rm $RPM_BUILD_ROOT/opt/kde3/share/doc/HTML/en/doc/CMakeLists.txt
rm $RPM_BUILD_ROOT/opt/kde3/share/mimelnk/application/x-mplayer2.desktop
%find_lang %name
@ -129,10 +119,7 @@ rm $RPM_BUILD_ROOT/opt/kde3/share/mimelnk/application/x-mplayer2.desktop
/opt/kde3/share/services/kaffeineoggvorbis.desktop
/opt/kde3/share/servicetypes/kaffeineaudioencoder.desktop
/opt/kde3/share/servicetypes/kaffeinedvbplugin.desktop
/opt/kde3/share/doc/HTML/en/kaffeine
%if %suse_version < 930
%doc %lang(zh_CN) /opt/kde3/share/doc/HTML/zh_CN
%endif
%doc %lang(en) /opt/kde3/share/doc/HTML/en/kaffeine
%files gstreamer
%defattr(-,root,root)
@ -140,7 +127,34 @@ rm $RPM_BUILD_ROOT/opt/kde3/share/mimelnk/application/x-mplayer2.desktop
/opt/kde3/share/apps/gstreamerpart
/opt/kde3/share/services/gstreamer_part.desktop
%changelog -n kaffeine
%changelog
* Sat Apr 14 2007 - stbinner@suse.de
- update to version 0.8.4:
* Playlist: menu option to not auto switch to player window
* DVB: added osd browsing dcop calls
* xine-part: dragndrop subtitles files
* fixed: removed readonly parts support
* fixed: improve screensaver disabling method again
(old behaviour for non-kde environments)
* DVB: added a "source" column in channels list.
* Playlist: fix opening playlists
* DVB: rotors support (usals and mem_pos)
* DVB: fixed multi devices usage.
* DVB: fixed devices probing
* DVB: added tuning timeout options
* DVB: fixed OSD epg bug with diseqc settings
* DVB: use klocale for datetime format
* Playlist: fix google fetcher
* xine-part: support for xcb. Requires libxcb 1.0 and xine-lib
1.1.5. Fixes several issues.
* gstreamer-part: port to gst 0.10
* fixed: allow small window size in minimal mode
* added: allow toggling (show / hide) panels by clicking tabs
* xine-part: reduced audio/sub combos sizes
* xine-part: add volume+/- to embedded context menu.
* Playlist: don't cut bottom font in rollingtitle.
* xine-part: better "Track infos" box layout.
* xine-part: don't restore video settings if not previously saved
* Mon Dec 04 2006 - stbinner@suse.de
- update to version 0.8.3:
* DVB: selectAll button in scandialog

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a701a06fac079d1b253c123a0ac78301e1e09b6afa4376cc8882f954d8c6c370
size 312561

View File

@ -15,13 +15,10 @@
if ( reply.isValid() ) {
--- po/de.po 2006/12/05 09:33:47 1.15
+++ po/de.po 2006/12/05 09:34:21
@@ -3210,6 +3210,9 @@
@@ -3210,2 +3210,6 @@
msgid "DummyPart"
msgstr "DummyPart"
+
+msgid "This version of Xine (used by Kaffeine) has only a reduced\nset of supported codecs. It is not able to play DVDs.\nPlease read http://portal.suse.com/sdb/en/2003/09/xine_dvd.html for further details."
+msgstr "Diese Version von Xine (wird von Kaffeine benutzt) hat nur\neine limitierte Anzahl von Codecs. Daher ist es nicht möglich eine DVD anzusehen.\nBitte lesen Sie diese Seite http://en.opensuse.org/XINE für weitere Informationen."
+
#~ msgid "These channels already exist and were not added:"
#~ msgstr "Diese Kanäle existieren bereits und werden nicht hinzugefügt:"