diff options
author | Edgard Lima <edgard.lima@indt.org.br> | 2005-12-28 21:07:17 +0000 |
---|---|---|
committer | Edgard Lima <edgard.lima@indt.org.br> | 2005-12-28 21:07:17 +0000 |
commit | 3f88a353d408860ad829a645e5f47c679b4225ab (patch) | |
tree | b2c5ccf5cb802b666df5f9b49531fe16add5a665 /ext/neon/gstneonhttpsrc.h | |
parent | 95d65be727e4e64070c249641bd20d1c24070069 (diff) | |
download | gst-plugins-bad-3f88a353d408860ad829a645e5f47c679b4225ab.tar.gz gst-plugins-bad-3f88a353d408860ad829a645e5f47c679b4225ab.tar.bz2 gst-plugins-bad-3f88a353d408860ad829a645e5f47c679b4225ab.zip |
Created new element neonhttpsrc.
Original commit message from CVS:
Created new element neonhttpsrc.
Diffstat (limited to 'ext/neon/gstneonhttpsrc.h')
-rw-r--r-- | ext/neon/gstneonhttpsrc.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/ext/neon/gstneonhttpsrc.h b/ext/neon/gstneonhttpsrc.h new file mode 100644 index 00000000..6691d639 --- /dev/null +++ b/ext/neon/gstneonhttpsrc.h @@ -0,0 +1,82 @@ +/* GStreamer + * Copyright (C) <2005> Edgard Lima <edgard.lima@indt.org.br> + * + * 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 + */ + +#ifndef __GST_NEONHTTP_SRC_H__ +#define __GST_NEONHTTP_SRC_H__ + +#include <gst/gst.h> +#include <gst/base/gstpushsrc.h> +#include <gst/base/gstadapter.h> +#include <stdio.h> + +G_BEGIN_DECLS + +#include <ne_session.h> +#include <ne_request.h> +#include <ne_socket.h> + +#define GST_TYPE_NEONHTTP_SRC \ + (gst_neonhttp_src_get_type()) +#define GST_NEONHTTP_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_NEONHTTP_SRC,GstNeonhttpSrc)) +#define GST_NEONHTTP_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_NEONHTTP_SRC,GstNeonhttpSrc)) +#define GST_IS_NEONHTTP_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_NEONHTTP_SRC)) +#define GST_IS_NEONHTTP_SRC_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_NEONHTTP_SRC)) + +typedef struct _GstNeonhttpSrc GstNeonhttpSrc; +typedef struct _GstNeonhttpSrcClass GstNeonhttpSrcClass; + +typedef enum { + GST_NEONHTTP_SRC_OPEN = (GST_ELEMENT_FLAG_LAST << 0), + + GST_NEONHTTP_SRC_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2) +} GstTCPClientSrcFlags; + +struct _GstNeonhttpSrc { + GstPushSrc element; + + /* socket */ + ne_session *session; + ne_request *request; + ne_uri uri; + gchar *uristr; + ne_uri proxy; + + gboolean ishttps; + + gint content_size; + gint current_size; + + GstAdapter *adapter; + GMutex *lock; + GstTask *task; + GStaticRecMutex tasklock; + gboolean eos; + + char respbuf[BUFSIZ]; + +}; + +struct _GstNeonhttpSrcClass { + GstPushSrcClass parent_class; +}; + +GType gst_neonhttp_src_get_type (void); + +G_END_DECLS + +#endif /* __GST_NEONHTTP_SRC_H__ */ |