From 6bf780bf458ca12bab11d21b4e549432d759d4f5 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Sat, 22 Nov 2003 12:37:15 +0000 Subject: Why wasn't this committed in my previous try? Original commit message from CVS: Why wasn't this committed in my previous try? --- ext/faac/Makefile.am | 8 ++++++ ext/faac/gstfaac.h | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 ext/faac/Makefile.am create mode 100644 ext/faac/gstfaac.h diff --git a/ext/faac/Makefile.am b/ext/faac/Makefile.am new file mode 100644 index 000000000..c5610e979 --- /dev/null +++ b/ext/faac/Makefile.am @@ -0,0 +1,8 @@ +plugin_LTLIBRARIES = libgstfaac.la + +libgstfaac_la_SOURCES = gstfaac.c +libgstfaac_la_CFLAGS = $(FAAC_CFLAGS) $(GST_CFLAGS) +libgstfaac_la_LIBADD = $(FAAC_LIBS) +libgstfaac_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) + +noinst_HEADERS = gstfaac.h diff --git a/ext/faac/gstfaac.h b/ext/faac/gstfaac.h new file mode 100644 index 000000000..55daea678 --- /dev/null +++ b/ext/faac/gstfaac.h @@ -0,0 +1,74 @@ +/* GStreamer FAAC (Free AAC Encoder) plugin + * Copyright (C) 2003 Ronald Bultje + * + * 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. + */ + +#ifndef __GST_FAAC_H__ +#define __GST_FAAC_H__ + +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_FAAC \ + (gst_faac_get_type ()) +#define GST_FAAC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_FAAC, GstFaac)) +#define GST_FAAC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_FAAC, GstFaacClass)) +#define GST_IS_FAAC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_FAAC)) +#define GST_IS_FAAC_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_FAAC)) + +typedef struct _GstFaac { + GstElement element; + + /* pads */ + GstPad *srcpad, *sinkpad; + + /* stream properties */ + gint samplerate, + channels, + format, + bps, + bitrate, + profile, + shortctl; + gboolean tns, + midside; + gulong bytes, + samples; + + /* FAAC object */ + faacEncHandle handle; + + /* cache of the input */ + GstBuffer *cache; + guint64 cache_time, cache_duration; +} GstFaac; + +typedef struct _GstFaacClass { + GstElementClass parent_class; +} GstFaacClass; + +GType gst_faac_get_type (void); + +G_END_DECLS + +#endif /* __GST_FAAC_H__ */ -- cgit v1.2.1