summaryrefslogtreecommitdiffstats
path: root/gst/rtjpeg/gstrtjpegenc.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2001-12-22 23:26:33 +0000
committerAndy Wingo <wingo@pobox.com>2001-12-22 23:26:33 +0000
commitad6ed7da2d0d15eecc924dfe408320652481e885 (patch)
tree5adb0cfc1d7b419d6b4246f616400dca7678bac0 /gst/rtjpeg/gstrtjpegenc.c
parente5d9d6e2a512540848f5d38e01b9678a1ef5c761 (diff)
downloadgst-plugins-bad-ad6ed7da2d0d15eecc924dfe408320652481e885.tar.gz
gst-plugins-bad-ad6ed7da2d0d15eecc924dfe408320652481e885.tar.bz2
gst-plugins-bad-ad6ed7da2d0d15eecc924dfe408320652481e885.zip
Initial revision
Original commit message from CVS: Initial revision
Diffstat (limited to 'gst/rtjpeg/gstrtjpegenc.c')
-rw-r--r--gst/rtjpeg/gstrtjpegenc.c112
1 files changed, 112 insertions, 0 deletions
diff --git a/gst/rtjpeg/gstrtjpegenc.c b/gst/rtjpeg/gstrtjpegenc.c
new file mode 100644
index 00000000..68b1e843
--- /dev/null
+++ b/gst/rtjpeg/gstrtjpegenc.c
@@ -0,0 +1,112 @@
+/* Gnome-Streamer
+ * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
+ *
+ * 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.
+ */
+
+
+#include <gstrtjpegenc.h>
+
+/* elementfactory information */
+GstElementDetails gst_rtjpegenc_details = {
+ "RTjpeg encoder",
+ "Filter/Video/Encoder",
+ "Encodes video in RTjpeg format",
+ VERSION,
+ "Erik Walthinsen <omega@cse.ogi.edu>",
+ "(C) 1999",
+};
+
+/* GstRTJpegEnc signals and args */
+enum {
+ /* FILL ME */
+ LAST_SIGNAL
+};
+
+enum {
+ ARG_0,
+ ARG_QUALITY,
+};
+
+
+static void gst_rtjpegenc_class_init (GstRTJpegEncClass *klass);
+static void gst_rtjpegenc_init (GstRTJpegEnc *rtjpegenc);
+
+static void gst_rtjpegenc_chain (GstPad *pad, GstBuffer *buf);
+
+static GstElementClass *parent_class = NULL;
+//static guint gst_rtjpegenc_signals[LAST_SIGNAL] = { 0 };
+
+GType
+gst_rtjpegenc_get_type (void)
+{
+ static GType rtjpegenc_type = 0;
+
+ if (!rtjpegenc_type) {
+ static const GTypeInfo rtjpegenc_info = {
+ sizeof(GstRTJpegEncClass), NULL,
+ NULL,
+ (GClassInitFunc)gst_rtjpegenc_class_init,
+ NULL,
+ NULL,
+ sizeof(GstRTJpegEnc),
+ 0,
+ (GInstanceInitFunc)gst_rtjpegenc_init,
+ };
+ rtjpegenc_type = g_type_register_static(GST_TYPE_ELEMENT, "GstRTJpegEnc", &rtjpegenc_info, 0);
+ }
+ return rtjpegenc_type;
+}
+
+static void
+gst_rtjpegenc_class_init (GstRTJpegEncClass *klass)
+{
+ GstElementClass *gstelement_class;
+
+ gstelement_class = (GstElementClass*)klass;
+
+ parent_class = g_type_class_ref(GST_TYPE_ELEMENT);
+}
+
+static void
+gst_rtjpegenc_init (GstRTJpegEnc *rtjpegenc)
+{
+ rtjpegenc->sinkpad = gst_pad_new("sink",GST_PAD_SINK);
+ gst_element_add_pad(GST_ELEMENT(rtjpegenc),rtjpegenc->sinkpad);
+ gst_pad_set_chain_function(rtjpegenc->sinkpad,gst_rtjpegenc_chain);
+ rtjpegenc->srcpad = gst_pad_new("src",GST_PAD_SRC);
+ gst_element_add_pad(GST_ELEMENT(rtjpegenc),rtjpegenc->srcpad);
+}
+
+static void
+gst_rtjpegenc_chain (GstPad *pad, GstBuffer *buf)
+{
+ GstRTJpegEnc *rtjpegenc;
+ guchar *data;
+ gulong size;
+
+ g_return_if_fail(pad != NULL);
+ g_return_if_fail(GST_IS_PAD(pad));
+ g_return_if_fail(buf != NULL);
+
+ rtjpegenc = GST_RTJPEGENC (GST_OBJECT_PARENT (pad));
+ data = GST_BUFFER_DATA(buf);
+ size = GST_BUFFER_SIZE(buf);
+
+ gst_info("would be encoding frame here\n");
+
+ gst_pad_push(rtjpegenc->srcpad,buf);
+}