X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=ext%2Fsoup%2Fgstsouphttpsrc.h;h=74a34bb112ade5c45f30f7ebc31a40e5c240dca0;hb=71eab0c2482825df1aba6cc304cb83aaa232779e;hp=186c6d0679835591a85667918283b022f9c0216c;hpb=2d6dfd5b316596616e99d4dea4caf3593e4bf4f3;p=platform%2Fupstream%2Fgst-plugins-good.git diff --git a/ext/soup/gstsouphttpsrc.h b/ext/soup/gstsouphttpsrc.h index 186c6d0..74a34bb 100644 --- a/ext/soup/gstsouphttpsrc.h +++ b/ext/soup/gstsouphttpsrc.h @@ -9,7 +9,7 @@ * 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 + * Library General Public License for more */ #ifndef __GST_SOUP_HTTP_SRC_H__ @@ -49,6 +49,8 @@ struct _GstSoupHTTPSrc { GstPushSrc element; gchar *location; /* Full URI. */ + gchar *redirection_uri; /* Full URI after redirections. */ + gboolean redirection_permanent; /* Permanent or temporary redirect? */ gchar *user_agent; /* User-Agent HTTP header. */ gboolean automatic_redirect; /* Follow redirects. */ SoupURI *proxy; /* HTTP proxy URI. */ @@ -57,17 +59,16 @@ struct _GstSoupHTTPSrc { gchar *proxy_id; /* Authentication user id for proxy URI. */ gchar *proxy_pw; /* Authentication user password for proxy URI. */ gchar **cookies; /* HTTP request cookies. */ - GMainContext *context; /* I/O context. */ - GMainLoop *loop; /* Event loop. */ SoupSession *session; /* Async context. */ - GstSoupHTTPSrcSessionIOStatus session_io_status; - /* Async I/O status. */ + gboolean session_is_shared; + SoupSession *external_session; /* Shared via GstContext */ + gboolean forced_external_session; /* If session was explicitly set from application */ SoupMessage *msg; /* Request message. */ - GstFlowReturn ret; /* Return code from callback. */ - GstBuffer **outbuf; /* Return buffer allocated by callback. */ - gboolean interrupted; /* Signal unlock(). */ - gboolean retry; /* Should attempt to reconnect. */ + gint retry_count; /* Number of retries since we received data */ + gint max_retries; /* Maximum number of retries */ + gchar *method; /* HTTP method */ + gboolean got_headers; /* Already received headers from the server */ gboolean have_size; /* Received and parsed Content-Length header. */ guint64 content_size; /* Value of Content-Length header. */ @@ -75,8 +76,28 @@ struct _GstSoupHTTPSrc { gboolean seekable; /* FALSE if the server does not support Range. */ guint64 request_position; /* Seek to this position. */ + guint64 stop_position; /* Stop at this position. */ + gboolean have_body; /* Indicates if it has just been signaled the + * end of the message body. This is used to + * decide if an out of range request should be + * handled as an error or EOS when the content + * size is unknown */ + gboolean keep_alive; /* Use keep-alive sessions */ + gboolean ssl_strict; + gchar *ssl_ca_file; + gboolean ssl_use_system_ca_file; + GTlsDatabase *tls_database; + GTlsInteraction *tls_interaction; + + GCancellable *cancellable; + GInputStream *input_stream; + + gint reduce_blocksize_count; + gint increase_blocksize_count; + guint minimum_blocksize; /* Shoutcast/icecast metadata extraction handling. */ + gboolean iradio_mode; GstCaps *src_caps; gchar *iradio_name; gchar *iradio_genre; @@ -84,7 +105,25 @@ struct _GstSoupHTTPSrc { GstStructure *extra_headers; + SoupLoggerLogLevel log_level;/* Soup HTTP session logger level */ + + gboolean compress; + guint timeout; + + GMutex mutex; + GCond have_headers_cond; + + GstEvent *http_headers_event; + + gint64 last_socket_read_time; + +#ifdef TIZEN_FEATURE_SOUP_MODIFICATION + gchar *dash_oldest_segment; + gchar *dash_newest_segment; + guint64 received_total; /* temp: for debugging */ + guint dlna_opt; /* DLNA server option */ +#endif }; struct _GstSoupHTTPSrcClass {