• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* GStreamer
2  *
3  * Copyright (C) 2019 Collabora Ltd.
4  *   Author: Stéphane Cerveau <scerveau@collabora.com>
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Library General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Library General Public License for more details.
15  *
16  * You should have received a copy of the GNU Library General Public
17  * License along with this library (COPYING); if not, write to the
18  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19  * Boston, MA 02111-1307, USA.
20  */
21 #ifndef __GSTMPDROOTNODE_H__
22 #define __GSTMPDROOTNODE_H__
23 
24 #include <gst/gst.h>
25 #include "gstmpdhelper.h"
26 
27 G_BEGIN_DECLS
28 
29 #define GST_TYPE_MPD_ROOT_NODE gst_mpd_root_node_get_type ()
30 G_DECLARE_FINAL_TYPE (GstMPDRootNode, gst_mpd_root_node, GST, MPD_ROOT_NODE, GstMPDNode)
31 
32 struct _GstMPDRootNode
33 {
34   GstObject     parent_instance;
35   gchar *default_namespace;
36   gchar *namespace_xsi;
37   gchar *namespace_ext;
38   gchar *schemaLocation;
39   gchar *id;
40   gchar *profiles;
41   GstMPDFileType type;
42   GstDateTime *availabilityStartTime;
43   GstDateTime *availabilityEndTime;
44   GstDateTime *publishTime;
45   guint64 mediaPresentationDuration;  /* [ms] */
46   guint64 minimumUpdatePeriod;        /* [ms] */
47   guint64 minBufferTime;              /* [ms] */
48   guint64 timeShiftBufferDepth;       /* [ms] */
49   guint64 suggestedPresentationDelay; /* [ms] */
50   guint64 maxSegmentDuration;         /* [ms] */
51   guint64 maxSubsegmentDuration;      /* [ms] */
52   /* list of BaseURL nodes */
53   GList *BaseURLs;
54   /* list of Location nodes */
55   GList *Locations;
56   /* List of ProgramInformation nodes */
57   GList *ProgramInfos;
58   /* list of Periods nodes */
59   GList *Periods;
60   /* list of Metrics nodes */
61   GList *Metrics;
62   /* list of GstUTCTimingNode nodes */
63   GList *UTCTimings;
64 };
65 
66 GstMPDRootNode * gst_mpd_root_node_new (void);
67 void gst_mpd_root_node_free (GstMPDRootNode* self);
68 
69 G_END_DECLS
70 #endif /* __GSTMPDROOTNODE_H__ */
71