annotate Plugins/Input/aac/libmp4v2/mp4.h @ 790:8f437afc4f4a trunk

[svn] - more sanity checking
author nenolod
date Fri, 03 Mar 2006 20:09:52 -0800
parents f2dc045d2327
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1 /*
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
2 * The contents of this file are subject to the Mozilla Public
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
3 * License Version 1.1 (the "License"); you may not use this file
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
4 * except in compliance with the License. You may obtain a copy of
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
5 * the License at http://www.mozilla.org/MPL/
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
6 *
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
7 * Software distributed under the License is distributed on an "AS
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
8 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
9 * implied. See the License for the specific language governing
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
10 * rights and limitations under the License.
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
11 *
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
12 * The Original Code is MPEG4IP.
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
13 *
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
14 * The Initial Developer of the Original Code is Cisco Systems Inc.
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
15 * Portions created by Cisco Systems Inc. are
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
16 * Copyright (C) Cisco Systems Inc. 2001 - 2005. All Rights Reserved.
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
17 *
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
18 * 3GPP features implementation is based on 3GPP's TS26.234-v5.60,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
19 * and was contributed by Ximpo Group Ltd.
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
20 *
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
21 * Portions created by Ximpo Group Ltd. are
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
22 * Copyright (C) Ximpo Group Ltd. 2003, 2004. All Rights Reserved.
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
23 *
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
24 * Contributor(s):
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
25 * Dave Mackie dmackie@cisco.com
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
26 * Alix Marchandise-Franquet alix@cisco.com
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
27 * Ximpo Group Ltd. mp4v2@ximpo.com
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
28 * Bill May wmay@cisco.com
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
29 */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
30
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
31 #ifndef __MP4_INCLUDED__
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
32 #define __MP4_INCLUDED__
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
33
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
34 /* include system and project specific headers */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
35 #include "mpeg4ip.h"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
36
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
37 #include <math.h> /* to define float HUGE_VAL and/or NAN */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
38 #ifndef NAN
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
39 #define NAN HUGE_VAL
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
40 #endif
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
41
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
42 #ifdef __cplusplus
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
43 /* exploit C++ ability of default values for function parameters */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
44 #define DEFAULT(x) =x
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
45 #else
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
46 #define DEFAULT(x)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
47 #endif
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
48
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
49 /* MP4 API types */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
50 typedef void* MP4FileHandle;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
51 typedef u_int32_t MP4TrackId;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
52 typedef u_int32_t MP4SampleId;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
53 typedef u_int64_t MP4Timestamp;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
54 typedef u_int64_t MP4Duration;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
55 typedef u_int32_t MP4EditId;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
56
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
57 /* Invalid values for API types */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
58 #define MP4_INVALID_FILE_HANDLE ((MP4FileHandle)NULL)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
59 #define MP4_INVALID_TRACK_ID ((MP4TrackId)0)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
60 #define MP4_INVALID_SAMPLE_ID ((MP4SampleId)0)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
61 #define MP4_INVALID_TIMESTAMP ((MP4Timestamp)-1)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
62 #define MP4_INVALID_DURATION ((MP4Duration)-1)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
63 #define MP4_INVALID_EDIT_ID ((MP4EditId)0)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
64
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
65 /* Macros to test for API type validity */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
66 #define MP4_IS_VALID_FILE_HANDLE(x) ((x) != MP4_INVALID_FILE_HANDLE)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
67 #define MP4_IS_VALID_TRACK_ID(x) ((x) != MP4_INVALID_TRACK_ID)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
68 #define MP4_IS_VALID_SAMPLE_ID(x) ((x) != MP4_INVALID_SAMPLE_ID)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
69 #define MP4_IS_VALID_TIMESTAMP(x) ((x) != MP4_INVALID_TIMESTAMP)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
70 #define MP4_IS_VALID_DURATION(x) ((x) != MP4_INVALID_DURATION)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
71 #define MP4_IS_VALID_EDIT_ID(x) ((x) != MP4_INVALID_EDIT_ID)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
72
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
73 /* MP4 verbosity levels - e.g. MP4SetVerbosity() */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
74 #define MP4_DETAILS_ALL 0xFFFFFFFF
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
75 #define MP4_DETAILS_ERROR 0x00000001
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
76 #define MP4_DETAILS_WARNING 0x00000002
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
77 #define MP4_DETAILS_READ 0x00000004
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
78 #define MP4_DETAILS_WRITE 0x00000008
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
79 #define MP4_DETAILS_FIND 0x00000010
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
80 #define MP4_DETAILS_TABLE 0x00000020
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
81 #define MP4_DETAILS_SAMPLE 0x00000040
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
82 #define MP4_DETAILS_HINT 0x00000080
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
83 #define MP4_DETAILS_ISMA 0x00000100
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
84 #define MP4_DETAILS_EDIT 0x00000200
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
85
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
86 #define MP4_DETAILS_READ_ALL \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
87 (MP4_DETAILS_READ | MP4_DETAILS_TABLE | MP4_DETAILS_SAMPLE)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
88 #define MP4_DETAILS_WRITE_ALL \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
89 (MP4_DETAILS_WRITE | MP4_DETAILS_TABLE | MP4_DETAILS_SAMPLE)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
90
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
91 /*
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
92 * MP4 Known track type names - e.g. MP4GetNumberOfTracks(type)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
93 *
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
94 * Note this first group of track types should be created
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
95 * via the MP4Add<Type>Track() functions, and not MP4AddTrack(type)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
96 */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
97 #define MP4_OD_TRACK_TYPE "odsm"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
98 #define MP4_SCENE_TRACK_TYPE "sdsm"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
99 #define MP4_AUDIO_TRACK_TYPE "soun"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
100 #define MP4_VIDEO_TRACK_TYPE "vide"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
101 #define MP4_HINT_TRACK_TYPE "hint"
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
102 #define MP4_CNTL_TRACK_TYPE "cntl"
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
103 /*
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
104 * This second set of track types should be created
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
105 * via MP4AddSystemsTrack(type)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
106 */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
107 #define MP4_CLOCK_TRACK_TYPE "crsm"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
108 #define MP4_MPEG7_TRACK_TYPE "m7sm"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
109 #define MP4_OCI_TRACK_TYPE "ocsm"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
110 #define MP4_IPMP_TRACK_TYPE "ipsm"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
111 #define MP4_MPEGJ_TRACK_TYPE "mjsm"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
112
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
113 #define MP4_IS_VIDEO_TRACK_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
114 (!strcasecmp(type, MP4_VIDEO_TRACK_TYPE))
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
115
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
116 #define MP4_IS_AUDIO_TRACK_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
117 (!strcasecmp(type, MP4_AUDIO_TRACK_TYPE))
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
118
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
119 #define MP4_IS_CNTL_TRACK_TYPE(type) \
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
120 (!strcasecmp(type, MP4_CNTL_TRACK_TYPE))
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
121
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
122 #define MP4_IS_OD_TRACK_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
123 (!strcasecmp(type, MP4_OD_TRACK_TYPE))
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
124
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
125 #define MP4_IS_SCENE_TRACK_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
126 (!strcasecmp(type, MP4_SCENE_TRACK_TYPE))
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
127
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
128 #define MP4_IS_HINT_TRACK_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
129 (!strcasecmp(type, MP4_HINT_TRACK_TYPE))
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
130
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
131 #define MP4_IS_SYSTEMS_TRACK_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
132 (!strcasecmp(type, MP4_CLOCK_TRACK_TYPE) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
133 || !strcasecmp(type, MP4_MPEG7_TRACK_TYPE) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
134 || !strcasecmp(type, MP4_OCI_TRACK_TYPE) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
135 || !strcasecmp(type, MP4_IPMP_TRACK_TYPE) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
136 || !strcasecmp(type, MP4_MPEGJ_TRACK_TYPE))
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
137
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
138 /* MP4 Audio track types - see MP4AddAudioTrack()*/
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
139 #define MP4_INVALID_AUDIO_TYPE 0x00
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
140 #define MP4_MPEG1_AUDIO_TYPE 0x6B
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
141 #define MP4_MPEG2_AUDIO_TYPE 0x69
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
142 #define MP4_MP3_AUDIO_TYPE MP4_MPEG2_AUDIO_TYPE
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
143 #define MP4_MPEG2_AAC_MAIN_AUDIO_TYPE 0x66
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
144 #define MP4_MPEG2_AAC_LC_AUDIO_TYPE 0x67
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
145 #define MP4_MPEG2_AAC_SSR_AUDIO_TYPE 0x68
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
146 #define MP4_MPEG2_AAC_AUDIO_TYPE MP4_MPEG2_AAC_MAIN_AUDIO_TYPE
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
147 #define MP4_MPEG4_AUDIO_TYPE 0x40
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
148 #define MP4_PRIVATE_AUDIO_TYPE 0xC0
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
149 #define MP4_PCM16_LITTLE_ENDIAN_AUDIO_TYPE 0xE0 /* a private definition */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
150 #define MP4_VORBIS_AUDIO_TYPE 0xE1 /* a private definition */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
151 #define MP4_AC3_AUDIO_TYPE 0xE2 /* a private definition */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
152 #define MP4_ALAW_AUDIO_TYPE 0xE3 /* a private definition */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
153 #define MP4_ULAW_AUDIO_TYPE 0xE4 /* a private definition */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
154 #define MP4_G723_AUDIO_TYPE 0xE5 /* a private definition */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
155 #define MP4_PCM16_BIG_ENDIAN_AUDIO_TYPE 0xE6 /* a private definition */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
156
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
157 /* MP4 MPEG-4 Audio types from 14496-3 Table 1.5.1 */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
158 #define MP4_MPEG4_INVALID_AUDIO_TYPE 0
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
159 #define MP4_MPEG4_AAC_MAIN_AUDIO_TYPE 1
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
160 #define MP4_MPEG4_AAC_LC_AUDIO_TYPE 2
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
161 #define MP4_MPEG4_AAC_SSR_AUDIO_TYPE 3
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
162 #define MP4_MPEG4_AAC_LTP_AUDIO_TYPE 4
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
163 #define MP4_MPEG4_AAC_HE_AUDIO_TYPE 5
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
164 #define MP4_MPEG4_AAC_SCALABLE_AUDIO_TYPE 6
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
165 #define MP4_MPEG4_CELP_AUDIO_TYPE 8
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
166 #define MP4_MPEG4_HVXC_AUDIO_TYPE 9
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
167 #define MP4_MPEG4_TTSI_AUDIO_TYPE 12
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
168 #define MP4_MPEG4_MAIN_SYNTHETIC_AUDIO_TYPE 13
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
169 #define MP4_MPEG4_WAVETABLE_AUDIO_TYPE 14
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
170 #define MP4_MPEG4_MIDI_AUDIO_TYPE 15
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
171 #define MP4_MPEG4_ALGORITHMIC_FX_AUDIO_TYPE 16
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
172
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
173 /* MP4 Audio type utilities following common usage */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
174 #define MP4_IS_MP3_AUDIO_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
175 ((type) == MP4_MPEG1_AUDIO_TYPE || (type) == MP4_MPEG2_AUDIO_TYPE)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
176
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
177 #define MP4_IS_MPEG2_AAC_AUDIO_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
178 (((type) >= MP4_MPEG2_AAC_MAIN_AUDIO_TYPE \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
179 && (type) <= MP4_MPEG2_AAC_SSR_AUDIO_TYPE))
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
180
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
181 #define MP4_IS_MPEG4_AAC_AUDIO_TYPE(mpeg4Type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
182 (((mpeg4Type) >= MP4_MPEG4_AAC_MAIN_AUDIO_TYPE \
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
183 && (mpeg4Type) <= MP4_MPEG4_AAC_HE_AUDIO_TYPE) \
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
184 || (mpeg4Type) == MP4_MPEG4_AAC_SCALABLE_AUDIO_TYPE \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
185 || (mpeg4Type) == 17)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
186
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
187 #define MP4_IS_AAC_AUDIO_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
188 (MP4_IS_MPEG2_AAC_AUDIO_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
189 || (type) == MP4_MPEG4_AUDIO_TYPE)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
190
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
191 /* MP4 Video track types - see MP4AddVideoTrack() */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
192 #define MP4_INVALID_VIDEO_TYPE 0x00
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
193 #define MP4_MPEG1_VIDEO_TYPE 0x6A
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
194 #define MP4_MPEG2_SIMPLE_VIDEO_TYPE 0x60
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
195 #define MP4_MPEG2_MAIN_VIDEO_TYPE 0x61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
196 #define MP4_MPEG2_SNR_VIDEO_TYPE 0x62
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
197 #define MP4_MPEG2_SPATIAL_VIDEO_TYPE 0x63
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
198 #define MP4_MPEG2_HIGH_VIDEO_TYPE 0x64
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
199 #define MP4_MPEG2_442_VIDEO_TYPE 0x65
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
200 #define MP4_MPEG2_VIDEO_TYPE MP4_MPEG2_MAIN_VIDEO_TYPE
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
201 #define MP4_MPEG4_VIDEO_TYPE 0x20
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
202 #define MP4_JPEG_VIDEO_TYPE 0x6C
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
203 #define MP4_PRIVATE_VIDEO_TYPE 0xD0
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
204 #define MP4_YUV12_VIDEO_TYPE 0xF0 /* a private definition */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
205 #define MP4_H263_VIDEO_TYPE 0xF2 /* a private definition */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
206 #define MP4_H261_VIDEO_TYPE 0xF3 /* a private definition */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
207
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
208 /* MP4 Video type utilities */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
209 #define MP4_IS_MPEG1_VIDEO_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
210 ((type) == MP4_MPEG1_VIDEO_TYPE)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
211
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
212 #define MP4_IS_MPEG2_VIDEO_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
213 (((type) >= MP4_MPEG2_SIMPLE_VIDEO_TYPE \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
214 && (type) <= MP4_MPEG2_442_VIDEO_TYPE) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
215 || MP4_IS_MPEG1_VIDEO_TYPE(type))
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
216
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
217 #define MP4_IS_MPEG4_VIDEO_TYPE(type) \
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
218 ((type) == MP4_MPEG4_VIDEO_TYPE)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
219
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
220 /* Mpeg4 Visual Profile Defines - ISO/IEC 14496-2:2001/Amd.2:2002(E) */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
221 #define MPEG4_SP_L1 (0x1)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
222 #define MPEG4_SP_L2 (0x2)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
223 #define MPEG4_SP_L3 (0x3)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
224 #define MPEG4_SP_L0 (0x8)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
225 #define MPEG4_SSP_L1 (0x11)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
226 #define MPEG4_SSP_L2 (0x12)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
227 #define MPEG4_CP_L1 (0x21)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
228 #define MPEG4_CP_L2 (0x22)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
229 #define MPEG4_MP_L2 (0x32)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
230 #define MPEG4_MP_L3 (0x33)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
231 #define MPEG4_MP_L4 (0x34)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
232 #define MPEG4_NBP_L2 (0x42)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
233 #define MPEG4_STP_L1 (0x51)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
234 #define MPEG4_SFAP_L1 (0x61)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
235 #define MPEG4_SFAP_L2 (0x62)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
236 #define MPEG4_SFBAP_L1 (0x63)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
237 #define MPEG4_SFBAP_L2 (0x64)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
238 #define MPEG4_BATP_L1 (0x71)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
239 #define MPEG4_BATP_L2 (0x72)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
240 #define MPEG4_HP_L1 (0x81)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
241 #define MPEG4_HP_L2 (0x82)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
242 #define MPEG4_ARTSP_L1 (0x91)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
243 #define MPEG4_ARTSP_L2 (0x92)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
244 #define MPEG4_ARTSP_L3 (0x93)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
245 #define MPEG4_ARTSP_L4 (0x94)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
246 #define MPEG4_CSP_L1 (0xa1)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
247 #define MPEG4_CSP_L2 (0xa2)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
248 #define MPEG4_CSP_L3 (0xa3)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
249 #define MPEG4_ACEP_L1 (0xb1)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
250 #define MPEG4_ACEP_L2 (0xb2)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
251 #define MPEG4_ACEP_L3 (0xb3)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
252 #define MPEG4_ACEP_L4 (0xb4)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
253 #define MPEG4_ACP_L1 (0xc1)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
254 #define MPEG4_ACP_L2 (0xc2)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
255 #define MPEG4_AST_L1 (0xd1)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
256 #define MPEG4_AST_L2 (0xd2)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
257 #define MPEG4_AST_L3 (0xd3)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
258 #define MPEG4_S_STUDIO_P_L1 (0xe1)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
259 #define MPEG4_S_STUDIO_P_L2 (0xe2)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
260 #define MPEG4_S_STUDIO_P_L3 (0xe3)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
261 #define MPEG4_S_STUDIO_P_L4 (0xe4)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
262 #define MPEG4_C_STUDIO_P_L1 (0xe5)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
263 #define MPEG4_C_STUDIO_P_L2 (0xe6)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
264 #define MPEG4_C_STUDIO_P_L3 (0xe7)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
265 #define MPEG4_C_STUDIO_P_L4 (0xe8)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
266 #define MPEG4_ASP_L0 (0xF0)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
267 #define MPEG4_ASP_L1 (0xF1)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
268 #define MPEG4_ASP_L2 (0xF2)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
269 #define MPEG4_ASP_L3 (0xF3)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
270 #define MPEG4_ASP_L4 (0xF4)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
271 #define MPEG4_ASP_L5 (0xF5)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
272 #define MPEG4_ASP_L3B (0xF7)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
273 #define MPEG4_FGSP_L0 (0xf8)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
274 #define MPEG4_FGSP_L1 (0xf9)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
275 #define MPEG4_FGSP_L2 (0xfa)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
276 #define MPEG4_FGSP_L3 (0xfb)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
277 #define MPEG4_FGSP_L4 (0xfc)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
278 #define MPEG4_FGSP_L5 (0xfd)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
279
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
280 /* MP4 API declarations */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
281
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
282 #ifdef __cplusplus
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
283 extern "C" {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
284 #endif
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
285
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
286 /* file operations */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
287 #define MP4_CREATE_64BIT_DATA (0x01)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
288 #define MP4_CREATE_64BIT_TIME (0x02) // Quicktime is not compatible with this
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
289 #define MP4_CREATE_64BIT (MP4_CREATE_64BIT_DATA | MP4_CREATE_64BIT_TIME)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
290 #define MP4_CREATE_EXTENSIBLE_FORMAT (0x04)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
291
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
292 MP4FileHandle MP4Create(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
293 const char* fileName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
294 u_int32_t verbosity DEFAULT(0),
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
295 u_int32_t flags DEFAULT(0));
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
296 MP4FileHandle MP4CreateEx(
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
297 const char *fileName,
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
298 u_int32_t verbosity DEFAULT(0),
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
299 u_int32_t flags DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
300 int add_ftyp DEFAULT(1),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
301 int add_iods DEFAULT(1),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
302 char* majorBrand DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
303 u_int32_t minorVersion DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
304 char** supportedBrands DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
305 u_int32_t supportedBrandsCount DEFAULT(0));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
306
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
307 MP4FileHandle MP4Modify(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
308 const char* fileName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
309 u_int32_t verbosity DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
310 u_int32_t flags DEFAULT(0));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
311
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
312 MP4FileHandle MP4Read(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
313 const char* fileName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
314 u_int32_t verbosity DEFAULT(0));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
315
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
316 bool MP4Close(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
317 MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
318
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
319 bool MP4Optimize(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
320 const char* existingFileName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
321 const char* newFileName DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
322 u_int32_t verbosity DEFAULT(0));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
323
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
324 bool MP4Dump(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
325 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
326 FILE* pDumpFile DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
327 bool dumpImplicits DEFAULT(0));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
328
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
329 char* MP4Info(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
330 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
331 MP4TrackId trackId DEFAULT(MP4_INVALID_TRACK_ID));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
332
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
333 char* MP4FileInfo(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
334 const char* fileName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
335 MP4TrackId trackId DEFAULT(MP4_INVALID_TRACK_ID));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
336
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
337 /* file properties */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
338
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
339 /* specific file properties */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
340
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
341 u_int32_t MP4GetVerbosity(MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
342
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
343 bool MP4SetVerbosity(MP4FileHandle hFile, u_int32_t verbosity);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
344
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
345 MP4Duration MP4GetDuration(MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
346
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
347 u_int32_t MP4GetTimeScale(MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
348
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
349 bool MP4SetTimeScale(MP4FileHandle hFile, u_int32_t value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
350
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
351 u_int8_t MP4GetODProfileLevel(MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
352
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
353 bool MP4SetODProfileLevel(MP4FileHandle hFile, u_int8_t value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
354
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
355 u_int8_t MP4GetSceneProfileLevel(MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
356
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
357 bool MP4SetSceneProfileLevel(MP4FileHandle hFile, u_int8_t value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
358
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
359 u_int8_t MP4GetVideoProfileLevel(MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
360
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
361 bool MP4SetVideoProfileLevel(MP4FileHandle hFile, u_int8_t value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
362
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
363 u_int8_t MP4GetAudioProfileLevel(MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
364
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
365 bool MP4SetAudioProfileLevel(MP4FileHandle hFile, u_int8_t value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
366
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
367 u_int8_t MP4GetGraphicsProfileLevel(MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
368
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
369 bool MP4SetGraphicsProfileLevel(MP4FileHandle hFile, u_int8_t value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
370
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
371 /* generic file properties */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
372
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
373 u_int64_t MP4GetIntegerProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
374 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
375 const char* propName);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
376
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
377 bool MP4HaveTrackIntegerProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
378 MP4FileHandle hFile, MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
379 const char* propName);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
380
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
381 float MP4GetFloatProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
382 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
383 const char* propName);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
384
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
385 const char* MP4GetStringProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
386 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
387 const char* propName);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
388
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
389 void MP4GetBytesProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
390 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
391 const char* propName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
392 u_int8_t** ppValue,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
393 u_int32_t* pValueSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
394
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
395 bool MP4SetIntegerProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
396 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
397 const char* propName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
398 int64_t value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
399
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
400 bool MP4SetFloatProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
401 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
402 const char* propName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
403 float value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
404
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
405 bool MP4SetStringProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
406 MP4FileHandle hFile, const char* propName, const char* value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
407
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
408 bool MP4SetBytesProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
409 MP4FileHandle hFile, const char* propName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
410 const u_int8_t* pValue, u_int32_t valueSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
411
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
412 /* track operations */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
413
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
414 MP4TrackId MP4AddTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
415 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
416 const char* type);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
417
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
418 MP4TrackId MP4AddSystemsTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
419 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
420 const char* type);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
421
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
422 MP4TrackId MP4AddODTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
423 MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
424
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
425 MP4TrackId MP4AddSceneTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
426 MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
427
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
428 MP4TrackId MP4AddAudioTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
429 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
430 u_int32_t timeScale,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
431 MP4Duration sampleDuration,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
432 u_int8_t audioType DEFAULT(MP4_MPEG4_AUDIO_TYPE));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
433
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
434 typedef struct mp4v2_ismacryp_session_params {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
435 u_int32_t scheme_type;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
436 u_int16_t scheme_version;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
437 u_int8_t key_ind_len;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
438 u_int8_t iv_len;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
439 u_int8_t selective_enc;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
440 char *kms_uri;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
441 } mp4v2_ismacrypParams;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
442
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
443
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
444 MP4TrackId MP4AddEncAudioTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
445 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
446 u_int32_t timeScale,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
447 MP4Duration sampleDuration,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
448 mp4v2_ismacrypParams *icPp,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
449 u_int8_t audioType DEFAULT(MP4_MPEG4_AUDIO_TYPE));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
450 MP4TrackId MP4AddAmrAudioTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
451 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
452 u_int32_t timeScale,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
453 u_int16_t modeSet,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
454 u_int8_t modeChangePeriod,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
455 u_int8_t framesPerSample,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
456 bool isAmrWB);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
457
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
458 void MP4SetAmrVendor(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
459 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
460 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
461 u_int32_t vendor);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
462
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
463 void MP4SetAmrDecoderVersion(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
464 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
465 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
466 u_int8_t decoderVersion);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
467
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
468 void MP4SetAmrModeSet(MP4FileHandle hFile, MP4TrackId trakId, uint16_t modeSet);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
469 uint16_t MP4GetAmrModeSet(MP4FileHandle hFile, MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
470
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
471 MP4TrackId MP4AddHrefTrack(MP4FileHandle hFile,
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
472 uint32_t timeScale,
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
473 MP4Duration sampleDuration);
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
474
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
475 MP4TrackId MP4AddVideoTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
476 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
477 u_int32_t timeScale,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
478 MP4Duration sampleDuration,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
479 u_int16_t width,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
480 u_int16_t height,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
481 u_int8_t videoType DEFAULT(MP4_MPEG4_VIDEO_TYPE));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
482
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
483 MP4TrackId MP4AddEncVideoTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
484 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
485 u_int32_t timeScale,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
486 MP4Duration sampleDuration,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
487 u_int16_t width,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
488 u_int16_t height,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
489 mp4v2_ismacrypParams *icPp,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
490 u_int8_t videoType DEFAULT(MP4_MPEG4_VIDEO_TYPE));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
491
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
492 MP4TrackId MP4AddH264VideoTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
493 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
494 u_int32_t timeScale,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
495 MP4Duration sampleDuration,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
496 u_int16_t width,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
497 u_int16_t height,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
498 uint8_t AVCProfileIndication,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
499 uint8_t profile_compat,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
500 uint8_t AVCLevelIndication,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
501 uint8_t sampleLenFieldSizeMinusOne);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
502 bool MP4AddH264SequenceParameterSet(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
503 MP4TrackId trackId,
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
504 const uint8_t *pSequence,
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
505 uint16_t sequenceLen);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
506 bool MP4AddH264PictureParameterSet(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
507 MP4TrackId trackId,
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
508 const uint8_t *pPict,
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
509 uint16_t pictLen);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
510 void MP4SetH263Vendor(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
511 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
512 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
513 u_int32_t vendor);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
514
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
515 void MP4SetH263DecoderVersion(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
516 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
517 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
518 u_int8_t decoderVersion);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
519
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
520 void MP4SetH263Bitrates(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
521 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
522 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
523 u_int32_t avgBitrate,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
524 u_int32_t maxBitrate);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
525
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
526 MP4TrackId MP4AddH263VideoTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
527 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
528 u_int32_t timeScale,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
529 MP4Duration sampleDuration,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
530 u_int16_t width,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
531 u_int16_t height,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
532 u_int8_t h263Level,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
533 u_int8_t h263Profile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
534 u_int32_t avgBitrate,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
535 u_int32_t maxBitrate);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
536
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
537 MP4TrackId MP4AddHintTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
538 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
539 MP4TrackId refTrackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
540
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
541 MP4TrackId MP4CloneTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
542 MP4FileHandle srcFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
543 MP4TrackId srcTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
544 MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
545 MP4TrackId dstHintTrackReferenceTrack DEFAULT(MP4_INVALID_TRACK_ID));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
546
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
547 MP4TrackId MP4EncAndCloneTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
548 MP4FileHandle srcFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
549 MP4TrackId srcTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
550 mp4v2_ismacrypParams *icPp,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
551 MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
552 MP4TrackId dstHintTrackReferenceTrack DEFAULT(MP4_INVALID_TRACK_ID));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
553
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
554 MP4TrackId MP4CopyTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
555 MP4FileHandle srcFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
556 MP4TrackId srcTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
557 MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
558 bool applyEdits DEFAULT(false),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
559 MP4TrackId dstHintTrackReferenceTrack DEFAULT(MP4_INVALID_TRACK_ID));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
560
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
561 typedef u_int32_t (*encryptFunc_t)(u_int32_t, u_int32_t, u_int8_t*, u_int32_t*, u_int8_t **);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
562
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
563 MP4TrackId MP4EncAndCopyTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
564 MP4FileHandle srcFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
565 MP4TrackId srcTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
566 mp4v2_ismacrypParams *icPp,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
567 encryptFunc_t encfcnp,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
568 u_int32_t encfcnparam1,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
569 MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
570 bool applyEdits DEFAULT(false),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
571 MP4TrackId dstHintTrackReferenceTrack DEFAULT(MP4_INVALID_TRACK_ID));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
572
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
573 bool MP4DeleteTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
574 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
575 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
576
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
577 u_int32_t MP4GetNumberOfTracks(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
578 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
579 const char* type DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
580 u_int8_t subType DEFAULT(0));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
581
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
582 MP4TrackId MP4FindTrackId(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
583 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
584 u_int16_t index,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
585 const char* type DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
586 u_int8_t subType DEFAULT(0));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
587
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
588 u_int16_t MP4FindTrackIndex(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
589 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
590 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
591
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
592 /* track properties */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
593
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
594 /* specific track properties */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
595
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
596 const char* MP4GetTrackType(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
597 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
598 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
599
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
600 const char *MP4GetTrackMediaDataName(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
601 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
602 MP4Duration MP4GetTrackDuration(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
603 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
604 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
605
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
606 u_int32_t MP4GetTrackTimeScale(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
607 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
608 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
609
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
610 bool MP4SetTrackTimeScale(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
611 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
612 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
613 u_int32_t value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
614
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
615 u_int8_t MP4GetTrackAudioMpeg4Type(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
616 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
617 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
618
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
619 u_int8_t MP4GetTrackEsdsObjectTypeId(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
620 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
621 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
622
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
623 /* returns MP4_INVALID_DURATION if track samples do not have a fixed duration */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
624 MP4Duration MP4GetTrackFixedSampleDuration(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
625 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
626 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
627
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
628 u_int32_t MP4GetTrackBitRate(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
629 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
630 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
631
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
632 bool MP4GetTrackVideoMetadata(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
633 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
634 uint8_t **ppConfig,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
635 uint32_t *pConfigSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
636
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
637 bool MP4GetTrackESConfiguration(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
638 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
639 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
640 u_int8_t** ppConfig,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
641 u_int32_t* pConfigSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
642
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
643 bool MP4SetTrackESConfiguration(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
644 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
645 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
646 const u_int8_t* pConfig,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
647 u_int32_t configSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
648
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
649 /* h264 information routines */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
650 bool MP4GetTrackH264ProfileLevel(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
651 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
652 uint8_t *pProfile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
653 uint8_t *pLevel);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
654 bool MP4GetTrackH264SeqPictHeaders(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
655 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
656 uint8_t ***pSeqHeaders,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
657 uint32_t **pSeqHeaderSize,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
658 uint8_t ***pPictHeader,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
659 uint32_t **pPictHeaderSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
660 bool MP4GetTrackH264LengthSize(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
661 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
662 uint32_t *pLength);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
663 MP4SampleId MP4GetTrackNumberOfSamples(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
664 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
665 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
666
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
667 u_int16_t MP4GetTrackVideoWidth(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
668 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
669 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
670
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
671 u_int16_t MP4GetTrackVideoHeight(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
672 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
673 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
674
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
675 double MP4GetTrackVideoFrameRate(
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
676 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
677 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
678
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
679 int MP4GetTrackAudioChannels(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
680 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
681
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
682 bool MP4IsIsmaCrypMediaTrack(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
683 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
684 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
685
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
686 /* generic track properties */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
687
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
688 u_int64_t MP4GetTrackIntegerProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
689 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
690 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
691 const char* propName);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
692
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
693 float MP4GetTrackFloatProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
694 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
695 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
696 const char* propName);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
697
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
698 const char* MP4GetTrackStringProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
699 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
700 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
701 const char* propName);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
702
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
703 void MP4GetTrackBytesProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
704 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
705 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
706 const char* propName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
707 u_int8_t** ppValue,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
708 u_int32_t* pValueSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
709
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
710 bool MP4SetTrackIntegerProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
711 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
712 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
713 const char* propName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
714 int64_t value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
715
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
716 bool MP4SetTrackFloatProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
717 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
718 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
719 const char* propName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
720 float value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
721
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
722 bool MP4SetTrackStringProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
723 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
724 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
725 const char* propName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
726 const char* value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
727
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
728 bool MP4SetTrackBytesProperty(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
729 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
730 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
731 const char* propName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
732 const u_int8_t* pValue,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
733 u_int32_t valueSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
734
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
735 /* sample operations */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
736
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
737 bool MP4ReadSample(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
738 /* input parameters */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
739 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
740 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
741 MP4SampleId sampleId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
742 /* input/output parameters */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
743 u_int8_t** ppBytes,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
744 u_int32_t* pNumBytes,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
745 /* output parameters */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
746 MP4Timestamp* pStartTime DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
747 MP4Duration* pDuration DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
748 MP4Duration* pRenderingOffset DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
749 bool* pIsSyncSample DEFAULT(NULL));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
750
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
751 /* uses (unedited) time to specify sample instead of sample id */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
752 bool MP4ReadSampleFromTime(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
753 /* input parameters */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
754 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
755 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
756 MP4Timestamp when,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
757 /* input/output parameters */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
758 u_int8_t** ppBytes,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
759 u_int32_t* pNumBytes,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
760 /* output parameters */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
761 MP4Timestamp* pStartTime DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
762 MP4Duration* pDuration DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
763 MP4Duration* pRenderingOffset DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
764 bool* pIsSyncSample DEFAULT(NULL));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
765
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
766 bool MP4WriteSample(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
767 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
768 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
769 const u_int8_t* pBytes,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
770 u_int32_t numBytes,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
771 MP4Duration duration DEFAULT(MP4_INVALID_DURATION),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
772 MP4Duration renderingOffset DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
773 bool isSyncSample DEFAULT(true));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
774
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
775 bool MP4CopySample(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
776 MP4FileHandle srcFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
777 MP4TrackId srcTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
778 MP4SampleId srcSampleId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
779 MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
780 MP4TrackId dstTrackId DEFAULT(MP4_INVALID_TRACK_ID),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
781 MP4Duration dstSampleDuration DEFAULT(MP4_INVALID_DURATION));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
782
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
783 bool MP4EncAndCopySample(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
784 MP4FileHandle srcFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
785 MP4TrackId srcTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
786 MP4SampleId srcSampleId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
787 encryptFunc_t encfcnp,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
788 u_int32_t encfcnparam1,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
789 MP4FileHandle dstFile DEFAULT(MP4_INVALID_FILE_HANDLE),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
790 MP4TrackId dstTrackId DEFAULT(MP4_INVALID_TRACK_ID),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
791 MP4Duration dstSampleDuration DEFAULT(MP4_INVALID_DURATION));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
792
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
793 /* Note this function is not yet implemented */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
794 bool MP4ReferenceSample(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
795 MP4FileHandle srcFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
796 MP4TrackId srcTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
797 MP4SampleId srcSampleId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
798 MP4FileHandle dstFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
799 MP4TrackId dstTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
800 MP4Duration dstSampleDuration DEFAULT(MP4_INVALID_DURATION));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
801
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
802 u_int32_t MP4GetSampleSize(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
803 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
804 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
805 MP4SampleId sampleId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
806
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
807 u_int32_t MP4GetTrackMaxSampleSize(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
808 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
809 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
810
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
811 MP4SampleId MP4GetSampleIdFromTime(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
812 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
813 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
814 MP4Timestamp when,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
815 bool wantSyncSample DEFAULT(false));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
816
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
817 MP4Timestamp MP4GetSampleTime(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
818 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
819 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
820 MP4SampleId sampleId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
821
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
822 MP4Duration MP4GetSampleDuration(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
823 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
824 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
825 MP4SampleId sampleId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
826
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
827 MP4Duration MP4GetSampleRenderingOffset(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
828 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
829 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
830 MP4SampleId sampleId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
831
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
832 bool MP4SetSampleRenderingOffset(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
833 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
834 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
835 MP4SampleId sampleId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
836 MP4Duration renderingOffset);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
837
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
838 int8_t MP4GetSampleSync(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
839 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
840 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
841 MP4SampleId sampleId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
842
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
843 /* rtp hint track operations */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
844
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
845 bool MP4GetHintTrackRtpPayload(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
846 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
847 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
848 char** ppPayloadName DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
849 u_int8_t* pPayloadNumber DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
850 u_int16_t* pMaxPayloadSize DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
851 char **ppEncodingParams DEFAULT(NULL));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
852
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
853 #define MP4_SET_DYNAMIC_PAYLOAD 0xff
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
854
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
855 bool MP4SetHintTrackRtpPayload(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
856 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
857 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
858 const char* pPayloadName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
859 u_int8_t* pPayloadNumber,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
860 u_int16_t maxPayloadSize DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
861 const char *encode_params DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
862 bool include_rtp_map DEFAULT(true),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
863 bool include_mpeg4_esid DEFAULT(true));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
864
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
865 const char* MP4GetSessionSdp(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
866 MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
867
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
868 bool MP4SetSessionSdp(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
869 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
870 const char* sdpString);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
871
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
872 bool MP4AppendSessionSdp(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
873 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
874 const char* sdpString);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
875
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
876 const char* MP4GetHintTrackSdp(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
877 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
878 MP4TrackId hintTrackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
879
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
880 bool MP4SetHintTrackSdp(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
881 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
882 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
883 const char* sdpString);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
884
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
885 bool MP4AppendHintTrackSdp(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
886 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
887 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
888 const char* sdpString);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
889
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
890 MP4TrackId MP4GetHintTrackReferenceTrackId(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
891 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
892 MP4TrackId hintTrackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
893
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
894 bool MP4ReadRtpHint(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
895 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
896 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
897 MP4SampleId hintSampleId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
898 u_int16_t* pNumPackets DEFAULT(NULL));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
899
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
900 u_int16_t MP4GetRtpHintNumberOfPackets(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
901 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
902 MP4TrackId hintTrackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
903
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
904 int8_t MP4GetRtpPacketBFrame(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
905 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
906 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
907 u_int16_t packetIndex);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
908
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
909 int32_t MP4GetRtpPacketTransmitOffset(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
910 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
911 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
912 u_int16_t packetIndex);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
913
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
914 bool MP4ReadRtpPacket(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
915 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
916 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
917 u_int16_t packetIndex,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
918 u_int8_t** ppBytes,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
919 u_int32_t* pNumBytes,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
920 u_int32_t ssrc DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
921 bool includeHeader DEFAULT(true),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
922 bool includePayload DEFAULT(true));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
923
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
924 MP4Timestamp MP4GetRtpTimestampStart(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
925 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
926 MP4TrackId hintTrackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
927
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
928 bool MP4SetRtpTimestampStart(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
929 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
930 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
931 MP4Timestamp rtpStart);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
932
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
933 bool MP4AddRtpHint(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
934 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
935 MP4TrackId hintTrackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
936
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
937 bool MP4AddRtpVideoHint(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
938 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
939 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
940 bool isBframe DEFAULT(false),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
941 u_int32_t timestampOffset DEFAULT(0));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
942
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
943 bool MP4AddRtpPacket(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
944 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
945 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
946 bool setMbit DEFAULT(false),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
947 int32_t transmitOffset DEFAULT(0));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
948
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
949 bool MP4AddRtpImmediateData(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
950 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
951 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
952 const u_int8_t* pBytes,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
953 u_int32_t numBytes);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
954
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
955 bool MP4AddRtpSampleData(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
956 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
957 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
958 MP4SampleId sampleId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
959 u_int32_t dataOffset,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
960 u_int32_t dataLength);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
961
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
962 bool MP4AddRtpESConfigurationPacket(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
963 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
964 MP4TrackId hintTrackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
965
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
966 bool MP4WriteRtpHint(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
967 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
968 MP4TrackId hintTrackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
969 MP4Duration duration,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
970 bool isSyncSample DEFAULT(true));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
971
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
972 /* 3GP specific utilities */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
973
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
974 bool MP4Make3GPCompliant(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
975 const char* fileName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
976 u_int32_t verbosity DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
977 char* majorBrand DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
978 u_int32_t minorVersion DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
979 char** supportedBrands DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
980 u_int32_t supportedBrandsCount DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
981 bool deleteIodsAtom DEFAULT(true));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
982
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
983 /* ISMA specific utilities */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
984
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
985 bool MP4MakeIsmaCompliant(const char* fileName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
986 u_int32_t verbosity DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
987 bool addIsmaComplianceSdp DEFAULT(true));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
988
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
989 char* MP4MakeIsmaSdpIod(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
990 u_int8_t videoProfile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
991 u_int32_t videoBitrate,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
992 u_int8_t* videoConfig,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
993 u_int32_t videoConfigLength,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
994 u_int8_t audioProfile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
995 u_int32_t audioBitrate,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
996 u_int8_t* audioConfig,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
997 u_int32_t audioConfigLength,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
998 u_int32_t verbosity DEFAULT(0));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
999
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1000 /* edit list */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1001
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1002 /* NOTE this section of functionality
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1003 * has not yet been fully tested
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1004 */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1005
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1006 MP4EditId MP4AddTrackEdit(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1007 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1008 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1009 MP4EditId editId DEFAULT(MP4_INVALID_EDIT_ID),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1010 MP4Timestamp startTime DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1011 MP4Duration duration DEFAULT(0),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1012 bool dwell DEFAULT(false));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1013
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1014 bool MP4DeleteTrackEdit(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1015 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1016 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1017 MP4EditId editId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1018
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1019 u_int32_t MP4GetTrackNumberOfEdits(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1020 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1021 MP4TrackId trackId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1022
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1023 MP4Timestamp MP4GetTrackEditStart(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1024 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1025 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1026 MP4EditId editId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1027
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1028 MP4Duration MP4GetTrackEditTotalDuration(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1029 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1030 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1031 MP4EditId editId DEFAULT(MP4_INVALID_EDIT_ID));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1032
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1033 MP4Timestamp MP4GetTrackEditMediaStart(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1034 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1035 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1036 MP4EditId editId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1037
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1038 bool MP4SetTrackEditMediaStart(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1039 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1040 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1041 MP4EditId editId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1042 MP4Timestamp startTime);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1043
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1044 MP4Duration MP4GetTrackEditDuration(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1045 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1046 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1047 MP4EditId editId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1048
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1049 bool MP4SetTrackEditDuration(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1050 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1051 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1052 MP4EditId editId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1053 MP4Duration duration);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1054
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1055 int8_t MP4GetTrackEditDwell(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1056 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1057 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1058 MP4EditId editId);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1059
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1060 bool MP4SetTrackEditDwell(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1061 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1062 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1063 MP4EditId editId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1064 bool dwell);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1065
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1066 bool MP4ReadSampleFromEditTime(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1067 /* input parameters */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1068 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1069 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1070 MP4Timestamp when,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1071 /* input/output parameters */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1072 u_int8_t** ppBytes,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1073 u_int32_t* pNumBytes,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1074 /* output parameters */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1075 MP4Timestamp* pStartTime DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1076 MP4Duration* pDuration DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1077 MP4Duration* pRenderingOffset DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1078 bool* pIsSyncSample DEFAULT(NULL));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1079
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1080 MP4SampleId MP4GetSampleIdFromEditTime(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1081 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1082 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1083 MP4Timestamp when,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1084 MP4Timestamp* pStartTime DEFAULT(NULL),
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1085 MP4Duration* pDuration DEFAULT(NULL));
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1086 /* iTunes metadata handling */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1087 bool MP4MetadataDelete(MP4FileHandle hFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1088 bool MP4GetMetadataByIndex(MP4FileHandle hFile, u_int32_t index,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1089 const char** ppName,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1090 u_int8_t** ppValue, u_int32_t* pValueSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1091 bool MP4SetMetadataName(MP4FileHandle hFile, const char* value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1092 bool MP4GetMetadataName(MP4FileHandle hFile, char** value);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1093 bool MP4DeleteMetadataName(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1094 bool MP4SetMetadataArtist(MP4FileHandle hFile, const char* value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1095 bool MP4GetMetadataArtist(MP4FileHandle hFile, char** value);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1096 bool MP4DeleteMetadataArtist(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1097 bool MP4SetMetadataWriter(MP4FileHandle hFile, const char* value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1098 bool MP4GetMetadataWriter(MP4FileHandle hFile, char** value);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1099 bool MP4DeleteMetadataWriter(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1100 bool MP4SetMetadataComment(MP4FileHandle hFile, const char* value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1101 bool MP4GetMetadataComment(MP4FileHandle hFile, char** value);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1102 bool MP4DeleteMetadataComment(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1103 bool MP4SetMetadataTool(MP4FileHandle hFile, const char* value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1104 bool MP4GetMetadataTool(MP4FileHandle hFile, char** value);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1105 bool MP4DeleteMetadataTool(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1106 bool MP4SetMetadataYear(MP4FileHandle hFile, const char* value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1107 bool MP4GetMetadataYear(MP4FileHandle hFile, char** value);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1108 bool MP4DeleteMetadataYear(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1109 bool MP4SetMetadataAlbum(MP4FileHandle hFile, const char* value);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1110 bool MP4GetMetadataAlbum(MP4FileHandle hFile, char** value);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1111 bool MP4DeleteMetadataAlbum(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1112 bool MP4SetMetadataTrack(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1113 u_int16_t track, u_int16_t totalTracks);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1114 bool MP4GetMetadataTrack(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1115 u_int16_t* track, u_int16_t* totalTracks);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1116 bool MP4DeleteMetadataTrack(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1117 bool MP4SetMetadataDisk(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1118 u_int16_t disk, u_int16_t totalDisks);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1119 bool MP4GetMetadataDisk(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1120 u_int16_t* disk, u_int16_t* totalDisks);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1121 bool MP4DeleteMetadataDisk(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1122 bool MP4SetMetadataGenre(MP4FileHandle hFile, const char *genre);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1123 bool MP4GetMetadataGenre(MP4FileHandle hFile, char **genre);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1124 bool MP4DeleteMetadataGenre(MP4FileHandle hFile);
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1125 bool MP4SetMetadataGrouping(MP4FileHandle hFile, const char *grouping);
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1126 bool MP4GetMetadataGrouping(MP4FileHandle hFile, char **grouping);
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1127 bool MP4DeleteMetadataGrouping(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1128 bool MP4SetMetadataTempo(MP4FileHandle hFile, u_int16_t tempo);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1129 bool MP4GetMetadataTempo(MP4FileHandle hFile, u_int16_t* tempo);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1130 bool MP4DeleteMetadataTempo(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1131 bool MP4SetMetadataCompilation(MP4FileHandle hFile, u_int8_t cpl);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1132 bool MP4GetMetadataCompilation(MP4FileHandle hFile, u_int8_t* cpl);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1133 bool MP4DeleteMetadataCompilation(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1134 bool MP4SetMetadataCoverArt(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1135 u_int8_t *coverArt, u_int32_t size);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1136 bool MP4GetMetadataCoverArt(MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1137 u_int8_t **coverArt, u_int32_t* size);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1138 bool MP4DeleteMetadataCoverArt(MP4FileHandle hFile);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1139 bool MP4SetMetadataFreeForm(MP4FileHandle hFile, char *name,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1140 u_int8_t* pValue, u_int32_t valueSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1141 bool MP4GetMetadataFreeForm(MP4FileHandle hFile, char *name,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1142 u_int8_t** pValue, u_int32_t* valueSize);
201
f2dc045d2327 [svn] libmp4v2 goes back to the future
chainsaw
parents: 199
diff changeset
1143 bool MP4DeleteMetadataFreeForm(MP4FileHandle hFile, char *name);
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1144
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1145
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1146 /* time conversion utilties */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1147
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1148 /* predefined values for timeScale parameter below */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1149 #define MP4_SECONDS_TIME_SCALE 1
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1150 #define MP4_MILLISECONDS_TIME_SCALE 1000
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1151 #define MP4_MICROSECONDS_TIME_SCALE 1000000
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1152 #define MP4_NANOSECONDS_TIME_SCALE 1000000000
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1153
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1154 #define MP4_SECS_TIME_SCALE MP4_SECONDS_TIME_SCALE
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1155 #define MP4_MSECS_TIME_SCALE MP4_MILLISECONDS_TIME_SCALE
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1156 #define MP4_USECS_TIME_SCALE MP4_MICROSECONDS_TIME_SCALE
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1157 #define MP4_NSECS_TIME_SCALE MP4_NANOSECONDS_TIME_SCALE
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1158
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1159 u_int64_t MP4ConvertFromMovieDuration(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1160 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1161 MP4Duration duration,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1162 u_int32_t timeScale);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1163
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1164 u_int64_t MP4ConvertFromTrackTimestamp(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1165 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1166 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1167 MP4Timestamp timeStamp,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1168 u_int32_t timeScale);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1169
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1170 MP4Timestamp MP4ConvertToTrackTimestamp(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1171 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1172 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1173 u_int64_t timeStamp,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1174 u_int32_t timeScale);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1175
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1176 u_int64_t MP4ConvertFromTrackDuration(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1177 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1178 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1179 MP4Duration duration,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1180 u_int32_t timeScale);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1181
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1182 MP4Duration MP4ConvertToTrackDuration(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1183 MP4FileHandle hFile,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1184 MP4TrackId trackId,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1185 u_int64_t duration,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1186 u_int32_t timeScale);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1187
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1188 char* MP4BinaryToBase16(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1189 const u_int8_t* pData,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1190 u_int32_t dataSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1191
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1192 char* MP4BinaryToBase64(
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1193 const u_int8_t* pData,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1194 u_int32_t dataSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1195
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1196 uint8_t *Base64ToBinary(const char *pData,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1197 uint32_t decodeSize,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1198 uint32_t *pDataSize);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1199
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1200 #ifdef __cplusplus
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1201 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1202 #endif
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1203
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1204 /* undefined our utlity macro to avoid conflicts */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1205 #undef DEFAULT
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1206
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1207 #endif /* __MP4_INCLUDED__ */