/usr/include/mp4v2/chapter.h is in libmp4v2-dev 2.0.0~dfsg0-6.
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 */
|