This file is indexed.

/usr/include/gpac/internal/mpd.h is in libgpac-dev 0.4.5+svn3462~dfsg0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
 *			GPAC - Multimedia Framework C SDK
 *
 *			Authors: Cyril Concolato
 *			Copyright (c) Telecom ParisTech 2010-
 *					All rights reserved
 *
 *  This file is part of GPAC / 3GPP/MPEG Media Presentation Description input module
 *
 *  GPAC is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU Lesser General Public License as published by
 *  the Free Software Foundation; either version 2, or (at your option)
 *  any later version.
 *   
 *  GPAC 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 Lesser General Public License for more details.
 *   
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; see the file COPYING.  If not, write to
 *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
 *		
 */
#ifndef _MPD_IN_H_
#define _MPD_IN_H_

#include <gpac/constants.h>
#include <gpac/xml.h>
#include <gpac/media_tools.h>
#include <gpac/internal/terminal_dev.h>

typedef struct
{
    char *url;
    Bool use_byterange;
    u32 byterange_start;
    u32 byterange_end;
} GF_MPD_SegmentInfo;

typedef struct {
    char *id;
    u32 bandwidth;
    u32 width;
    u32 height;
    char *lang;
    char *mime;
    u32 groupID;
    Bool disabled;
    Bool startWithRap;
	/* TODO: maximumRAPPeriod */
	/* TODO: depid*/
	/* TODO: default rep*/

    u32 qualityRanking;
    char *content_protection_type;
    char *content_protection_uri;
    double alternatePlayoutRate;
    u32 default_segment_duration;
	/*TODO: multiple views */
    char *default_base_url;

    /* initialization segment */
    char *init_url;
    Bool init_use_range;
    u32 init_byterange_start;
    u32 init_byterange_end;
    
    /* other segments */
    char *url_template;
    u32 startIndex;
    u32 endIndex;

	GF_List *segments;
} GF_MPD_Representation;

typedef struct {
    u32 start; /* expressed in seconds, relative to the start of the MPD */
	u32 duration; /* TODO */
	char *id; /* TODO */
    u8 flags;
    Bool segment_alignment_flag; /* to be merged into real flags */
    Bool bitstream_switching_flag;

    u32 default_segment_duration; /* milliseconds */
    char *default_base_url;
	/* TODO: default timeline */
    char *url_template;

	/* TODO: xlink:href & xlink:actuate */

    GF_List *representations;
	/* TODO: representation groups */
	/* TODO: subset */
} GF_MPD_Period;

typedef enum {
    GF_MPD_TYPE_ON_DEMAND,
    GF_MPD_TYPE_LIVE,
} GF_MPD_Type;

typedef struct {
    GF_MPD_Type type;
    char *base_url;
	/* TODO: add alternate URL */
    u32 duration; /* expressed in milliseconds */
    u32 min_update_time; /* expressed in milliseconds */
    u32 min_buffer_time; /* expressed in milliseconds */
    /*start time*/
    /*end time*/
    u32 time_shift_buffer_depth; /* expressed in milliseconds */
    char *title;
    char *source;
    char *copyright;
    char *more_info_url;

    /* the number of periods is dynamic since we may update the MPD from time to time, cannot avoid GF_List */
    GF_List *periods;
} GF_MPD;

GF_Err gf_mpd_init_from_dom(GF_XMLNode *root, GF_MPD *mpd, const char *base_url);

GF_MPD *gf_mpd_new();
void gf_mpd_del(GF_MPD *mpd);

GF_Err gf_m3u8_to_mpd(GF_ClientService *service, const char *m3u8_file, const char *base_url, 
					  const char *mpd_file,
					  u32 reload_count, char *mimeTypeForM3U8Segments);

#endif // _MPD_IN_H_