[Xfce4-commits] <parole:master> Merge branch 'gst1.0'
Sean Davis
noreply at xfce.org
Sun Jan 13 02:00:10 CET 2013
Updating branch refs/heads/master
to f09d541cf506d68f2ed75609feabcc9c452611df (commit)
from e807ccde1975aba4af0127cef23e436bf844dd60 (commit)
commit f09d541cf506d68f2ed75609feabcc9c452611df
Merge: e807ccd 9dcfad1
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sat Jan 12 19:58:48 2013 -0500
Merge branch 'gst1.0'
Conflicts:
configure.ac.in
src/gst/parole-gst.c
src/parole-conf-dialog.c
src/parole-vis.c
commit 9dcfad1d54c334a41de562bdcb35c016a88a7a01
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sat Jan 12 19:45:11 2013 -0500
Fixed playlist segfault.
commit 4ab76cf0adabd644355fb9a7270374f9233f325f
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sat Jan 12 19:07:22 2013 -0500
Enhanced audio cover image loading, scale proportionally, store at the largest used image size.
commit fe97f8b450f55aab829e1eca5fbbe08752fe865e
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sat Jan 12 18:07:05 2013 -0500
parole-gst cleanup
commit 980788f08f626c2ac01ba6347da9a40791ac0959
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sat Jan 12 18:01:41 2013 -0500
Make codec installer transient for parole window.
commit f336ed1325b56a29bc1e94d21feb974dd62365fc
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sat Jan 12 17:43:16 2013 -0500
Return support for gstreamer 0.10
commit 5136de02435ae60d1b5401ffa5bc158535021d1d
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sat Jan 12 10:44:39 2013 -0500
Fix gst_format code.
commit c1d4a5888a6ca32e3311e86bee004a6fbd09785a
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sat Jan 12 10:29:19 2013 -0500
Fixed pad bug.
commit f5edf2865624b24e3eb8bdf7680a9b6e0a76939c
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sat Jan 12 09:59:34 2013 -0500
Port to gstreamer 1.0
configure.ac.in | 44 +++++----
src/gst/parole-gst.c | 258 +++++++++++++++++++++++-----------------------
src/misc/parole-file.c | 2 +-
src/parole-conf-dialog.c | 18 +---
src/parole-vis.c | 2 +-
5 files changed, 161 insertions(+), 163 deletions(-)
diff --git a/configure.ac.in b/configure.ac.in
index 0072b3d..ae8daf4 100644
--- a/configure.ac.in
+++ b/configure.ac.in
@@ -75,6 +75,12 @@ AC_CHECK_HEADERS([errno.h signal.h stddef.h sys/ioctl.h fcntl.h\
XDT_I18N([@LINGUAS@])
+#==================================================== #
+# Check for required packages #
+#=====================================================#
+m4_define([gtk_minimum_version], [2.20.0])
+m4_define([glib_minimum_version], [2.32.0])
+
dnl gstreamer version
AC_ARG_WITH([gstreamer],
[AS_HELP_STRING([--with-gstreamer=0.10|1.0],[which gstreamer version to compile against (default: 0.10)])],
@@ -86,22 +92,21 @@ AC_ARG_WITH([gstreamer],
)
case "$with_gstreamer" in
- 0.10) gstreamer_api_version=0.10
- gstreamer_minimum_version=0.10.31
- ;;
- 1.0) gstreamer_api_version=1.0
- gstreamer_minimum_version=0.11.90
- ;;
+ 0.10) gstreamer_api_version=0.10
+ gstreamer_minimum_version=0.10.31
+ GST_API_VERSION=0.10
+ GST_REQS=0.10.30
+ GSTPLUG_REQS=0.10.30
+ ;;
+ 1.0) gstreamer_api_version=1.0
+ gstreamer_minimum_version=1.0.0
+ GST_API_VERSION=1.0
+ GST_REQS=1.0.0
+ GSTPLUG_REQS=1.0.0
+ ;;
esac
AC_DEFINE_UNQUOTED(GSTREAMER_API_VERSION, $gstreamer_api_version, [Define the GStreamer+ API version])
-#==================================================== #
-# Check for required packages #
-#=====================================================#
-m4_define([gtk_minimum_version], [2.20.0])
-m4_define([glib_minimum_version], [2.32.0])
-m4_define([gstreamer_minimum_version], [0.10.24])
-
m4_define([dbus_minimum_version], [0.60])
m4_define([dbus_glib_minimum_version], [0.70])
@@ -120,15 +125,15 @@ XDT_CHECK_PACKAGE([GIO], [gio-2.0], [glib_minimum_version])
XDT_CHECK_PACKAGE([GST], [gstreamer-${gstreamer_api_version}], [gstreamer_minimum_version])
XDT_CHECK_PACKAGE([GST_BASE], [gstreamer-base-${gstreamer_api_version}], [gstreamer_minimum_version])
XDT_CHECK_PACKAGE([GST_VIDEO], [gstreamer-video-${gstreamer_api_version}], [gstreamer_minimum_version])
+XDT_CHECK_PACKAGE([GST_PBUTILS], [gstreamer-pbutils-${gstreamer_api_version}], [gstreamer_minimum_version])
+
if test x"${gstreamer_api_version}" = x"0.10"; then
- XDT_CHECK_PACKAGE([GST_INTERFACES], [gstreamer-interfaces-${gstreamer_api_version}], [gstreamer_minimum_version])
+ XDT_CHECK_PACKAGE([GST_INTERFACES], [gstreamer-interfaces-${gstreamer_api_version}], [gstreamer_minimum_version])
+ GST_LIBS="$GST_LIBS -lgstbase-$GST_API_VERSION -lgstinterfaces-$GST_API_VERSION -lgstvideo-$GST_API_VERSION -lgstaudio-$GST_API_VERSION -lgstpbutils-$GST_API_VERSION -lgsttag-$GST_API_VERSION"
+else
+ GST_LIBS="$GST_LIBS -lgstbase-$GST_API_VERSION -lgstvideo-$GST_API_VERSION -lgstaudio-$GST_API_VERSION -lgstpbutils-$GST_API_VERSION -lgsttag-$GST_API_VERSION"
fi
-GST_MAJORMINOR=0.10
-GST_REQS=0.10.30
-GSTPLUG_REQS=0.10.30
-GST_LIBS="$GST_LIBS -lgstbase-$GST_MAJORMINOR -lgstinterfaces-$GST_MAJORMINOR -lgstvideo-$GST_MAJORMINOR -lgstaudio-$GST_MAJORMINOR -lgstpbutils-$GST_MAJORMINOR -lgsttag-$GST_MAJORMINOR"
-
XDT_CHECK_PACKAGE([DBUS], [dbus-1], [dbus_minimum_version])
XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [dbus_glib_minimum_version])
@@ -274,6 +279,7 @@ echo "
pixmapsdir: $pixmapsdir
Debug: $enable_debug
Building plugin api docs: ${enable_gtk_doc}
+ GStreamer API version: ${gstreamer_api_version}
Optional dependencies:
======================
diff --git a/src/gst/parole-gst.c b/src/gst/parole-gst.c
index 885d5a0..ecb416c 100644
--- a/src/gst/parole-gst.c
+++ b/src/gst/parole-gst.c
@@ -34,9 +34,10 @@
#include <gst/video/videooverlay.h>
#include <gst/video/navigation.h>
#else
- #include <gst/interfaces/xoverlay.h>
- #include <gst/interfaces/navigation.h>
+#include <gst/interfaces/xoverlay.h>
+#include <gst/interfaces/navigation.h>
#endif
+
#include <gst/pbutils/missing-plugins.h>
#include <gst/pbutils/install-plugins.h>
@@ -69,6 +70,8 @@ static void parole_gst_terminate_internal (ParoleGst *gst,
gboolean fade_sound);
static GdkPixbuf * parole_gst_tag_list_get_cover_external (ParoleGst *gst);
+
+static GdkPixbuf * parole_gst_tag_list_get_cover_embedded (ParoleGst *gst, GstTagList *tag_list);
static GdkPixbuf * parole_gst_tag_list_get_cover (ParoleGst *gst, GstTagList *tag_list);
@@ -502,7 +505,7 @@ parole_gst_set_video_color_balance (ParoleGst *gst)
}
static void
-parole_gst_set_x_overlay (ParoleGst *gst)
+parole_gst_set_video_overlay (ParoleGst *gst)
{
GstElement *video_sink;
@@ -512,14 +515,16 @@ parole_gst_set_x_overlay (ParoleGst *gst)
g_assert (video_sink != NULL);
+ if ( GDK_IS_WINDOW (GTK_WIDGET (gst)->window) )
#if GST_CHECK_VERSION(1, 0, 0)
gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (video_sink),
- GDK_WINDOW_XID (GTK_WIDGET (gst)->window));
+ GDK_WINDOW_XWINDOW (GTK_WIDGET (gst)->window));
#else
- gst_x_overlay_set_xwindow_id (GST_X_OVERLAY (video_sink),
- GDK_WINDOW_XWINDOW (GTK_WIDGET (gst)->window));
+ gst_x_overlay_set_xwindow_id (GST_X_OVERLAY (video_sink),
+ GDK_WINDOW_XWINDOW (GTK_WIDGET (gst)->window));
#endif
+ gst_object_unref (video_sink);
}
static gboolean
@@ -538,7 +543,7 @@ parole_gst_expose_event (GtkWidget *widget, GdkEventExpose *ev)
"has-video", &playing_video,
NULL);
- parole_gst_set_x_overlay (gst);
+ parole_gst_set_video_overlay (gst);
TRACE ("EXPOSE event state=%d target=%d", gst->priv->state, gst->priv->target);
@@ -550,7 +555,7 @@ parole_gst_expose_event (GtkWidget *widget, GdkEventExpose *ev)
#if GST_CHECK_VERSION(1, 0, 0)
gst_video_overlay_expose (GST_VIDEO_OVERLAY (gst->priv->video_sink));
#else
- gst_x_overlay_expose (GST_X_OVERLAY (gst->priv->video_sink));
+ gst_x_overlay_expose (GST_X_OVERLAY (gst->priv->video_sink));
#endif
}
else
@@ -561,7 +566,7 @@ parole_gst_expose_event (GtkWidget *widget, GdkEventExpose *ev)
#if GST_CHECK_VERSION(1, 0, 0)
gst_video_overlay_expose (GST_VIDEO_OVERLAY (gst->priv->video_sink));
#else
- gst_x_overlay_expose (GST_X_OVERLAY (gst->priv->video_sink));
+ gst_x_overlay_expose (GST_X_OVERLAY (gst->priv->video_sink));
#endif
else
parole_gst_draw_logo (gst);
@@ -573,7 +578,7 @@ parole_gst_expose_event (GtkWidget *widget, GdkEventExpose *ev)
#if GST_CHECK_VERSION(1, 0, 0)
gst_video_overlay_expose (GST_VIDEO_OVERLAY (gst->priv->video_sink));
#else
- gst_x_overlay_expose (GST_X_OVERLAY (gst->priv->video_sink));
+ gst_x_overlay_expose (GST_X_OVERLAY (gst->priv->video_sink));
#endif
break;
case GST_STATE_NULL:
@@ -624,15 +629,14 @@ static gboolean
parole_gst_tick_timeout (gpointer data)
{
ParoleGst *gst;
+ GstFormat format = GST_FORMAT_TIME;
gint64 pos;
- GstFormat format = GST_FORMAT_TIME;
gint64 value;
gboolean video;
gboolean seekable;
gint64 duration;
-
gst = PAROLE_GST (data);
g_object_get (G_OBJECT (gst->priv->stream),
@@ -644,12 +648,12 @@ parole_gst_tick_timeout (gpointer data)
#if GST_CHECK_VERSION(1, 0, 0)
gst_element_query_position (gst->priv->playbin, format, &pos);
#else
- gst_element_query_position (gst->priv->playbin, &format, &pos);
-#endif
+ gst_element_query_position (gst->priv->playbin, &format, &pos);
if ( G_UNLIKELY (format != GST_FORMAT_TIME ) )
- goto out;
-
+ goto out;
+#endif
+
if ( gst->priv->state == GST_STATE_PLAYING )
{
if (duration != 0 && seekable == FALSE)
@@ -663,9 +667,12 @@ parole_gst_tick_timeout (gpointer data)
g_signal_emit (G_OBJECT (gst), signals [MEDIA_PROGRESSED], 0, gst->priv->stream, value);
}
+#if GST_CHECK_VERSION(1, 0, 0)
+#else
out:
if ( g_timer_elapsed (gst->priv->hidecursor_timer, NULL ) > HIDE_WINDOW_CURSOR_TIMEOUT && video)
parole_gst_set_cursor_visible (gst, FALSE);
+#endif
return TRUE;
}
@@ -700,30 +707,28 @@ parole_gst_query_duration (ParoleGst *gst)
gint64 absolute_duration = 0;
gint64 duration = 0;
gboolean live;
- GstFormat gst_time;
+ GstFormat gst_time = GST_FORMAT_TIME;
- gst_time = GST_FORMAT_TIME;
-
- gst_element_query_duration (gst->priv->playbin,
+ gst_element_query_duration (gst->priv->playbin,
#if GST_CHECK_VERSION(1, 0, 0)
- gst_time,
+ gst_time,
#else
- &gst_time,
+ &gst_time,
#endif
- &absolute_duration);
+ &absolute_duration);
if (gst_time == GST_FORMAT_TIME)
{
- duration = absolute_duration / GST_SECOND;
- live = ( absolute_duration == 0 );
-
- TRACE ("Duration %" G_GINT64_FORMAT "is_live=%d", duration, live);
-
- g_object_set (G_OBJECT (gst->priv->stream),
- "absolute-duration", absolute_duration,
- "duration", duration,
- "live", live,
- NULL);
+ duration = absolute_duration / GST_SECOND;
+ live = ( absolute_duration == 0 );
+
+ TRACE ("Duration %" G_GINT64_FORMAT "is_live=%d", duration, live);
+
+ g_object_set (G_OBJECT (gst->priv->stream),
+ "absolute-duration", absolute_duration,
+ "duration", duration,
+ "live", live,
+ NULL);
}
}
@@ -804,34 +809,34 @@ parole_gst_load_subtitle (ParoleGst *gst)
static void
parole_gst_get_pad_capabilities (GObject *object, GParamSpec *pspec, ParoleGst *gst)
{
-#if GST_CHECK_VERSION(1, 0, 0)
- GstCaps *caps;
-#else
GstPad *pad;
-#endif
GstStructure *st;
gint width;
gint height;
guint num;
guint den;
const GValue *value;
-
#if GST_CHECK_VERSION(1, 0, 0)
- caps = GST_CAPS (object);
+ GstCaps *caps;
+#endif
- if ( !GST_IS_CAPS (caps) || !GST_CAPS (caps) )
- return;
+ pad = GST_PAD (object);
+ if ( !GST_IS_PAD (pad) )
+ return;
+
+#if GST_CHECK_VERSION(1, 0, 0)
+ caps = gst_pad_get_current_caps (pad);
+ if ( !caps )
+ return;
- st = gst_caps_get_structure (GST_CAPS (caps), 0);
+ st = gst_caps_get_structure (caps, 0);
#else
- pad = GST_PAD (object);
-
if ( !GST_IS_PAD (pad) || !GST_PAD_CAPS (pad) )
- return;
-
+ return;
+
st = gst_caps_get_structure (GST_PAD_CAPS (pad), 0);
#endif
-
+
if ( st )
{
gst_structure_get_int (st, "width", &width);
@@ -855,6 +860,9 @@ parole_gst_get_pad_capabilities (GObject *object, GParamSpec *pspec, ParoleGst *
parole_gst_size_allocate (GTK_WIDGET (gst), >K_WIDGET (gst)->allocation);
}
+#if GST_CHECK_VERSION(1, 0, 0)
+ gst_caps_unref (caps);
+#endif
}
static void
@@ -882,11 +890,11 @@ parole_gst_query_info (ParoleGst *gst)
if (videopad)
{
GstCaps *caps;
-
+
#if GST_CHECK_VERSION(1, 0, 0)
if ((caps = gst_pad_get_current_caps (videopad)))
#else
- if ((caps = gst_pad_get_negotiated_caps (videopad)))
+ if ((caps = gst_pad_get_negotiated_caps (videopad)))
#endif
{
parole_gst_get_pad_capabilities (G_OBJECT (videopad), NULL, gst);
@@ -1048,20 +1056,20 @@ static void
parole_gst_element_message_sync (GstBus *bus, GstMessage *message, ParoleGst *gst)
{
#if GST_CHECK_VERSION(1, 0, 0)
- if ( !(gst_message_get_structure(message)) )
+ if ( gst_message_has_name (message, "prepare-xwindow-id") )
#else
if ( !message->structure )
-#endif
- goto out;
-
-#if GST_CHECK_VERSION(1, 0, 0)
- if ( gst_structure_has_name (gst_message_get_structure(message), "prepare-xwindow-id") )
-#else
+ goto out;
+
if ( gst_structure_has_name (message->structure, "prepare-xwindow-id") )
#endif
- parole_gst_set_x_overlay (gst);
+ parole_gst_set_video_overlay (gst);
+
+#if GST_CHECK_VERSION (1, 0, 0)
+#else
out:
;
+#endif
}
static GdkPixbuf *
@@ -1071,14 +1079,16 @@ parole_gst_buffer_to_pixbuf (GstBuffer *buffer)
GdkPixbuf *pixbuf = NULL;
GError *err = NULL;
#if GST_CHECK_VERSION (1, 0, 0)
- GstMapInfo info;
+ GstMapInfo map;
+
+ if (!gst_buffer_map (buffer, &map, GST_MAP_READ))
+ return NULL;
#endif
loader = gdk_pixbuf_loader_new ();
-
+
#if GST_CHECK_VERSION (1, 0, 0)
- gst_buffer_map (buffer, &info, GST_MAP_READ);
- if (gdk_pixbuf_loader_write (loader, info.data, info.size, &err) &&
+ if (gdk_pixbuf_loader_write (loader, map.data, map.size, &err) &&
#else
if (gdk_pixbuf_loader_write (loader, buffer->data, buffer->size, &err) &&
#endif
@@ -1092,9 +1102,8 @@ parole_gst_buffer_to_pixbuf (GstBuffer *buffer)
}
#if GST_CHECK_VERSION (1, 0, 0)
- gst_buffer_unmap (buffer, &info);
+ gst_buffer_unmap (buffer, &map);
#endif
-
g_object_unref (loader);
return pixbuf;
}
@@ -1157,7 +1166,7 @@ parole_gst_tag_list_get_cover_external (ParoleGst *gst)
if (!cover_filename)
return NULL;
-
+
pixbuf = gdk_pixbuf_new_from_file(cover_filename, &err);
g_free(cover_filename);
if (err)
@@ -1173,43 +1182,37 @@ GdkPixbuf *
parole_gst_tag_list_get_cover_embedded (ParoleGst *gst, GstTagList *tag_list)
{
GdkPixbuf *pixbuf;
-#if GST_CHECK_VERSION(1, 0, 0)
- GstPad *videopad;
- GstCaps *caps;
-#endif
const GValue *cover_value = NULL;
guint i;
for (i = 0; ; i++) {
const GValue *value;
#if GST_CHECK_VERSION(1, 0, 0)
+ GstSample *sample;
#else
GstBuffer *buffer;
#endif
GstStructure *caps_struct;
int type;
- value = gst_tag_list_get_value_index ( tag_list,
- GST_TAG_IMAGE,
- i);
+ value = gst_tag_list_get_value_index (tag_list,
+ GST_TAG_IMAGE,
+ i);
if (value == NULL)
break;
#if GST_CHECK_VERSION(1, 0, 0)
- g_signal_emit_by_name (gst->priv->playbin, "get-video-pad", i, &videopad);
- caps = gst_pad_query_caps(videopad, NULL);
- caps_struct = gst_caps_get_structure (caps, 0);
- gst_caps_unref(caps);
- g_object_unref (videopad);
+ sample = gst_value_get_sample (value);
+ caps_struct = gst_caps_get_structure (gst_sample_get_caps(sample), 0);
#else
buffer = gst_value_get_buffer (value);
caps_struct = gst_caps_get_structure (buffer->caps, 0);
#endif
gst_structure_get_enum (caps_struct,
- "image-type",
- GST_TYPE_TAG_IMAGE_TYPE,
- &type);
+ "image-type",
+ GST_TYPE_TAG_IMAGE_TYPE,
+ &type);
if (type == GST_TAG_IMAGE_TYPE_UNDEFINED) {
if (cover_value == NULL)
cover_value = value;
@@ -1220,17 +1223,21 @@ parole_gst_tag_list_get_cover_embedded (ParoleGst *gst, GstTagList *tag_list)
}
if (!cover_value) {
- cover_value = gst_tag_list_get_value_index (tag_list,
- GST_TAG_PREVIEW_IMAGE,
- 0);
+ cover_value = gst_tag_list_get_value_index (tag_list,
+ GST_TAG_PREVIEW_IMAGE,
+ 0);
}
if (cover_value) {
+#if GST_CHECK_VERSION(1, 0, 0)
+ GstSample *sample;
+ sample = gst_value_get_sample (cover_value);
+ pixbuf = parole_gst_buffer_to_pixbuf (gst_sample_get_buffer (sample));
+#else
GstBuffer *buffer;
- GdkPixbuf *pixbuf;
-
buffer = gst_value_get_buffer (cover_value);
pixbuf = parole_gst_buffer_to_pixbuf (buffer);
+#endif
return pixbuf;
}
return NULL;
@@ -1243,9 +1250,9 @@ parole_gst_tag_list_get_cover (ParoleGst *gst, GstTagList *tag_list)
GdkPixbuf *scaled;
gint height, width;
gfloat multiplier;
-
+
g_return_val_if_fail (tag_list != NULL, FALSE);
-
+
pixbuf = parole_gst_tag_list_get_cover_external(gst);
if (!pixbuf)
{
@@ -1253,7 +1260,7 @@ parole_gst_tag_list_get_cover (ParoleGst *gst, GstTagList *tag_list)
if (!pixbuf)
return NULL;
}
-
+
if (gdk_pixbuf_get_width(pixbuf) == gdk_pixbuf_get_height(pixbuf))
{
height = 256;
@@ -1271,11 +1278,11 @@ parole_gst_tag_list_get_cover (ParoleGst *gst, GstTagList *tag_list)
height = gdk_pixbuf_get_height(pixbuf)/multiplier;
width = 256;
}
-
+
scaled = gdk_pixbuf_scale_simple (pixbuf,
- width,
- height,
- GDK_INTERP_HYPER);
+ width,
+ height,
+ GDK_INTERP_HYPER);
g_object_unref(pixbuf);
return scaled;
@@ -1291,15 +1298,15 @@ parole_gst_get_meta_data_dvd (ParoleGst *gst)
guint current_chapter;
gint64 val = -1;
- GstFormat format;
+ GstFormat format = gst_format_get_by_nick ("chapter");
+
+ TRACE("START");
g_object_get ( G_OBJECT (gst->priv->stream),
"num-tracks", ¤t_num_chapters,
"track", ¤t_chapter,
NULL);
- format = gst_format_get_by_nick ("chapter");
-
/* Get the number of chapters for the current title. */
#if GST_CHECK_VERSION(1, 0, 0)
if ( gst_element_query_duration (gst->priv->playbin, format, &val) )
@@ -1309,6 +1316,7 @@ parole_gst_get_meta_data_dvd (ParoleGst *gst)
{
n_chapters = (gint) val;
num_chapters = (guint) n_chapters;
+ TRACE("Number of chapters: %i", n_chapters);
if (num_chapters != current_num_chapters)
{
g_object_set (G_OBJECT (gst->priv->stream),
@@ -1330,6 +1338,7 @@ parole_gst_get_meta_data_dvd (ParoleGst *gst)
#endif
{
chapter = (guint)(gint) val;
+ TRACE("Current chapter: %i", chapter);
if ( chapter != current_chapter || num_chapters != 1 )
{
g_object_set (G_OBJECT (gst->priv->stream),
@@ -1498,24 +1507,26 @@ parole_gst_get_meta_data (ParoleGst *gst, GstTagList *tag)
static void
parole_gst_application_message (ParoleGst *gst, GstMessage *msg)
{
- const gchar *name;
-
#if GST_CHECK_VERSION(1, 0, 0)
- name = gst_structure_get_name (gst_message_get_structure(msg));
+ if ( gst_message_has_name (msg, "notify-streaminfo") )
#else
+ const gchar *name;
name = gst_structure_get_name (msg->structure);
-#endif
if ( !name )
- return;
-
- TRACE ("Application message : %s", name);
+ return;
if ( !g_strcmp0 (name, "notify-streaminfo") )
+#endif
{
parole_gst_update_stream_info (gst);
}
+
+#if GST_CHECK_VERSION(1, 0, 0)
+ else if ( gst_message_has_name (msg, "video-size") )
+#else
else if ( !g_strcmp0 (name, "video-size") )
+#endif
{
parole_gst_size_allocate (GTK_WIDGET (gst), >K_WIDGET (gst)->allocation);
}
@@ -1588,11 +1599,7 @@ parole_gst_bus_event (GstBus *bus, GstMessage *msg, gpointer data)
{
ParoleGst *gst;
GtkDialog *dialog;
-#if GST_CHECK_VERSION(1, 0, 0)
- const gchar* details[2];
-#else
gchar* details[2];
-#endif
GstInstallPluginsContext *ctx;
gint response;
@@ -1690,16 +1697,19 @@ parole_gst_bus_event (GstBus *bus, GstMessage *msg, gpointer data)
ctx = gst_install_plugins_context_new();
#ifdef GDK_WINDOWING_X11
- if (gtk_widget_get_window (GTK_WIDGET (gst)) != NULL &&
- gtk_widget_get_realized (GTK_WIDGET (gst)))
- {
- gst_install_plugins_context_set_xid (ctx,
- GDK_WINDOW_XID (GTK_WIDGET (gst)->window));
- }
+ if (gtk_widget_get_window (GTK_WIDGET (gst)) != NULL &&
+ gtk_widget_get_realized (GTK_WIDGET (gst)))
+ {
+ gst_install_plugins_context_set_xid (ctx,
+ GDK_WINDOW_XID (GTK_WIDGET (gst)->window));
+ }
#endif /* GDK_WINDOWING_X11 */
-
- gst_install_plugins_async(details, ctx, parole_gst_install_plugins_result_func, gst);
-
+
+#if GST_CHECK_VERSION(1, 0, 0)
+ gst_install_plugins_async((const gchar * const *) details, ctx, parole_gst_install_plugins_result_func, gst);
+#else
+ gst_install_plugins_async(details, ctx, parole_gst_install_plugins_result_func, gst);
+#endif
gst_install_plugins_context_free(ctx);
}
else if ( response == GTK_RESPONSE_REJECT )
@@ -1960,9 +1970,7 @@ parole_gst_seek_by_format (ParoleGst *gst, GstFormat format, gint step)
static void
parole_gst_change_dvd_chapter (ParoleGst *gst, gint level)
{
- GstFormat format;
-
- format = gst_format_get_by_nick ("chapter");
+ GstFormat format = gst_format_get_by_nick ("chapter");
parole_gst_seek_by_format (gst, format, level);
}
@@ -1970,9 +1978,7 @@ parole_gst_change_dvd_chapter (ParoleGst *gst, gint level)
static void
parole_gst_change_cdda_track (ParoleGst *gst, gint level)
{
- GstFormat format;
-
- format = gst_format_get_by_nick ("track");
+ GstFormat format = gst_format_get_by_nick ("track");
parole_gst_seek_by_format (gst, format, level);
}
@@ -2226,11 +2232,11 @@ parole_gst_constructed (GObject *object)
* Handling 'prepare-xwindow-id' message async causes XSync
* error in some occasions So we handle this message synchronously
*/
- gst_bus_set_sync_handler (gst->priv->bus, gst_bus_sync_signal_handler, gst
-#if GST_CHECK_VERSION (1, 0, 0)
- , NULL
+#if GST_CHECK_VERSION(1, 0, 0)
+ gst_bus_set_sync_handler (gst->priv->bus, gst_bus_sync_signal_handler, gst, NULL);
+#else
+ gst_bus_set_sync_handler (gst->priv->bus, gst_bus_sync_signal_handler, gst);
#endif
- );
gst->priv->sig2 =
g_signal_connect (gst->priv->bus, "sync-message::element",
G_CALLBACK (parole_gst_element_message_sync), gst);
@@ -2712,12 +2718,10 @@ void parole_gst_seek_cdda (ParoleGst *gst, guint track_num)
gint parole_gst_get_current_cdda_track (ParoleGst *gst)
{
- GstFormat format;
+ GstFormat format = gst_format_get_by_nick ("track");
gint64 pos;
gint ret_val = 1;
- format = gst_format_get_by_nick ("track");
-
#if GST_CHECK_VERSION(1, 0, 0)
if ( gst_element_query_position (gst->priv->playbin, format, &pos) )
#else
diff --git a/src/misc/parole-file.c b/src/misc/parole-file.c
index 204f23c..ed61c61 100644
--- a/src/misc/parole-file.c
+++ b/src/misc/parole-file.c
@@ -191,7 +191,7 @@ parole_file_constructed (GObject *object)
if ( g_str_has_prefix(filename, "dvd") )
{
priv->directory = NULL;
- priv->uri = "dvd:/";
+ priv->uri = g_strdup("dvd:/");
priv->content_type = g_strdup("dvd");
g_free(filename);
return;
diff --git a/src/parole-conf-dialog.c b/src/parole-conf-dialog.c
index 8203fa7..38e27f0 100644
--- a/src/parole-conf-dialog.c
+++ b/src/parole-conf-dialog.c
@@ -256,11 +256,7 @@ void parole_conf_dialog_vis_plugin_changed_cb (GtkComboBox *widget, ParoleConfD
if ( f )
{
g_object_set (G_OBJECT (self->priv->conf),
-#if GST_CHECK_VERSION (1, 0, 0)
- "vis-name", GST_OBJECT_NAME (f),
-#else
- "vis-name", GST_PLUGIN_FEATURE_NAME (f),
-#endif
+ "vis-name", gst_object_get_name (GST_OBJECT (f)),
NULL);
}
@@ -358,18 +354,10 @@ parole_conf_dialog_set_default_vis_plugin (GtkTreeModel *model, GtkTreePath *pat
if ( !g_strcmp0 (vis_name, "none") )
{
-#if GST_CHECK_VERSION (1, 0, 0)
- if ( !g_strcmp0 (GST_OBJECT_NAME (f), "Goom") )
-#else
- if ( !g_strcmp0 (GST_PLUGIN_FEATURE_NAME (f), "Goom") )
-#endif
+ if ( !g_strcmp0 (gst_object_get_name (GST_OBJECT (f)), "Goom") )
ret = TRUE;
}
-#if GST_CHECK_VERSION (1, 0, 0)
- else if ( !g_strcmp0 (GST_OBJECT_NAME (f), vis_name) )
-#else
- else if ( !g_strcmp0 (GST_PLUGIN_FEATURE_NAME (f), vis_name) )
-#endif
+ else if ( !g_strcmp0 (gst_object_get_name (GST_OBJECT (f)), vis_name) )
{
ret = TRUE;
}
diff --git a/src/parole-vis.c b/src/parole-vis.c
index ebec66e..9058ba4 100644
--- a/src/parole-vis.c
+++ b/src/parole-vis.c
@@ -60,7 +60,7 @@ GHashTable *parole_vis_get_plugins (void)
hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
-#if GST_CHECK_VERSION (1, 0, 0)
+#if GST_CHECK_VERSION(1, 0, 0)
plugins = gst_registry_feature_filter (gst_registry_get (),
#else
plugins = gst_registry_feature_filter (gst_registry_get_default (),
More information about the Xfce4-commits
mailing list