gstreamer/gst-libs/gst/uridownloader/gstfragment.h
Tim-Philipp Müller 665cc1c6f2 uridownloader: GST_EXPORT -> GST_URI_DOWNLOADER_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
2018-03-13 13:05:45 +00:00

88 lines
3 KiB
C

/* GStreamer
* Copyright (C) 2011 Andoni Morales Alastruey <ylatuya@gmail.com>
*
* gstfragment.h:
*
* 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., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef __GSTFRAGMENT_H__
#define __GSTFRAGMENT_H__
#include <glib-object.h>
#include <gst/gst.h>
#include <gst/uridownloader/uridownloader-prelude.h>
G_BEGIN_DECLS
#define GST_TYPE_FRAGMENT (gst_fragment_get_type())
#define GST_FRAGMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FRAGMENT,GstFragment))
#define GST_FRAGMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FRAGMENT,GstFragmentClass))
#define GST_IS_FRAGMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FRAGMENT))
#define GST_IS_FRAGMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FRAGMENT))
typedef struct _GstFragment GstFragment;
typedef struct _GstFragmentPrivate GstFragmentPrivate;
typedef struct _GstFragmentClass GstFragmentClass;
struct _GstFragment
{
GObject parent;
gchar * uri; /* URI of the fragment */
gchar * redirect_uri; /* Redirect target if any */
gboolean redirect_permanent; /* If the redirect is permanent */
gint64 range_start;
gint64 range_end;
gchar * name; /* Name of the fragment */
gboolean completed; /* Whether the fragment is complete or not */
guint64 download_start_time; /* Epoch time when the download started */
guint64 download_stop_time; /* Epoch time when the download finished */
guint64 start_time; /* Start time of the fragment */
guint64 stop_time; /* Stop time of the fragment */
gboolean index; /* Index of the fragment */
gboolean discontinuous; /* Whether this fragment is discontinuous or not */
GstStructure *headers; /* HTTP request/response headers */
GstFragmentPrivate *priv;
};
struct _GstFragmentClass
{
GObjectClass parent_class;
};
GST_URI_DOWNLOADER_API
GType gst_fragment_get_type (void);
GST_URI_DOWNLOADER_API
GstBuffer * gst_fragment_get_buffer (GstFragment *fragment);
GST_URI_DOWNLOADER_API
void gst_fragment_set_caps (GstFragment * fragment, GstCaps * caps);
GST_URI_DOWNLOADER_API
GstCaps * gst_fragment_get_caps (GstFragment * fragment);
GST_URI_DOWNLOADER_API
gboolean gst_fragment_add_buffer (GstFragment *fragment, GstBuffer *buffer);
GST_URI_DOWNLOADER_API
GstFragment * gst_fragment_new (void);
G_END_DECLS
#endif /* __GSTFRAGMENT_H__ */