annotate Input/aac/libmp4v2/mp4.h @ 16:6a86fdd4dea4 trunk

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