This file is indexed.

/usr/include/mp4v2/chapter.h is in libmp4v2-dev 2.0.0~dfsg0-3.

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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#ifndef MP4V2_CHAPTER_H
#define MP4V2_CHAPTER_H

/**************************************************************************//**
 *
 *  @defgroup mp4_chapter MP4v2 Chapter
 *  @{
 *
 *****************************************************************************/

/** The maximum length of a QuickTime chapter title (in 8-bit chars)
 */
#define MP4V2_CHAPTER_TITLE_MAX 1023

/** Chapter item.
 *  This item defines various attributes for a chapter.
 *  @ingroup mp4_chapter
 */
typedef struct MP4Chapter_s {
    MP4Duration duration; /**< duration of chapter in milliseconds */
    char title[MP4V2_CHAPTER_TITLE_MAX+1]; /**< title of chapter */
} MP4Chapter_t;

/** Known chapter types.
 *  @ingroup mp4_chapter
 */
typedef enum {
    MP4ChapterTypeNone = 0, /**< no chapters found return value */
    MP4ChapterTypeAny  = 1, /**< any or all known chapter types */
    MP4ChapterTypeQt   = 2, /**< QuickTime chapter type */
    MP4ChapterTypeNero = 4  /**< Nero chapter type */
} MP4ChapterType;

/** Add a QuickTime chapter.
 *
 *  This function adds a QuickTime chapter to file <b>hFile</b>.
 *
 *  @param hFile handle of file to add chapter.
 *  @param chapterTrackId ID of chapter track or #MP4_INVALID_TRACK_ID
 *      if unknown.
 *  @param chapterDuration duration (in the timescale of the chapter track).
 *  @param chapterTitle title text for the chapter or NULL to use default
 *      title format ("Chapter %03d", n) where n is the chapter number.
 */
MP4V2_EXPORT
void MP4AddChapter(
    MP4FileHandle hFile,
    MP4TrackId    chapterTrackId,
    MP4Duration   chapterDuration,
    const char*   chapterTitle DEFAULT(0));

/** Add a QuickTime chapter track.
 *
 *  This function adds a chapter (text) track to file <b>hFile</b>.
 *  The optional parameter <b>timescale</b> may be supplied to give the new
 *  chapter a specific timescale. Otherwise the chapter track will have
 *  the same timescale as the reference track defined in parameter refTrackId.
 *
 *  @param hFile handle of file to add chapter track.
 *  @param refTrackId ID of the track that will reference the chapter track.
 *  @param timescale the timescale of the chapter track or 0 to use the
 *      timescale of track specified by <b>refTrackId</b>.
 *
 *  @return ID of the created chapter track.
 */
MP4V2_EXPORT
MP4TrackId MP4AddChapterTextTrack(
    MP4FileHandle hFile,
    MP4TrackId    refTrackId,
    uint32_t      timescale DEFAULT(0) );

/** Add a Nero chapter.
 *
 *  This function adds a Nero chapter to file <b>hFile</b>.
 *
 *  @param hFile handle of file to add chapter.
 *  @param chapterStart the start time of the chapter in 100 nanosecond units
 *  @param chapterTitle title text for the chapter or NULL to use default
 *      title format ("Chapter %03d", n) where n is the chapter number.
 */
MP4V2_EXPORT
void MP4AddNeroChapter(
    MP4FileHandle hFile,
    MP4Timestamp  chapterStart,
    const char*   chapterTitle DEFAULT(0));

/** Convert chapters to another type.
 *
 *  This function converts existing chapters in file <b>hFile</b>
 *  from one type to another type.
 *  Conversion from Nero to QuickTime or QuickTime to Nero is supported.
 *
 *  @param hFile handle of file to convert.
 *  @param toChapterType the chapter type to convert to:
 *      @li #MP4ChapterTypeQt (convert from Nero to Qt)
 *      @li #MP4ChapterTypeNero (convert from Qt to Nero)
 *
 *  @return the chapter type before conversion or #MP4ChapterTypeNone
 *      if the source chapters do not exist
 *      or invalid <b>toChapterType</b> was specified.
 */
MP4V2_EXPORT
MP4ChapterType MP4ConvertChapters(
    MP4FileHandle  hFile,
    MP4ChapterType toChapterType DEFAULT(MP4ChapterTypeQt));

/** Delete chapters.
 *
 *  This function deletes existing chapters in file <b>hFile</b>.
 *
 *  @param hFile handle of file to delete chapters.
 *  @param chapterType the type of chapters to delete:
 *      @li #MP4ChapterTypeAny (delete all known chapter types)
 *      @li #MP4ChapterTypeQt
 *      @li #MP4ChapterTypeNero
 *  @param chapterTrackId ID of the chapter track if known,
 *      or #MP4_INVALID_TRACK_ID.
 *      Only applies when <b>chapterType</b>=#MP4ChapterTypeQt.
 *
 *  @return the type of deleted chapters
 */
MP4V2_EXPORT
MP4ChapterType MP4DeleteChapters(
    MP4FileHandle  hFile,
    MP4ChapterType chapterType DEFAULT(MP4ChapterTypeQt),
    MP4TrackId     chapterTrackId DEFAULT(MP4_INVALID_TRACK_ID) );

/** Get list of chapters.
 *
 *  This function gets a chpter list from file <b>hFile</b>.
 *
 *  @param hFile handle of file to read.
 *  @param chapterList address receiving array of chapter items.
 *      If a non-NULL is received the caller is responsible for freeing the
 *      memory with MP4Free().
 *  @param chapterCount address receiving count of items in array.
 *  @param chapterType the type of chapters to read:
 *      @li #MP4ChapterTypeAny (any chapters, searched in order of Qt, Nero)
 *      @li #MP4ChapterTypeQt
 *      @li #MP4ChapterTypeNero
 *
 *  @result the first type of chapters found.
 */
MP4V2_EXPORT
MP4ChapterType MP4GetChapters(
    MP4FileHandle  hFile,
    MP4Chapter_t** chapterList,
    uint32_t*      chapterCount,
    MP4ChapterType chapterType DEFAULT(MP4ChapterTypeQt));

/** Set list of chapters OKOK.
 *
 *  This functions sets the complete chapter list in file <b>hFile</b>.
 *  If any chapters of the same type already exist they will first
 *  be deleted.
 *
 *  @param hFile handle of file to modify.
 *  @param chapterList array of chapters items.
 *  @param chapterCount count of items in array.
 *  @param chapterType type of chapters to write:
 *      @li #MP4ChapterTypeAny (chapters of all types are written)
 *      @li #MP4ChapterTypeQt
 *      @li #MP4ChapterTypeNero
 *
 *  @return the type of chapters written.
 */
MP4V2_EXPORT
MP4ChapterType MP4SetChapters(
    MP4FileHandle hFile,
    MP4Chapter_t* chapterList,
    uint32_t       chapterCount,
    MP4ChapterType chapterType DEFAULT(MP4ChapterTypeQt));

/** @} ***********************************************************************/

#endif /* MP4V2_CHAPTER_H */