00001 #ifndef QUICKTIME_H
00002 #define QUICKTIME_H
00003
00004 #ifdef __cplusplus
00005 extern "C" {
00006 #endif
00007
00008
00009 #include "qtprivate.h"
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #define QUICKTIME_DX50 "DX50"
00022 #define QUICKTIME_MPG4 "MPG4"
00023 #define QUICKTIME_MP42 "MP42"
00024 #define QUICKTIME_DIVX "DIVX"
00025 #define QUICKTIME_XVID "XVID"
00026 #define QUICKTIME_MP4V "mp4v"
00027
00028 #define QUICKTIME_H264 "avc1"
00029
00030
00031
00032
00033 #define QUICKTIME_HV60 "HV60"
00034
00035
00036 #define QUICKTIME_HV64 "HV64"
00037
00038
00039 #define QUICKTIME_DIV3 "DIV3"
00040 #define QUICKTIME_DIV3_LOWER "div3"
00041
00042
00043 #define QUICKTIME_SVQ1 "SVQ1"
00044 #define QUICKTIME_SVQ3 "SVQ3"
00045 #define QUICKTIME_H263 "h263"
00046
00047
00048 #define QUICKTIME_DV "dvc "
00049 #define QUICKTIME_DV25 "dv25"
00050 #define QUICKTIME_DVSD "dvsd"
00051 #define QUICKTIME_DVCP "dvcp" // PAL video inside Quicktime
00052
00053
00054 #define QUICKTIME_RAW "raw "
00055
00056
00057 #define QUICKTIME_JPEG "jpeg"
00058
00059
00060 #define QUICKTIME_PNG "png "
00061
00062
00063 #define QUICKTIME_MJPA "mjpa"
00064
00065
00066 #define QUICKTIME_YUV2 "yuv2"
00067
00068
00069 #define QUICKTIME_2VUY "2vuy"
00070
00071
00072 #define QUICKTIME_YUV4 "yuv4"
00073
00074
00075
00076
00077 #define QUICKTIME_YUV420 "yv12"
00078
00079
00080 #define QUICKTIME_YUV411 "y411"
00081
00082
00083 #define QUICKTIME_YUV422 "yuv2"
00084
00085
00086 #define QUICKTIME_YUV444 "v308"
00087
00088
00089 #define QUICKTIME_YUVA4444 "v408"
00090
00091
00092 #define QUICKTIME_YUV444_10bit "v410"
00093
00094
00095
00096
00097
00098
00099 #define QUICKTIME_YUV9 "YVU9"
00100
00101
00102
00103 #define QUICKTIME_RTJ0 "RTJ0"
00104
00105
00106
00107
00108 #ifndef QUICKTIME_RAW
00109 #define QUICKTIME_RAW "raw "
00110 #endif
00111
00112
00113 #define QUICKTIME_IMA4 "ima4"
00114
00115
00116 #define QUICKTIME_TWOS "twos"
00117
00118
00119 #define QUICKTIME_ULAW "ulaw"
00120
00121
00122 #define QUICKTIME_VORBIS "OggS"
00123
00124
00125 #define QUICKTIME_MP3 ".mp3"
00126
00127 #define QUICKTIME_MP4A "mp4a"
00128
00129
00130
00131 #define QUICKTIME_WMA "WMA "
00132
00133
00134 #define QUICKTIME_WMX2 "wmx2"
00135
00136
00137
00138
00139 int quicktime_major(void);
00140 int quicktime_minor(void);
00141 int quicktime_release(void);
00142
00143
00144 int quicktime_check_sig(char *path);
00145
00146
00147 quicktime_t* quicktime_open(char *filename, int rd, int wr);
00148
00149
00150
00151
00152
00153
00154 void quicktime_set_avi(quicktime_t *file, int value);
00155 int quicktime_is_avi(quicktime_t *file);
00156
00157
00158 void quicktime_set_asf(quicktime_t *file, int value);
00159
00160
00161
00162 int quicktime_make_streamable(char *in_path, char *out_path);
00163
00164
00165 void quicktime_set_copyright(quicktime_t *file, char *string);
00166 void quicktime_set_name(quicktime_t *file, char *string);
00167 void quicktime_set_info(quicktime_t *file, char *string);
00168 char* quicktime_get_copyright(quicktime_t *file);
00169 char* quicktime_get_name(quicktime_t *file);
00170 char* quicktime_get_info(quicktime_t *file);
00171
00172
00173
00174
00175 int quicktime_read_info(quicktime_t *file);
00176
00177
00178
00179
00180 int quicktime_set_audio(quicktime_t *file,
00181 int channels,
00182 long sample_rate,
00183 int bits,
00184 char *compressor);
00185
00186 void quicktime_set_framerate(quicktime_t *file, double framerate);
00187
00188
00189 void quicktime_set_aspect(quicktime_t *file, double aspect);
00190
00191
00192 int quicktime_set_video(quicktime_t *file,
00193 int tracks,
00194 int frame_w,
00195 int frame_h,
00196 double frame_rate,
00197 char *compressor);
00198
00199
00200
00201 void quicktime_set_jpeg(quicktime_t *file, int quality, int use_float);
00202
00203
00204
00205
00206
00207 void quicktime_set_parameter(quicktime_t *file, char *key, void *value);
00208
00209
00210
00211 char* quicktime_acodec_title(char *fourcc);
00212 char* quicktime_vcodec_title(char *fourcc);
00213
00214
00215
00216 void quicktime_set_depth(quicktime_t *file,
00217 int depth,
00218 int track);
00219
00220
00221
00222 int quicktime_close(quicktime_t *file);
00223
00224
00225 long quicktime_audio_length(quicktime_t *file, int track);
00226 long quicktime_video_length(quicktime_t *file, int track);
00227
00228
00229 long quicktime_audio_position(quicktime_t *file, int track);
00230 long quicktime_video_position(quicktime_t *file, int track);
00231
00232
00233 int quicktime_video_tracks(quicktime_t *file);
00234 int quicktime_audio_tracks(quicktime_t *file);
00235
00236 int quicktime_has_audio(quicktime_t *file);
00237
00238
00239 long quicktime_sample_rate(quicktime_t *file, int track);
00240
00241
00242 int quicktime_audio_bits(quicktime_t *file, int track);
00243
00244
00245 int quicktime_track_channels(quicktime_t *file, int track);
00246 char* quicktime_audio_compressor(quicktime_t *file, int track);
00247
00248 int quicktime_has_video(quicktime_t *file);
00249 int quicktime_video_width(quicktime_t *file, int track);
00250 int quicktime_video_height(quicktime_t *file, int track);
00251
00252
00253 int quicktime_video_depth(quicktime_t *file, int track);
00254
00255
00256 int quicktime_video_interlacemode(quicktime_t *file, int track);
00257
00258
00259 double quicktime_frame_rate(quicktime_t *file, int track);
00260
00261 int quicktime_frame_rate_n(quicktime_t *file, int track);
00262 int quicktime_frame_rate_d(quicktime_t *file, int track);
00263
00264
00265 char* quicktime_video_compressor(quicktime_t *file, int track);
00266
00267
00268 long quicktime_frame_size(quicktime_t *file, long frame, int track);
00269
00270
00271
00272 int quicktime_channel_location(quicktime_t *file, int *quicktime_track, int *quicktime_channel, int channel);
00273
00274
00275 int quicktime_seek_end(quicktime_t *file);
00276 int quicktime_seek_start(quicktime_t *file);
00277
00278
00279 int quicktime_set_audio_position(quicktime_t *file, int64_t sample, int track);
00280 int quicktime_set_video_position(quicktime_t *file, int64_t frame, int track);
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291 int quicktime_write_frame(quicktime_t *file,
00292 unsigned char *video_buffer,
00293 int64_t bytes,
00294 int track);
00295
00296
00297
00298
00299 int quicktime_read_chunk(quicktime_t *file, char *output, int track, int64_t chunk, int64_t byte_start, int64_t byte_len);
00300
00301
00302 long quicktime_read_audio(quicktime_t *file, char *audio_buffer, long samples, int track);
00303 long quicktime_read_frame(quicktime_t *file, unsigned char *video_buffer, int track);
00304
00305
00306
00307 int quicktime_read_frame_init(quicktime_t *file, int track);
00308 int quicktime_read_frame_end(quicktime_t *file, int track);
00309
00310
00311
00312
00313 int64_t quicktime_get_keyframe_before(quicktime_t *file, int64_t frame, int track);
00314 int64_t quicktime_get_keyframe_after(quicktime_t *file, int64_t frame, int track);
00315 void quicktime_insert_keyframe(quicktime_t *file, int64_t frame, int track);
00316
00317
00318 int quicktime_has_keyframes(quicktime_t *file, int track);
00319
00320
00321
00322
00323 int quicktime_supported_video(quicktime_t *file, int track);
00324 int quicktime_supported_audio(quicktime_t *file, int track);
00325
00326
00327
00328
00329
00330
00331 int quicktime_reads_cmodel(quicktime_t *file,
00332 int colormodel,
00333 int track);
00334
00335
00336 int quicktime_writes_cmodel(quicktime_t *file,
00337 int colormodel,
00338 int track);
00339
00340
00341
00342 int quicktime_mpeg4_is_key(unsigned char *data, long size, char *codec_id);
00343 int quicktime_mpeg4_write_vol(unsigned char *data_start,
00344 int vol_width,
00345 int vol_height,
00346 int time_increment_resolution,
00347 double frame_rate);
00348 int quicktime_mpeg4_has_vol(unsigned char *data);
00349
00350
00351 int quicktime_h264_is_key(unsigned char *data, long size, char *codec_id);
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362 void quicktime_set_cmodel(quicktime_t *file, int colormodel);
00363
00364
00365 void quicktime_set_row_span(quicktime_t *file, int row_span);
00366
00367
00368
00369 void quicktime_set_window(quicktime_t *file,
00370 int in_x,
00371 int in_y,
00372 int in_w,
00373 int in_h,
00374 int out_w,
00375 int out_h);
00376
00377
00378 int quicktime_encode_video(quicktime_t *file,
00379 unsigned char **row_pointers,
00380 int track);
00381
00382
00383 long quicktime_decode_video(quicktime_t *file,
00384 unsigned char **row_pointers,
00385 int track);
00386
00387
00388 int64_t quicktime_memory_usage(quicktime_t *file);
00389
00390
00391
00392
00393 int quicktime_decode_audio(quicktime_t *file,
00394 int16_t *output_i,
00395 float *output_f,
00396 long samples,
00397 int channel);
00398 int quicktime_encode_audio(quicktime_t *file,
00399 int16_t **input_i,
00400 float **input_f,
00401 long samples);
00402
00403
00404
00405
00406
00407
00408
00409
00410 int quicktime_dump(quicktime_t *file);
00411
00412
00413 int quicktime_set_cpus(quicktime_t *file, int cpus);
00414
00415
00416
00417
00418
00419 void quicktime_set_preload(quicktime_t *file, int64_t preload);
00420
00421 int64_t quicktime_byte_position(quicktime_t *file);
00422
00423
00424 void quicktime_set_frame_start(quicktime_t *file, int64_t value);
00425
00426
00427
00428 #ifdef __cplusplus
00429 }
00430 #endif
00431
00432 #endif