forked from duiniuluantanqin/mp4
-
Notifications
You must be signed in to change notification settings - Fork 0
/
funcprotos.h
163 lines (144 loc) · 9.39 KB
/
funcprotos.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#ifndef FUNCPROTOS_H
#define FUNCPROTOS_H
#include "private.h"
/* atom handling routines */
long quicktime_atom_read_size(char *data);
u_int64_t quicktime_atom_read_size64(char *data);
quicktime_trak_t* quicktime_add_track(quicktime_moov_t *moov);
quicktime_trak_t* quicktime_find_track_by_id(quicktime_moov_t *moov, int trackId);
/* initializers for every atom */
int quicktime_matrix_init(quicktime_matrix_t *matrix);
int quicktime_edts_init_table(quicktime_edts_t *edts);
int quicktime_edts_init(quicktime_edts_t *edts);
int quicktime_elst_init(quicktime_elst_t *elst);
int quicktime_elst_init_all(quicktime_elst_t *elst);
int quicktime_elst_table_init(quicktime_elst_table_t *table); /* initialize a table */
int quicktime_tkhd_init(quicktime_tkhd_t *tkhd);
int quicktime_tkhd_init_video(quicktime_t *file, quicktime_tkhd_t *tkhd, int frame_w, int frame_h);
int quicktime_ctab_init(quicktime_ctab_t *ctab);
int quicktime_mjqt_init(quicktime_mjqt_t *mjqt);
int quicktime_mjht_init(quicktime_mjht_t *mjht);
int quicktime_stsd_table_init(quicktime_stsd_table_t *table);
int quicktime_stsd_init(quicktime_stsd_t *stsd);
int quicktime_stsd_init_table(quicktime_stsd_t *stsd);
int quicktime_stsd_init_video(quicktime_t *file, quicktime_stsd_t *stsd, int frame_w, int frame_h, float frame_rate, char *compression);
int quicktime_stsd_init_audio(quicktime_t *file, quicktime_stsd_t *stsd, int channels, int sample_rate, int bits, char *compressor);
int quicktime_stts_init(quicktime_stts_t *stts);
int quicktime_stts_init_table(quicktime_stts_t *stts);
int quicktime_stts_init_video(quicktime_t *file, quicktime_stts_t *stts, int time_scale, float frame_rate);
int quicktime_stts_init_audio(quicktime_t *file, quicktime_stts_t *stts, int time_scale, int sample_duration);
int quicktime_stts_init_hint(quicktime_t *file, quicktime_stts_t *stts, int sample_duration);
int quicktime_stss_init(quicktime_stss_t *stss);
int quicktime_stss_init_common(quicktime_t *file, quicktime_stss_t *stss);
int quicktime_stsc_init(quicktime_stsc_t *stsc);
int quicktime_stsc_init_video(quicktime_t *file, quicktime_stsc_t *stsc);
int quicktime_stsc_init_audio(quicktime_t *file, quicktime_stsc_t *stsc);
int quicktime_stsz_init(quicktime_stsz_t *stsz);
int quicktime_stsz_init_video(quicktime_t *file, quicktime_stsz_t *stsz);
int quicktime_stsz_init_audio(quicktime_t *file, quicktime_stsz_t *stsz, int sample_size);
int quicktime_stco_init(quicktime_stco_t *stco);
int quicktime_stco_init_common(quicktime_t *file, quicktime_stco_t *stco);
int quicktime_stbl_init(quicktime_stbl_t *tkhd);
int quicktime_stbl_init_video(quicktime_t *file, quicktime_stbl_t *stbl, int frame_w, int frame_h, int time_scale, float frame_rate, char *compressor);
int quicktime_stbl_init_audio(quicktime_t *file, quicktime_stbl_t *stbl, int channels, int sample_rate, int bits, int sample_size, int time_scale, int sample_duration, char *compressor);
int quicktime_stbl_init_hint(quicktime_t *file, quicktime_stbl_t *stbl, quicktime_trak_t *refTrak, int maxPktSize, int timeScale, int sampleDuration);
int quicktime_vmhd_init(quicktime_vmhd_t *vmhd);
int quicktime_vmhd_init_video(quicktime_t *file, quicktime_vmhd_t *vmhd, int frame_w, int frame_h, float frame_rate);
int quicktime_smhd_init(quicktime_smhd_t *smhd);
int quicktime_dref_table_init(quicktime_dref_table_t *table);
int quicktime_dref_init_all(quicktime_dref_t *dref);
int quicktime_dref_init(quicktime_dref_t *dref);
int quicktime_dinf_init_all(quicktime_dinf_t *dinf);
int quicktime_dinf_init(quicktime_dinf_t *dinf);
int quicktime_minf_init(quicktime_minf_t *minf);
int quicktime_minf_init_video(quicktime_t *file, quicktime_minf_t *minf, int frame_w, int frame_h, int time_scale, float frame_rate, char *compressor);
int quicktime_minf_init_audio(quicktime_t *file, quicktime_minf_t *minf, int channels, int sample_rate, int bits, int sample_size, int time_scale, int sample_duration, char *compressor);
int quicktime_minf_init_hint(quicktime_t *file, quicktime_minf_t *minf, quicktime_trak_t *refTrak, int maxPktSize, int timeScale, int sampleDuration);
int quicktime_mdhd_init(quicktime_mdhd_t *mdhd);
int quicktime_mdhd_init_video(quicktime_t *file, quicktime_mdhd_t *mdhd, int time_scale);
int quicktime_mdhd_init_audio(quicktime_t *file, quicktime_mdhd_t *mdhd, int time_scale);
int quicktime_mdia_init(quicktime_mdia_t *mdia);
int quicktime_mdia_init_video(quicktime_t *file, quicktime_mdia_t *mdia, int frame_w, int frame_h, float frame_rate, int time_scale, char *compressor);
int quicktime_mdia_init_audio(quicktime_t *file, quicktime_mdia_t *mdia, int channels, int sample_rate, int bits, int sample_size, int time_scale, int sample_duration, char *compressor);
int quicktime_mdia_init_hint(quicktime_t *file, quicktime_mdia_t *mdia, quicktime_trak_t *refTrak, int maxPktSize, int time_scale, int sampleDuration);
int quicktime_trak_init(quicktime_trak_t *trak);
int quicktime_trak_init_video(quicktime_t *file, quicktime_trak_t *trak, int frame_w, int frame_h, float frame_rate, int time_scale, char *compressor);
int quicktime_trak_init_audio(quicktime_t *file, quicktime_trak_t *trak, int channels, int sample_rate, int bits, int sample_size, int time_scale, int sample_duration, char *compressor);
int quicktime_trak_init_hint(quicktime_t *file, quicktime_trak_t *trak, quicktime_trak_t *refTrak, int maxPktSize, int time_scale, int sample_duration);
int quicktime_tref_init(quicktime_tref_t *tref);
int quicktime_tref_init_hint(quicktime_tref_t *tref, quicktime_trak_t *refTrak);
int quicktime_mvhd_init(quicktime_mvhd_t *mvhd);
int quicktime_moov_init(quicktime_moov_t *moov);
int quicktime_mdat_init(quicktime_mdat_t *mdat);
int quicktime_init(quicktime_t *file);
int quicktime_hdlr_init(quicktime_hdlr_t *hdlr);
int quicktime_hdlr_init_video(quicktime_hdlr_t *hdlr);
int quicktime_hdlr_init_audio(quicktime_hdlr_t *hdlr);
int quicktime_hdlr_init_data(quicktime_hdlr_t *hdlr);
/* utilities for reading data types */
int quicktime_read_data(quicktime_t *file, char *data, int size);
int quicktime_write_data(quicktime_t *file, char *data, int size);
int quicktime_read_pascal(quicktime_t *file, char *data);
int quicktime_write_pascal(quicktime_t *file, char *data);
float quicktime_read_fixed32(quicktime_t *file);
int quicktime_write_fixed32(quicktime_t *file, float number);
float quicktime_read_fixed16(quicktime_t *file);
int quicktime_write_fixed16(quicktime_t *file, float number);
u_int64_t quicktime_read_int64(quicktime_t *file);
int quicktime_write_int64(quicktime_t *file, u_int64_t number);
long quicktime_read_int32(quicktime_t *file);
int quicktime_write_int32(quicktime_t *file, long number);
long quicktime_read_int24(quicktime_t *file);
int quicktime_write_int24(quicktime_t *file, long number);
int quicktime_read_int16(quicktime_t *file);
int quicktime_write_int16(quicktime_t *file, int number);
int quicktime_read_char(quicktime_t *file);
int quicktime_write_char(quicktime_t *file, char x);
int quicktime_read_char32(quicktime_t *file, char *string);
int quicktime_write_char32(quicktime_t *file, char *string);
int quicktime_copy_char32(char *output, char *input);
long quicktime_position(quicktime_t *file);
int quicktime_read_mp4_descr_length(quicktime_t *file);
int quicktime_write_mp4_descr_length(quicktime_t *file, int length, BOOL compact);
/* Most codecs don't specify the actual number of bits on disk in the stbl. */
/* Convert the samples to the number of bytes for reading depending on the codec. */
long quicktime_samples_to_bytes(quicktime_trak_t *track, long samples);
/* chunks always start on 1 */
/* samples start on 0 */
/* queries for every atom */
/* the starting sample in the given chunk */
long quicktime_sample_of_chunk(quicktime_trak_t *trak, long chunk);
/* number of samples in the chunk */
long quicktime_chunk_samples(quicktime_trak_t *trak, long chunk);
/* the byte offset from mdat start of the chunk */
long quicktime_chunk_to_offset(quicktime_trak_t *trak, long chunk);
/* the chunk of any offset from mdat start */
long quicktime_offset_to_chunk(long *chunk_offset, quicktime_trak_t *trak, long offset);
/* the total number of samples in the track depending on the access mode */
long quicktime_track_samples(quicktime_t *file, quicktime_trak_t *trak);
/* total bytes between the two samples */
long quicktime_sample_range_size(quicktime_trak_t *trak, long chunk_sample, long sample);
/* update the position pointers in all the tracks after a set_position */
int quicktime_update_positions(quicktime_t *file);
/* converting between mdat offsets to samples */
long quicktime_sample_to_offset(quicktime_trak_t *trak, long sample);
long quicktime_offset_to_sample(quicktime_trak_t *trak, long offset);
quicktime_trak_t* quicktime_add_trak(quicktime_moov_t *moov);
int quicktime_delete_trak(quicktime_moov_t *moov, quicktime_trak_t *trak);
int quicktime_get_timescale(float frame_rate);
/* update all the tables after writing a buffer */
/* set sample_size to 0 if no sample size should be set */
int quicktime_update_tables(quicktime_t *file,
quicktime_trak_t *trak,
long offset,
long chunk,
long sample,
long samples,
long sample_size,
long sample_duration,
u_char isSyncSample,
long renderingOffset);
unsigned long quicktime_current_time();
/* Returns 1 if equal or 0 if different */
int quicktime_match_32(char *input, char *output);
#endif