From cf0bec6385b786aa9c4e4841cf0eb3522a51a9a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 1 Feb 2016 00:29:37 +0000 Subject: [PATCH] Remove dead libfame plugin Was never even ported to 0.10, and the lib has been unmaintained for ever and doesn't even seem to be packaged any more. --- ext/Makefile.am | 7 - ext/libfame/Makefile.am | 10 - ext/libfame/README | 4 - ext/libfame/gstlibfame.c | 595 --------------------------------------- ext/libfame/gstlibfame.h | 87 ------ m4/Makefile.am | 1 - m4/libfame.m4 | 182 ------------ 7 files changed, 886 deletions(-) delete mode 100644 ext/libfame/Makefile.am delete mode 100644 ext/libfame/README delete mode 100644 ext/libfame/gstlibfame.c delete mode 100644 ext/libfame/gstlibfame.h delete mode 100644 m4/libfame.m4 diff --git a/ext/Makefile.am b/ext/Makefile.am index f2d9059f68..d1a8258289 100644 --- a/ext/Makefile.am +++ b/ext/Makefile.am @@ -160,12 +160,6 @@ else LIBDE265_DIR = endif -# if USE_LIBFAME -# LIBFAME_DIR=libfame -# else -LIBFAME_DIR= -# endif - if USE_LIBMMS LIBMMS_DIR=libmms else @@ -448,7 +442,6 @@ SUBDIRS=\ $(LADSPA_DIR) \ $(LV2_DIR) \ $(LIBDE265_DIR) \ - $(LIBFAME_DIR) \ $(LIBMMS_DIR) \ $(LIBVISUAL_DIR) \ $(MODPLUG_DIR) \ diff --git a/ext/libfame/Makefile.am b/ext/libfame/Makefile.am deleted file mode 100644 index d8573eedb4..0000000000 --- a/ext/libfame/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ - -plugin_LTLIBRARIES = libgstlibfame.la - -libgstlibfame_la_SOURCES = gstlibfame.c -libgstlibfame_la_CFLAGS = $(GST_CFLAGS) $(LIBFAME_CFLAGS) -libgstlibfame_la_LIBADD = $(LIBFAME_LIBS) -libgstlibfame_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -libgstlibfame_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) - -noinst_HEADERS=gstlibfame.h diff --git a/ext/libfame/README b/ext/libfame/README deleted file mode 100644 index ad83eb6df5..0000000000 --- a/ext/libfame/README +++ /dev/null @@ -1,4 +0,0 @@ -This plugin uses the libfame library available at: -http://fame.sf.net - -libfame is available under the LGPL license diff --git a/ext/libfame/gstlibfame.c b/ext/libfame/gstlibfame.c deleted file mode 100644 index ac68dcf9c8..0000000000 --- a/ext/libfame/gstlibfame.c +++ /dev/null @@ -1,595 +0,0 @@ -/* GStreamer - * Copyright (C) <1999> Erik Walthinsen - * - * 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., 51 Franklin St, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include -#include -#include - -#include "gstlibfame.h" -#include - -#define FAMEENC_BUFFER_SIZE (300 * 1024) - -static GQuark fame_object_name; - - -/* FameEnc signals and args */ -enum -{ - /* FILL ME */ - LAST_SIGNAL -}; - -enum -{ - ARG_0, - ARG_VERSION, - ARG_BITRATE, - ARG_QUALITY, - ARG_PATTERN, - ARG_FAME_VERBOSE, - ARG_BUFFER_SIZE, - ARG_FRAMES_PER_SEQUENCE, - /* dynamically generated properties start here */ - ARG_FAME_PROPS_START - /* FILL ME */ -}; - -static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/x-raw-yuv, " - "format = (fourcc) I420, " - "width = (int) [ 16, 4096 ], " - "height = (int) [ 16, 4096 ], " - "framerate = (double) { 23.976023976, 24.0, 25.0, 29.97002997, 30.0, " - " 50.0, 59.94005994, 60.0 }") - ); - -static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("video/mpeg, " - "mpegversion = (int) { 1, 4 }, " - "systemstream = (boolean) FALSE, " - "width = (int) [ 16, 4096 ], " - "height = (int) [ 16, 4096 ], " - "framerate = (double) { 23.976023976, 24.0, 25.0, 29.97002997, 30.0, " - " 50.0, 59.94005994, 60.0 }") - ); - -#define MAX_FRAME_RATES 9 -typedef struct -{ - gint num; - gint den; -} -frame_rate_entry; - -static const frame_rate_entry frame_rates[] = { - {0, 0}, - {24000, 1001}, - {24, 1}, - {25, 1}, - {30000, 1001}, - {30, 1}, - {50, 1}, - {60000, 1001}, - {60, 1}, -}; - -static gint -framerate_to_index (gfloat fps) -{ - gint i; - gint idx = -1; - - for (i = 1; i < MAX_FRAME_RATES; i++) { - if (idx == -1) { - idx = i; - } else { - gfloat old_diff = fabs ((1. * frame_rates[idx].num / - frame_rates[idx].den) - fps), - new_diff = fabs ((1. * frame_rates[i].num / - frame_rates[i].den) - fps); - - if (new_diff < old_diff) { - idx = i; - } - } - } - - return idx; -} - -static void gst_fameenc_class_init (GstFameEncClass * klass); -static void gst_fameenc_base_init (GstFameEncClass * klass); -static void gst_fameenc_init (GstFameEnc * fameenc); -static void gst_fameenc_finalize (GObject * object); - -static void gst_fameenc_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec); -static void gst_fameenc_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec); - -static void gst_fameenc_chain (GstPad * pad, GstData * _data); - -static GstElementClass *parent_class = NULL; - -/*static guint gst_fameenc_signals[LAST_SIGNAL] = { 0 };*/ - -GType -gst_fameenc_get_type (void) -{ - static GType fameenc_type = 0; - - if (!fameenc_type) { - static const GTypeInfo fameenc_info = { - sizeof (GstFameEncClass), - (GBaseInitFunc) gst_fameenc_base_init, - NULL, - (GClassInitFunc) gst_fameenc_class_init, - NULL, - NULL, - sizeof (GstFameEnc), - 0, - (GInstanceInitFunc) gst_fameenc_init, - }; - - fameenc_type = g_type_register_static (GST_TYPE_ELEMENT, - "GstFameEnc", &fameenc_info, 0); - } - return fameenc_type; -} - -static int -gst_fameenc_item_compare (fame_list_t * item1, fame_list_t * item2) -{ - return strcmp (item1->type, item2->type); -} - -static void -gst_fameenc_base_init (GstFameEncClass * klass) -{ - GstElementClass *element_class = GST_ELEMENT_CLASS (klass); - - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&sink_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&src_template)); - - gst_element_class_set_static_metadata (element_class, - "MPEG-1 and MPEG-4 video encoder", "Codec/Encoder/Video", - "Uses fameenc to encode MPEG video streams", - "Thomas Vander Stichele "); -} - -static void -gst_fameenc_class_init (GstFameEncClass * klass) -{ - GObjectClass *gobject_class = NULL; - GstElementClass *gstelement_class = NULL; - fame_context_t *context; - fame_list_t *walk; - GList *props = NULL, *props_walk; - gint current_prop = ARG_FAME_PROPS_START; - - gobject_class = (GObjectClass *) klass; - gstelement_class = (GstElementClass *) klass; - - parent_class = g_type_class_peek_parent (klass); - - gobject_class->set_property = gst_fameenc_set_property; - gobject_class->get_property = gst_fameenc_get_property; - gobject_class->finalize = gst_fameenc_finalize; - - fame_object_name = g_quark_from_string ("GstFameObjectName"); - - context = fame_open (); - g_assert (context); - - /* first sort the list */ - walk = context->type_list; - while (walk) { - props = - g_list_insert_sorted (props, walk, - (GCompareFunc) gst_fameenc_item_compare); - walk = walk->next; - } - - props_walk = props; - while (props_walk) { - GArray *array; - const gchar *current_type; - gint current_len; - gint current_value; - fame_object_t *current_default; - gint default_index; - - walk = (fame_list_t *) props_walk->data; - array = g_array_new (TRUE, FALSE, sizeof (GEnumValue)); - - current_type = walk->type; - current_value = 0; - current_len = strlen (walk->type); - current_default = fame_get_object (context, current_type); - default_index = 1; - - do { - if (strstr (walk->type, "/")) { - GEnumValue value; - - if (current_default == walk->item) - default_index = current_value; - - value.value = current_value++; - value.value_name = g_strdup (walk->type); - value.value_nick = g_strdup (walk->item->name); - - g_array_append_val (array, value); - } - - props_walk = g_list_next (props_walk); - if (props_walk) - walk = (fame_list_t *) props_walk->data; - - } while (props_walk && !strncmp (walk->type, current_type, current_len)); - - if (array->len > 0) { - GType type; - GParamSpec *pspec; - - type = - g_enum_register_static (g_strdup_printf ("GstFameEnc_%s", - current_type), (GEnumValue *) array->data); - - pspec = - g_param_spec_enum (current_type, current_type, - g_strdup_printf ("The FAME \"%s\" object", current_type), type, - default_index, G_PARAM_READWRITE); - - g_param_spec_set_qdata (pspec, fame_object_name, (gpointer) current_type); - - g_object_class_install_property (G_OBJECT_CLASS (klass), current_prop++, - pspec); - } - } - - g_object_class_install_property (gobject_class, ARG_BITRATE, - g_param_spec_int ("bitrate", "Bitrate", "Target bitrate (0 = VBR)", - 0, 5000000, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, ARG_QUALITY, - g_param_spec_int ("quality", "Quality", - "Percentage of quality of compression (versus size)", 0, 100, 75, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, ARG_PATTERN, - g_param_spec_string ("pattern", "Pattern", - "Encoding pattern of I, P, and B frames", "IPPPPPPPPPPP", - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, ARG_FRAMES_PER_SEQUENCE, - g_param_spec_int ("frames-per-sequence", "Frames Per Sequence", - "The number of frames in one sequence", 1, G_MAXINT, 12, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, ARG_FAME_VERBOSE, - g_param_spec_boolean ("fame-verbose", "Fame Verbose", - "Make FAME produce verbose output", FALSE, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, ARG_BUFFER_SIZE, - g_param_spec_int ("buffer-size", "Buffer Size", - "Set the decoding output buffer size", 0, 1024 * 1024, - FAMEENC_BUFFER_SIZE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -} - -static GstPadLinkReturn -gst_fameenc_sink_link (GstPad * pad, const GstCaps * caps) -{ - gint width, height, fps_idx; - gdouble fps; - GstFameEnc *fameenc; - GstStructure *structure; - - fameenc = GST_FAMEENC (gst_pad_get_parent (pad)); - - if (fameenc->initialized) { - GST_DEBUG ("error: fameenc encoder already initialized !"); - return GST_PAD_LINK_REFUSED; - } - - structure = gst_caps_get_structure (caps, 0); - gst_structure_get_int (structure, "width", &width); - gst_structure_get_int (structure, "height", &height); - gst_structure_get_double (structure, "framerate", &fps); - - /* fameenc requires width and height to be multiples of 16 */ - if (width % 16 != 0 || height % 16 != 0) - return GST_PAD_LINK_REFUSED; - - fps_idx = framerate_to_index (fps); - fameenc->fp.frame_rate_num = frame_rates[fps_idx].num; - fameenc->fp.frame_rate_den = frame_rates[fps_idx].den; - fameenc->time_interval = 0; - - fameenc->fp.width = width; - fameenc->fp.height = height; - fameenc->fp.coding = (const char *) fameenc->pattern; - - /* FIXME: choose good parameters */ - fameenc->fp.slices_per_frame = 1; - - /* FIXME: handle these properly */ - fameenc->fp.shape_quality = 75; - fameenc->fp.search_range = 0; - fameenc->fp.total_frames = 0; - fameenc->fp.retrieve_cb = NULL; - - fame_init (fameenc->fc, &fameenc->fp, fameenc->buffer, fameenc->buffer_size); - - fameenc->initialized = TRUE; - fameenc->time_interval = 0; - - return GST_PAD_LINK_OK; -} - -static void -gst_fameenc_init (GstFameEnc * fameenc) -{ - g_assert (fameenc != NULL); - g_assert (GST_IS_FAMEENC (fameenc)); - - /* open fameenc */ - fameenc->fc = fame_open (); - g_assert (fameenc->fc != NULL); - - /* create the sink and src pads */ - fameenc->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); - gst_element_add_pad (GST_ELEMENT (fameenc), fameenc->sinkpad); - gst_pad_set_chain_function (fameenc->sinkpad, gst_fameenc_chain); - gst_pad_set_link_function (fameenc->sinkpad, gst_fameenc_sink_link); - - fameenc->srcpad = gst_pad_new_from_static_template (&src_template, "src"); - gst_element_add_pad (GST_ELEMENT (fameenc), fameenc->srcpad); - /* FIXME: set some more handler functions here */ - - fameenc->verbose = FALSE; - - /* reset the initial video state */ - fameenc->fp.width = -1; - fameenc->fp.height = -1; - fameenc->initialized = FALSE; - - /* defaults */ - fameenc->fp.bitrate = 0; - fameenc->fp.quality = 75; - fameenc->fp.frame_rate_num = 25; - fameenc->fp.frame_rate_den = 1; /* avoid floating point exceptions */ - fameenc->fp.frames_per_sequence = 12; - - fameenc->pattern = g_strdup ("IPPPPPPPPPP"); - - /* allocate space for the buffer */ - fameenc->buffer_size = FAMEENC_BUFFER_SIZE; /* FIXME */ - fameenc->buffer = (unsigned char *) g_malloc (fameenc->buffer_size); - - fameenc->next_time = 0; - fameenc->time_interval = 0; -} - -static void -gst_fameenc_finalize (GObject * object) -{ - GstFameEnc *fameenc = GST_FAMEENC (object); - - g_free (fameenc->buffer); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -gst_fameenc_chain (GstPad * pad, GstData * _data) -{ - GstBuffer *buf = GST_BUFFER (_data); - GstFameEnc *fameenc; - guchar *data; - gulong size; - gint frame_size; - gint length; - - g_return_if_fail (pad != NULL); - g_return_if_fail (GST_IS_PAD (pad)); - g_return_if_fail (buf != NULL); - g_return_if_fail (GST_IS_BUFFER (buf)); - - fameenc = GST_FAMEENC (gst_pad_get_parent (pad)); - - data = (guchar *) GST_BUFFER_DATA (buf); - size = GST_BUFFER_SIZE (buf); - - GST_DEBUG ("gst_fameenc_chain: got buffer of %ld bytes in '%s'", - size, GST_OBJECT_NAME (fameenc)); - - /* the data contains the three planes side by side, with size w * h, w * h /4, - * w * h / 4 */ - fameenc->fy.w = fameenc->fp.width; - fameenc->fy.h = fameenc->fp.height; - - frame_size = fameenc->fp.width * fameenc->fp.height; - - fameenc->fy.p = 0; - fameenc->fy.y = data; - fameenc->fy.u = data + frame_size; - fameenc->fy.v = fameenc->fy.u + (frame_size >> 2); - - fame_start_frame (fameenc->fc, &fameenc->fy, NULL); - - while ((length = fame_encode_slice (fameenc->fc)) != 0) { - GstBuffer *outbuf; - - outbuf = gst_buffer_new (); - - /* FIXME: safeguard, remove me when a better way is found */ - if (length > FAMEENC_BUFFER_SIZE) - g_warning - ("FAMEENC_BUFFER_SIZE is defined too low, encoded slice has size %d !\n", - length); - - if (!fameenc->time_interval) { - fameenc->time_interval = - GST_SECOND * fameenc->fp.frame_rate_den / fameenc->fp.frame_rate_num; - } - - fameenc->next_time += fameenc->time_interval; - - GST_BUFFER_SIZE (outbuf) = length; - GST_BUFFER_TIMESTAMP (outbuf) = fameenc->next_time; - GST_BUFFER_DATA (outbuf) = g_malloc (length); - memcpy (GST_BUFFER_DATA (outbuf), fameenc->buffer, length); - GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf); - - GST_DEBUG ("gst_fameenc_chain: pushing buffer of size %d", - GST_BUFFER_SIZE (outbuf)); - - gst_pad_push (fameenc->srcpad, GST_DATA (outbuf)); - } - - fame_end_frame (fameenc->fc, NULL); - - gst_buffer_unref (buf); -} - -static void -gst_fameenc_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec) -{ - GstFameEnc *fameenc; - - g_return_if_fail (GST_IS_FAMEENC (object)); - fameenc = GST_FAMEENC (object); - - if (fameenc->initialized) { - GST_DEBUG - ("error: fameenc encoder already initialized, cannot set properties !"); - return; - } - - switch (prop_id) { - case ARG_BITRATE: - fameenc->fp.bitrate = g_value_get_int (value); - break; - case ARG_QUALITY: - fameenc->fp.quality = CLAMP (g_value_get_int (value), 0, 100); - break; - case ARG_PATTERN: - g_free (fameenc->pattern); - fameenc->pattern = g_strdup (g_value_get_string (value)); - break; - case ARG_FAME_VERBOSE: - fameenc->verbose = g_value_get_boolean (value); - break; - case ARG_BUFFER_SIZE: - fameenc->buffer_size = g_value_get_int (value); - break; - case ARG_FRAMES_PER_SEQUENCE: - fameenc->fp.frames_per_sequence = g_value_get_int (value); - break; - default: - if (prop_id >= ARG_FAME_PROPS_START) { - gchar *name; - gint index = g_value_get_enum (value); - GEnumValue *values; - - values = G_ENUM_CLASS (g_type_class_ref (pspec->value_type))->values; - name = (gchar *) g_param_spec_get_qdata (pspec, fame_object_name); - - fame_register (fameenc->fc, name, fame_get_object (fameenc->fc, - values[index].value_name)); - } else - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gst_fameenc_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec) -{ - GstFameEnc *fameenc; - - g_return_if_fail (GST_IS_FAMEENC (object)); - fameenc = GST_FAMEENC (object); - - switch (prop_id) { - case ARG_BITRATE: - g_value_set_int (value, fameenc->fp.bitrate); - break; - case ARG_QUALITY: - g_value_set_int (value, fameenc->fp.quality); - break; - case ARG_PATTERN: - g_value_set_string (value, fameenc->pattern); - break; - case ARG_FAME_VERBOSE: - g_value_set_boolean (value, fameenc->verbose); - break; - case ARG_BUFFER_SIZE: - g_value_set_int (value, fameenc->buffer_size); - break; - case ARG_FRAMES_PER_SEQUENCE: - g_value_set_int (value, fameenc->fp.frames_per_sequence); - break; - default: - if (prop_id >= ARG_FAME_PROPS_START) { - gchar *name; - gint index = 0; - GEnumValue *values; - fame_object_t *f_object; - - values = G_ENUM_CLASS (g_type_class_ref (pspec->value_type))->values; - name = (gchar *) g_param_spec_get_qdata (pspec, fame_object_name); - - f_object = fame_get_object (fameenc->fc, name); - - while (values[index].value_name) { - if (!strcmp (values[index].value_nick, f_object->name)) { - g_value_set_enum (value, index); - return; - } - index++; - } - } - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static gboolean -plugin_init (GstPlugin * plugin) -{ - return gst_element_register (plugin, "fameenc", - GST_RANK_NONE, GST_TYPE_FAMEENC); -} - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - fameenc, - "Fast Assembly MPEG Encoder", - plugin_init, - LIBFAME_VERSION, "LGPL", "libfame", "http://fame.sourceforge.net/") diff --git a/ext/libfame/gstlibfame.h b/ext/libfame/gstlibfame.h deleted file mode 100644 index 4c53e8cce1..0000000000 --- a/ext/libfame/gstlibfame.h +++ /dev/null @@ -1,87 +0,0 @@ -/* GStreamer - * Copyright (C) <1999> Erik Walthinsen - * - * 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., 51 Franklin St, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - - -#ifndef __GST_FAMEENC_H__ -#define __GST_FAMEENC_H__ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -#define GST_TYPE_FAMEENC \ - (gst_fameenc_get_type()) -#define GST_FAMEENC(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FAMEENC,GstFameEnc)) -#define GST_FAMEENC_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FAMEENC,GstFameEncClass)) -#define GST_IS_FAMEENC(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FAMEENC)) -#define GST_IS_FAMEENC_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FAMEENC)) - -typedef struct _GstFameEnc GstFameEnc; -typedef struct _GstFameEncClass GstFameEncClass; - -struct _GstFameEnc { - GstElement element; - - /* pads */ - GstPad *sinkpad, *srcpad; - - /* the timestamp of the next frame */ - guint64 next_time; - /* the interval between frames */ - guint64 time_interval; - - /* video state */ - gint format; - /* the size of the output buffer */ - gint outsize; - - /* encoding pattern string */ - gchar *pattern; - - /* fameenc stuff */ - gboolean verbose; - fame_context_t *fc; - fame_parameters_t fp; - fame_yuv_t fy; - gulong buffer_size; - unsigned char *buffer; - gboolean initialized; -}; - -struct _GstFameEncClass { - GstElementClass parent_class; -}; - -GType gst_fameenc_get_type (void); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif /* __GST_FAMEENC_H__ */ diff --git a/m4/Makefile.am b/m4/Makefile.am index d4e78930b2..95a66414cd 100644 --- a/m4/Makefile.am +++ b/m4/Makefile.am @@ -18,7 +18,6 @@ EXTRA_DIST = \ inttypes_h.m4 \ inttypes-pri.m4 \ lcmessage.m4 \ - libfame.m4 \ lib-ld.m4 \ lib-link.m4 \ libmikmod.m4 \ diff --git a/m4/libfame.m4 b/m4/libfame.m4 deleted file mode 100644 index b570584bfc..0000000000 --- a/m4/libfame.m4 +++ /dev/null @@ -1,182 +0,0 @@ -dnl AM_PATH_LIBFAME([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) -dnl Test for libfame, and define LIBFAME_CFLAGS and LIBFAME_LIBS -dnl Vivien Chappelier 12/11/00 -dnl stolen from ORBit autoconf -dnl -AC_DEFUN([AM_PATH_LIBFAME], -[dnl -dnl Get the cflags and libraries from the libfame-config script -dnl -AC_ARG_WITH(libfame-prefix,[ --with-libfame-prefix=PFX Prefix where libfame is installed (optional)], - libfame_config_prefix="$withval", libfame_config_prefix="") -AC_ARG_WITH(libfame-exec-prefix,[ --with-libfame-exec-prefix=PFX Exec prefix where libfame is installed (optional)], - libfame_config_exec_prefix="$withval", libfame_config_exec_prefix="") -AC_ARG_ENABLE(libfametest, [ --disable-libfametest Do not try to compile and run a test libfame program], - , enable_libfametest=yes) - - if test x$libfame_config_exec_prefix != x ; then - libfame_config_args="$libfame_config_args --exec-prefix=$libfame_config_exec_prefix" - if test x${LIBFAME_CONFIG+set} != xset ; then - LIBFAME_CONFIG=$libfame_config_exec_prefix/bin/libfame-config - fi - fi - if test x$libfame_config_prefix != x ; then - libfame_config_args="$libfame_config_args --prefix=$libfame_config_prefix" - if test x${LIBFAME_CONFIG+set} != xset ; then - LIBFAME_CONFIG=$libfame_config_prefix/bin/libfame-config - fi - fi - - AC_PATH_PROG(LIBFAME_CONFIG, libfame-config, no) - min_libfame_version=ifelse([$1], , 0.9.0, $1) - AC_MSG_CHECKING(for libfame - version >= $min_libfame_version) - no_libfame="" - if test "$LIBFAME_CONFIG" = "no" ; then - no_libfame=yes - else - LIBFAME_CFLAGS=`$LIBFAME_CONFIG $libfame_config_args --cflags` - LIBFAME_LIBS=`$LIBFAME_CONFIG $libfame_config_args --libs` - libfame_config_major_version=`$LIBFAME_CONFIG $libfame_config_args --version | \ - sed -e 's,[[^0-9.]],,g' -e 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - libfame_config_minor_version=`$LIBFAME_CONFIG $libfame_config_args --version | \ - sed -e 's,[[^0-9.]],,g' -e 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - libfame_config_micro_version=`$LIBFAME_CONFIG $libfame_config_args --version | \ - sed -e 's,[[^0-9.]],,g' -e 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` - if test "x$enable_libfametest" = "xyes" ; then - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $LIBFAME_CFLAGS" - LIBS="$LIBFAME_LIBS $LIBS" -dnl -dnl Now check if the installed LIBFAME is sufficiently new. (Also sanity -dnl checks the results of libfame-config to some extent -dnl - rm -f conf.libfametest - AC_TRY_RUN([ -#include -#include -#include -#include - -int -main () -{ - int major, minor, micro; - char *tmp_version; - - system ("touch conf.libfametest"); - - /* HP/UX 9 (%@#!) writes to sscanf strings */ - tmp_version = strdup("$min_libfame_version"); - if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_libfame_version"); - exit(1); - } - - if ((libfame_major_version != $libfame_config_major_version) || - (libfame_minor_version != $libfame_config_minor_version) || - (libfame_micro_version != $libfame_config_micro_version)) - { - printf("\n*** 'libfame-config --version' returned %d.%d.%d, but Libfame (%d.%d.%d)\n", - $libfame_config_major_version, $libfame_config_minor_version, $libfame_config_micro_version, - libfame_major_version, libfame_minor_version, libfame_micro_version); - printf ("*** was found! If libfame-config was correct, then it is best\n"); - printf ("*** to remove the old version of libfame. You may also be able to fix the error\n"); - printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); - printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); - printf("*** required on your system.\n"); - printf("*** If libfame-config was wrong, set the environment variable LIBFAME_CONFIG\n"); - printf("*** to point to the correct copy of libfame-config, and remove the file config.cache\n"); - printf("*** before re-running configure\n"); - } -#if defined (LIBFAME_MAJOR_VERSION) && defined (LIBFAME_MINOR_VERSION) && defined (LIBFAME_MICRO_VERSION) - else if ((libfame_major_version != LIBFAME_MAJOR_VERSION) || - (libfame_minor_version != LIBFAME_MINOR_VERSION) || - (libfame_micro_version != LIBFAME_MICRO_VERSION)) - { - printf("*** libfame header files (version %d.%d.%d) do not match\n", - LIBFAME_MAJOR_VERSION, LIBFAME_MINOR_VERSION, LIBFAME_MICRO_VERSION); - printf("*** library (version %d.%d.%d)\n", - libfame_major_version, libfame_minor_version, libfame_micro_version); - } -#endif /* defined (LIBFAME_MAJOR_VERSION) ... */ - else - { - if ((libfame_major_version > major) || - ((libfame_major_version == major) && (libfame_minor_version > minor)) || - ((libfame_major_version == major) && (libfame_minor_version == minor) && (libfame_micro_version >= micro))) - { - return 0; - } - else - { - printf("\n*** An old version of libfame (%d.%d.%d) was found.\n", - libfame_major_version, libfame_minor_version, libfame_micro_version); - printf("*** You need a version of libfame newer than %d.%d.%d. The latest version of\n", - major, minor, micro); - printf("*** libfame is always available from http://www-eleves.enst-bretagne.fr/~chappeli/fame\n"); - printf("***\n"); - printf("*** If you have already installed a sufficiently new version, this error\n"); - printf("*** probably means that the wrong copy of the libfame-config shell script is\n"); - printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of libfame, but you can also set the LIBFAME_CONFIG environment to point to the\n"); - printf("*** correct copy of libfame-config. (In this case, you will have to\n"); - printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); - printf("*** so that the correct libraries are found at run-time))\n"); - } - } - return 1; -} -],, no_libfame=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - if test "x$no_libfame" = x ; then - AC_MSG_RESULT(yes) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT(no) - if test "$LIBFAME_CONFIG" = "no" ; then - echo "*** The libfame-config script installed by libfame could not be found" - echo "*** If libfame was installed in PREFIX, make sure PREFIX/bin is in" - echo "*** your path, or set the LIBFAME_CONFIG environment variable to the" - echo "*** full path to libfame-config." - else - if test -f conf.libfametest ; then - : - else - echo "*** Could not run libfame test program, checking why..." - CFLAGS="$CFLAGS $LIBFAME_CFLAGS" - LIBS="$LIBS $LIBFAME_LIBS" - AC_TRY_LINK([ -#include -#include -], [ return ((libfame_major_version) || (libfame_minor_version) || (libfame_micro_version)); ], - [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding libfame or finding the wrong" - echo "*** version of LIBFAME. If it is not finding libfame, you'll need to set your" - echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" - echo "*** to the installed location Also, make sure you have run ldconfig if that" - echo "*** is required on your system" - echo "***" - echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" - echo "***" ], - [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means libfame was incorrectly installed" - echo "*** or that you have moved libfame since it was installed. In the latter case, you" - echo "*** may want to edit the libfame-config script: $LIBFAME_CONFIG" ]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - fi - fi - LIBFAME_CFLAGS="" - LIBFAME_LIBS="" - ifelse([$3], , :, [$3]) - fi - - AC_SUBST(LIBFAME_CFLAGS) - AC_SUBST(LIBFAME_LIBS) - rm -f conf.libfametest -])