From: <ms...@ke...> - 2006-03-31 14:26:21
|
CVS Root: /cvs/gstreamer Module: gst-plugins-bad Changes by: msmith Date: Fri Mar 31 2006 14:26:17 UTC Log message: * configure.ac: Add autoconfery for theoradec. * ext/Makefile.am: Add theora directory. * ext/theora/Makefile.am: * ext/theora/theoradec.c: (gst_theoradec_base_init), (gst_theoradec_class_init), (gst_theoradec_init), (gst_theoradec_reset), (inc_granulepos), (theora_get_query_types), (gst_theoradec_granule_clocktime), (theora_dec_src_convert), (theora_dec_sink_convert), (theora_dec_src_query), (theora_dec_sink_query), (theora_dec_src_event), (theora_dec_sink_event), (theora_handle_comment_packet), (theora_handle_type_packet), (theora_handle_header_packet), (theora_dec_push), (theora_handle_data_packet), (theora_dec_chain), (theora_dec_change_state), (plugin_init): * ext/theora/theoradec.h: Add theora plugin for theora-exp decoder. Very heavily based on the existing theora decoder plugin. Modified files: . : ChangeLog configure.ac ext : Makefile.am Added files: ext/theora : Makefile.am theoradec.c theoradec.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/ChangeLog.diff?r1=1.2041&r2=1.2042 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/configure.ac.diff?r1=1.653&r2=1.654 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/ext/Makefile.am.diff?r1=1.171&r2=1.172 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/ext/theora/Makefile.am?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/ext/theora/theoradec.c?rev=1.1&content-type=text/vnd.viewcvs-markup http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-bad/ext/theora/theoradec.h?rev=1.1&content-type=text/vnd.viewcvs-markup ====Begin Diffs==== Index: Makefile.am =================================================================== RCS file: /cvs/gstreamer/gst-plugins-bad/ext/Makefile.am,v retrieving revision 1.171 retrieving revision 1.172 diff -u -d -r1.171 -r1.172 --- Makefile.am 29 Mar 2006 16:50:07 -0000 1.171 +++ Makefile.am 31 Mar 2006 14:26:05 -0000 1.172 @@ -209,6 +209,13 @@ TAGLIB_DIR = endif +if USE_THEORADEC +THEORA_DIR = theora +else +THEORA_DIR = +endif + # if USE_TARKIN # TARKIN_DIR=tarkin # else @@ -263,6 +270,7 @@ $(SWFDEC_DIR) \ $(TAGLIB_DIR) \ $(TARKIN_DIR) \ + $(THEORA_DIR) \ $(WAVPACK_DIR) \ $(XINE_DIR) \ $(XVID_DIR) Index: ChangeLog RCS file: /cvs/gstreamer/gst-plugins-bad/ChangeLog,v retrieving revision 1.2041 retrieving revision 1.2042 diff -u -d -r1.2041 -r1.2042 --- ChangeLog 29 Mar 2006 16:54:12 -0000 1.2041 +++ ChangeLog 31 Mar 2006 14:26:05 -0000 1.2042 @@ -1,3 +1,24 @@ +2006-03-31 Michael Smith <ms...@fl...> + * configure.ac: + Add autoconfery for theoradec. + * ext/Makefile.am: + Add theora directory. + * ext/theora/Makefile.am: + * ext/theora/theoradec.c: (gst_theoradec_base_init), + (gst_theoradec_class_init), (gst_theoradec_init), + (gst_theoradec_reset), (inc_granulepos), (theora_get_query_types), + (gst_theoradec_granule_clocktime), (theora_dec_src_convert), + (theora_dec_sink_convert), (theora_dec_src_query), + (theora_dec_sink_query), (theora_dec_src_event), + (theora_dec_sink_event), (theora_handle_comment_packet), + (theora_handle_type_packet), (theora_handle_header_packet), + (theora_dec_push), (theora_handle_data_packet), (theora_dec_chain), + (theora_dec_change_state), (plugin_init): + * ext/theora/theoradec.h: + Add theora plugin for theora-exp decoder. Very heavily based on the + existing theora decoder plugin. 2006-03-29 Wim Taymans <wi...@fl...> * ext/gsm/gstgsmdec.c: (gst_gsmdec_class_init), (gst_gsmdec_init), Index: configure.ac RCS file: /cvs/gstreamer/gst-plugins-bad/configure.ac,v retrieving revision 1.653 retrieving revision 1.654 diff -u -d -r1.653 -r1.654 --- configure.ac 29 Mar 2006 16:50:07 -0000 1.653 +++ configure.ac 31 Mar 2006 14:26:05 -0000 1.654 @@ -706,6 +706,14 @@ fi ]) +dnl *** theora *** +translit(dnm, m, l) AM_CONDITIONAL(USE_THEORADEC, true) +GST_CHECK_FEATURE(THEORADEC, [ogg theora codec], theoradec, [ + PKG_CHECK_MODULES(THEORADEC, theoradec, HAVE_THEORADEC="yes", HAVE_THEORADEC="no") + AC_SUBST(THEORADEC_LIBS) + AC_SUBST(THEORADEC_CFLAGS) +]) dnl *** Video 4 Linux 2 *** dnl for information about the header/define, see sys/v4l2/gstv4l2element.h dnl renamed to GST_V4L2 because of some conflict with kernel headers @@ -853,6 +861,7 @@ ext/sdl/Makefile ext/swfdec/Makefile ext/taglib/Makefile +ext/theora/Makefile ext/xvid/Makefile docs/Makefile docs/plugins/Makefile --- NEW FILE: Makefile.am --- plugin_LTLIBRARIES = libgsttheoraexp.la noinst_HEADERS = theoradec.h libgsttheoraexp_la_SOURCES = theoradec.c libgsttheoraexp_la_CFLAGS = $(GST_CFLAGS) $(THEORADEC_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) libgsttheoraexp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgsttheoraexp_la_LIBADD = \ -lgsttag-@GST_MAJORMINOR@ \ $(GST_LIBS) \ $(THEORADEC_LIBS) \ $(GST_PLUGINS_BASE_LIBS) --- NEW FILE: theoradec.c --- /* GStreamer * Copyright (C) 2004 Benjamin Otte <in...@pu...> * 2006 Michael Smith <ms...@fl...> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * This library 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; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ [...1065 lines suppressed...] } return ret; } static gboolean plugin_init (GstPlugin * plugin) { if (!gst_element_register (plugin, "theoradecexp", GST_RANK_PRIMARY, gst_theoradec_get_type ())) return FALSE; return TRUE; GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, "theoradec", "Theora dec (exp) plugin library", plugin_init, VERSION, "LGPL", GST_PACKAGE, GST_ORIGIN) --- NEW FILE: theoradec.h --- #ifndef __GST_THEORADEC_H__ #define __GST_THEORADEC_H__ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <gst/gst.h> #include <theora/theoradec.h> #include <string.h> G_BEGIN_DECLS #define GST_TYPE_THEORA_DEC \ (gst_theoradec_get_type()) #define GST_THEORA_DEC(obj) \ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_THEORA_DEC,GstTheoraExpDec)) #define GST_THEORA_DEC_CLASS(klass) \ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_THEORA_DEC,GstTheoraExpDec)) #define GST_IS_THEORA_DEC(obj) \ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_THEORA_DEC)) #define GST_IS_THEORA_DEC_CLASS(obj) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_THEORA_DEC)) typedef struct _GstTheoraExpDec GstTheoraExpDec; typedef struct _GstTheoraExpDecClass GstTheoraExpDecClass; /** * GstTheoraExpDec: * Decoder using theora-exp struct _GstTheoraExpDec GstElement element; /* Pads */ GstPad *sinkpad; GstPad *srcpad; /* theora decoder state */ th_dec_ctx *dec; th_setup_info *setup; theora_info info; th_comment comment; gboolean have_header; guint64 granulepos; guint64 granule_shift; GstClockTime last_timestamp; gboolean need_keyframe; gint width, height; gint offset_x, offset_y; int frame_nr; GList *queued; /* segment info */ /* with STREAM_LOCK */ GstSegment segment; /* QoS stuff */ /* with LOCK*/ gboolean proportion; GstClockTime earliest_time; }; struct _GstTheoraExpDecClass GstElementClass parent_class; G_END_DECLS #endif /* __GST_THEORADEC_H__ */ |