home *** CD-ROM | disk | FTP | other *** search
/ Geek 6 / Geek-006.iso / linux / video / xmovie-1.5.3.tar.gz / xmovie-1.5.3.tar / xmovie-1.5.3 / quicktime / funcprotos.h < prev    next >
C/C++ Source or Header  |  2000-11-29  |  7KB  |  165 lines

  1. #ifndef FUNCPROTOS_H
  2. #define FUNCPROTOS_H
  3.  
  4. #include "graphics.h"
  5.  
  6. /* atom handling routines */
  7. long quicktime_atom_read_size(char *data);
  8. long quicktime_atom_read_size64(char *data);
  9.  
  10. quicktime_trak_t* quicktime_add_track(quicktime_moov_t *moov);
  11. float quicktime_read_fixed32(quicktime_t *file);
  12. float quicktime_read_fixed16(quicktime_t *file);
  13. long quicktime_read_int32(quicktime_t *file);
  14. long quicktime_read_int24(quicktime_t *file);
  15. long quicktime_position(quicktime_t *file);
  16. int quicktime_write_fixed32(quicktime_t *file, float number);
  17. int quicktime_write_char(quicktime_t *file, char x);
  18. int quicktime_write_int16(quicktime_t *file, int number);
  19. int quicktime_write_int24(quicktime_t *file, long number);
  20. int quicktime_write_int32(quicktime_t *file, long value);
  21. int quicktime_write_char32(quicktime_t *file, char *string);
  22. int quicktime_write_fixed16(quicktime_t *file, float number);
  23. int quicktime_write_data(quicktime_t *file, char *data, int size);
  24. void quicktime_write_pascal(quicktime_t *file, char *data);
  25.  
  26. /* Most codecs don't specify the actual number of bits on disk in the stbl. */
  27. /* Convert the samples to the number of bytes for reading depending on the codec. */
  28. long quicktime_samples_to_bytes(quicktime_trak_t *track, long samples);
  29.  
  30. extern void quicktime_init_codec_raw(quicktime_video_map_t *);
  31. extern void quicktime_init_codec_jpeg(quicktime_video_map_t *);
  32. extern void quicktime_init_codec_png(quicktime_video_map_t *);
  33. extern void quicktime_init_codec_yuv2(quicktime_video_map_t *);
  34. extern void quicktime_init_codec_yuv4(quicktime_video_map_t *);
  35. extern void quicktime_init_codec_dv(quicktime_video_map_t *);
  36.  
  37. extern void quicktime_init_codec_twos(quicktime_audio_map_t *);
  38. extern void quicktime_init_codec_rawaudio(quicktime_audio_map_t *);
  39. extern void quicktime_init_codec_ima4(quicktime_audio_map_t *); 
  40. extern void quicktime_init_codec_ulaw(quicktime_audio_map_t *); 
  41.  
  42.  
  43. /* Graphics */
  44. quicktime_scaletable_t* quicktime_new_scaletable(int input_w, int input_h, int output_w, int output_h);
  45.  
  46.  
  47. /* chunks always start on 1 */
  48. /* samples start on 0 */
  49.  
  50. /* update the position pointers in all the tracks after a set_position */
  51. int quicktime_update_positions(quicktime_t *file);
  52.  
  53.  
  54.  
  55. int quicktime_trak_init_audio(quicktime_t *file, 
  56.                             quicktime_trak_t *trak, 
  57.                             int channels, 
  58.                             int sample_rate, 
  59.                             int bits, 
  60.                             char *compressor);
  61. int quicktime_trak_init_video(quicktime_t *file, 
  62.                             quicktime_trak_t *trak, 
  63.                             int frame_w, 
  64.                             int frame_h, 
  65.                             float frame_rate,
  66.                             char *compressor);
  67. int quicktime_trak_delete(quicktime_trak_t *trak);
  68. int quicktime_trak_dump(quicktime_trak_t *trak);
  69. int quicktime_delete_trak(quicktime_moov_t *moov);
  70. int quicktime_read_trak(quicktime_t *file, quicktime_trak_t *trak, quicktime_atom_t *trak_atom);
  71. int quicktime_write_trak(quicktime_t *file, quicktime_trak_t *trak, long moov_time_scale);
  72. long quicktime_track_end(quicktime_trak_t *trak);
  73. /* the total number of samples in the track depending on the access mode */
  74. long quicktime_track_samples(quicktime_t *file, quicktime_trak_t *trak);
  75. /* queries for every atom */
  76. /* the starting sample in the given chunk */
  77. long quicktime_sample_of_chunk(quicktime_trak_t *trak, long chunk);
  78. /* the byte offset from mdat start of the chunk */
  79. long quicktime_chunk_to_offset(quicktime_trak_t *trak, long chunk);
  80. /* the chunk of any offset from mdat start */
  81. long quicktime_offset_to_chunk(long *chunk_offset, quicktime_trak_t *trak, long offset);
  82. /* total bytes between the two samples */
  83. long quicktime_sample_range_size(quicktime_trak_t *trak, long chunk_sample, long sample);
  84. int quicktime_chunk_of_sample(long *chunk_sample, long *chunk, quicktime_trak_t *trak, long sample);
  85. /* converting between mdat offsets to samples */
  86. long quicktime_sample_to_offset(quicktime_trak_t *trak, long sample);
  87. long quicktime_offset_to_sample(quicktime_trak_t *trak, long offset);
  88. quicktime_trak_t* quicktime_add_trak(quicktime_moov_t *moov);
  89. /* update all the tables after writing a buffer */
  90. /* set sample_size to 0 if no sample size should be set */
  91. int quicktime_update_tables(quicktime_t *file, 
  92.                             quicktime_trak_t *trak, 
  93.                             long offset, 
  94.                             long chunk, 
  95.                             long sample, 
  96.                             long samples, 
  97.                             long sample_size);
  98. int quicktime_trak_duration(quicktime_trak_t *trak, long *duration, long *timescale);
  99. int quicktime_trak_fix_counts(quicktime_t *file, quicktime_trak_t *trak);
  100. /* number of samples in the chunk */
  101. long quicktime_chunk_samples(quicktime_trak_t *trak, long chunk);
  102. int quicktime_trak_shift_offsets(quicktime_trak_t *trak, long offset);
  103. void quicktime_mhvd_init_video(quicktime_t *file, quicktime_mvhd_t *mvhd, float frame_rate);
  104. void quicktime_stsd_init_video(quicktime_t *file, 
  105.                                 quicktime_stsd_t *stsd, 
  106.                                 int frame_w,
  107.                                 int frame_h, 
  108.                                 float frame_rate,
  109.                                 char *compression);
  110. void quicktime_stsd_init_audio(quicktime_t *file, 
  111.                             quicktime_stsd_t *stsd, 
  112.                             int channels,
  113.                             int sample_rate, 
  114.                             int bits, 
  115.                             char *compressor);
  116. void quicktime_stbl_init_video(quicktime_t *file, 
  117.                                 quicktime_stbl_t *stbl, 
  118.                                 int frame_w,
  119.                                 int frame_h, 
  120.                                 int time_scale, 
  121.                                 float frame_rate,
  122.                                 char *compressor);
  123. void quicktime_stbl_init_audio(quicktime_t *file, 
  124.                             quicktime_stbl_t *stbl, 
  125.                             int channels, 
  126.                             int sample_rate, 
  127.                             int bits, 
  128.                             char *compressor);
  129. void quicktime_minf_init_video(quicktime_t *file, 
  130.                                 quicktime_minf_t *minf, 
  131.                                 int frame_w,
  132.                                 int frame_h, 
  133.                                 int time_scale, 
  134.                                 float frame_rate,
  135.                                 char *compressor);
  136. void quicktime_minf_init_audio(quicktime_t *file, 
  137.                             quicktime_minf_t *minf, 
  138.                             int channels, 
  139.                             int sample_rate, 
  140.                             int bits, 
  141.                             char *compressor);
  142. void quicktime_mdia_init_video(quicktime_t *file, 
  143.                                 quicktime_mdia_t *mdia,
  144.                                 int frame_w,
  145.                                 int frame_h, 
  146.                                 float frame_rate,
  147.                                 char *compressor);
  148. void quicktime_mdia_init_audio(quicktime_t *file, 
  149.                             quicktime_mdia_t *mdia, 
  150.                             int channels,
  151.                             int sample_rate, 
  152.                             int bits, 
  153.                             char *compressor);
  154. void quicktime_tkhd_init_video(quicktime_t *file, 
  155.                                 quicktime_tkhd_t *tkhd, 
  156.                                 int frame_w, 
  157.                                 int frame_h);
  158. quicktime_trak_t* quicktime_add_trak(quicktime_moov_t *moov);
  159. int quicktime_delete_trak(quicktime_moov_t *moov);
  160. int quicktime_get_timescale(float frame_rate);
  161.  
  162. unsigned long quicktime_current_time(void);
  163.  
  164. #endif
  165.