mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-27 10:40:34 +00:00
6ffee3230a
Original commit message from CVS: Patch by: Lutz Mueller <lutz topfrose de> * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init), (gst_neonhttp_src_init), (gst_neonhttp_src_set_property), (gst_neonhttp_src_set_uri), (gst_neonhttp_src_set_proxy), (gst_neonhttp_src_send_request_and_redirect), (gst_neonhttp_src_uri_set_uri): * ext/neon/gstneonhttpsrc.h: Simplify _set_uri() and _set_proxy() and remove the unused ishttp member (#388050). * tests/check/elements/neonhttpsrc.c: (GST_START_TEST): Fix bogus URI to something that actually exists, otherwise we just bypass the test (and also to something that doesn't redirect, since neonhttpsrc doesn't seem to handle this very gracefully yet)
86 lines
2.3 KiB
C
86 lines
2.3 KiB
C
/* GStreamer
|
|
* Copyright (C) <2005> Edgard Lima <edgard.lima@indt.org.br>
|
|
* Copyright (C) <2006> Rosfran Borges <rosfran.borges@indt.org.br>
|
|
* Copyright (C) <2006> Andre Moreira Magalhaes <andre.magalhaes@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 <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,GstNeonhttpSrcClass))
|
|
#define GST_IS_NEONHTTP_SRC(obj) \
|
|
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_NEONHTTP_SRC))
|
|
#define GST_IS_NEONHTTP_SRC_CLASS(klass) \
|
|
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_NEONHTTP_SRC))
|
|
|
|
typedef struct _GstNeonhttpSrc GstNeonhttpSrc;
|
|
typedef struct _GstNeonhttpSrcClass GstNeonhttpSrcClass;
|
|
|
|
struct _GstNeonhttpSrc {
|
|
GstPushSrc element;
|
|
|
|
/* socket */
|
|
ne_session *session;
|
|
ne_request *request;
|
|
ne_uri uri;
|
|
gchar *uristr;
|
|
ne_uri proxy;
|
|
gchar *user_agent;
|
|
|
|
guint64 content_size;
|
|
|
|
gboolean eos;
|
|
|
|
/* icecast/audiocast metadata extraction handling */
|
|
gboolean iradio_mode;
|
|
gchar *iradio_name;
|
|
gchar *iradio_genre;
|
|
gchar *iradio_url;
|
|
GstCaps *icy_caps;
|
|
gint icy_metaint;
|
|
|
|
/* enable Neon HTTP redirects (HTTP 302 status code) */
|
|
gboolean neon_http_redirect;
|
|
|
|
/* enable Neon HTTP debug messages */
|
|
gboolean neon_http_msgs_dbg;
|
|
|
|
gint64 read_position;
|
|
gboolean seekable;
|
|
};
|
|
|
|
struct _GstNeonhttpSrcClass {
|
|
GstPushSrcClass parent_class;
|
|
};
|
|
|
|
GType gst_neonhttp_src_get_type (void);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __GST_NEONHTTP_SRC_H__ */
|
|
|