From a394b27dc95ab81086653d0be57d1a511b2bf2f0 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Sat, 15 May 2004 12:09:12 +0000 Subject: [PATCH] ext/gdk_pixbuf/: Add new pixbufscale element to scale RGB video using gdk_pixbuf, because gdk_pixbuf does BILINEAR an... Original commit message from CVS: * ext/gdk_pixbuf/Makefile.am: * ext/gdk_pixbuf/gstgdkpixbuf.c: (plugin_init): * ext/gdk_pixbuf/gstgdkpixbuf.h: Add new pixbufscale element to scale RGB video using gdk_pixbuf, because gdk_pixbuf does BILINEAR and HYPER interpolation correctly. * ext/theora/theoraenc.c: (theora_enc_chain), Discard buffer and return if explicit caps could not be set (theora_enc_get_property): Make _get return kbps for the bitrate consistent with the _set function. --- ext/gdk_pixbuf/Makefile.am | 3 ++- ext/gdk_pixbuf/gstgdkpixbuf.c | 8 +++++++- ext/gdk_pixbuf/gstgdkpixbuf.h | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ext/gdk_pixbuf/Makefile.am b/ext/gdk_pixbuf/Makefile.am index a96ea20..54e9a3e 100644 --- a/ext/gdk_pixbuf/Makefile.am +++ b/ext/gdk_pixbuf/Makefile.am @@ -1,6 +1,6 @@ plugin_LTLIBRARIES = libgstgdkpixbuf.la -libgstgdkpixbuf_la_SOURCES = gstgdkpixbuf.c +libgstgdkpixbuf_la_SOURCES = gstgdkpixbuf.c pixbufscale.c libgstgdkpixbuf_la_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) libgstgdkpixbuf_la_LIBADD = $(GTK_LIBS) libgstgdkpixbuf_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) @@ -27,5 +27,6 @@ install-data-hook: endif noinst_HEADERS = gstgdkpixbuf.h \ + pixbufscale.h \ gstgdkanimation.h diff --git a/ext/gdk_pixbuf/gstgdkpixbuf.c b/ext/gdk_pixbuf/gstgdkpixbuf.c index 8dbe2ea..cd010a6 100644 --- a/ext/gdk_pixbuf/gstgdkpixbuf.c +++ b/ext/gdk_pixbuf/gstgdkpixbuf.c @@ -83,6 +83,8 @@ GST_STATIC_PAD_TEMPLATE ("src", GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB) ); +gboolean pixbufscale_init (GstPlugin * plugin); + static void gst_gdk_pixbuf_base_init (gpointer g_class); static void gst_gdk_pixbuf_class_init (GstGdkPixbufClass * klass); static void gst_gdk_pixbuf_init (GstGdkPixbuf * filter); @@ -459,6 +461,9 @@ plugin_init (GstPlugin * plugin) gst_gdk_pixbuf_type_find, NULL, GST_CAPS_ANY, NULL); #endif + if (!pixbufscale_init (plugin)) + return FALSE; + /* plugin initialisation succeeded */ return TRUE; } @@ -468,4 +473,5 @@ plugin_init (GstPlugin * plugin) GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, "gdkpixbuf", - "GDK Pixbuf decoder", plugin_init, VERSION, "LGPL", GST_PACKAGE, GST_ORIGIN) + "GDK Pixbuf decoder & scaler", plugin_init, VERSION, "LGPL", GST_PACKAGE, + GST_ORIGIN) diff --git a/ext/gdk_pixbuf/gstgdkpixbuf.h b/ext/gdk_pixbuf/gstgdkpixbuf.h index 62e11aa..dc308cc 100644 --- a/ext/gdk_pixbuf/gstgdkpixbuf.h +++ b/ext/gdk_pixbuf/gstgdkpixbuf.h @@ -64,7 +64,7 @@ struct _GstGdkPixbufClass GstElementClass parent_class; }; -GType gst_gdk_pixbuf_get_type (void); +static GType gst_gdk_pixbuf_get_type (void); G_END_DECLS -- 2.7.4