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 / mvhd.c < prev    next >
C/C++ Source or Header  |  2000-11-29  |  4KB  |  106 lines

  1. #include "quicktime.h"
  2.  
  3.  
  4.  
  5. int quicktime_mvhd_init(quicktime_mvhd_t *mvhd)
  6. {
  7.     int i;
  8.     mvhd->version = 0;
  9.     mvhd->flags = 0;
  10.     mvhd->creation_time = quicktime_current_time();
  11.     mvhd->modification_time = quicktime_current_time();
  12.     mvhd->time_scale = 600;
  13.     mvhd->duration = 0;
  14.     mvhd->preferred_rate = 1.0;
  15.     mvhd->preferred_volume = 0.996094;
  16.     for(i = 0; i < 10; i++) mvhd->reserved[i] = 0;
  17.     quicktime_matrix_init(&(mvhd->matrix));
  18.     mvhd->preview_time = 0;
  19.     mvhd->preview_duration = 0;
  20.     mvhd->poster_time = 0;
  21.     mvhd->selection_time = 0;
  22.     mvhd->selection_duration = 0;
  23.     mvhd->current_time = 0;
  24.     mvhd->next_track_id = 1;
  25.     return 0;
  26. }
  27.  
  28. int quicktime_mvhd_delete(quicktime_mvhd_t *mvhd)
  29. {
  30.     return 0;
  31. }
  32.  
  33. void quicktime_mvhd_dump(quicktime_mvhd_t *mvhd)
  34. {
  35.     printf(" movie header\n");
  36.     printf("  version %d\n", mvhd->version);
  37.     printf("  flags %ld\n", mvhd->flags);
  38.     printf("  creation_time %u\n", mvhd->creation_time);
  39.     printf("  modification_time %u\n", mvhd->modification_time);
  40.     printf("  time_scale %ld\n", mvhd->time_scale);
  41.     printf("  duration %ld\n", mvhd->duration);
  42.     printf("  preferred_rate %f\n", mvhd->preferred_rate);
  43.     printf("  preferred_volume %f\n", mvhd->preferred_volume);
  44.     quicktime_print_chars("  reserved ", mvhd->reserved, 10);
  45.     quicktime_matrix_dump(&(mvhd->matrix));
  46.     printf("  preview_time %ld\n", mvhd->preview_time);
  47.     printf("  preview_duration %ld\n", mvhd->preview_duration);
  48.     printf("  poster_time %ld\n", mvhd->poster_time);
  49.     printf("  selection_time %ld\n", mvhd->selection_time);
  50.     printf("  selection_duration %ld\n", mvhd->selection_duration);
  51.     printf("  current_time %ld\n", mvhd->current_time);
  52.     printf("  next_track_id %ld\n", mvhd->next_track_id);
  53. }
  54.  
  55. void quicktime_read_mvhd(quicktime_t *file, quicktime_mvhd_t *mvhd)
  56. {
  57.     mvhd->version = quicktime_read_char(file);
  58.     mvhd->flags = quicktime_read_int24(file);
  59.     mvhd->creation_time = quicktime_read_int32(file);
  60.     mvhd->modification_time = quicktime_read_int32(file);
  61.     mvhd->time_scale = quicktime_read_int32(file);
  62.     mvhd->duration = quicktime_read_int32(file);
  63.     mvhd->preferred_rate = quicktime_read_fixed32(file);
  64.     mvhd->preferred_volume = quicktime_read_fixed16(file);
  65.     quicktime_read_data(file, mvhd->reserved, 10);
  66.     quicktime_read_matrix(file, &(mvhd->matrix));
  67.     mvhd->preview_time = quicktime_read_int32(file);
  68.     mvhd->preview_duration = quicktime_read_int32(file);
  69.     mvhd->poster_time = quicktime_read_int32(file);
  70.     mvhd->selection_time = quicktime_read_int32(file);
  71.     mvhd->selection_duration = quicktime_read_int32(file);
  72.     mvhd->current_time = quicktime_read_int32(file);
  73.     mvhd->next_track_id = quicktime_read_int32(file);
  74. }
  75.  
  76. void quicktime_mhvd_init_video(quicktime_t *file, quicktime_mvhd_t *mvhd, float frame_rate)
  77. {
  78.     mvhd->time_scale = quicktime_get_timescale(frame_rate);
  79. }
  80.  
  81. void quicktime_write_mvhd(quicktime_t *file, quicktime_mvhd_t *mvhd)
  82. {
  83.     quicktime_atom_t atom;
  84.     quicktime_atom_write_header(file, &atom, "mvhd");
  85.  
  86.     quicktime_write_char(file, mvhd->version);
  87.     quicktime_write_int24(file, mvhd->flags);
  88.     quicktime_write_int32(file, mvhd->creation_time);
  89.     quicktime_write_int32(file, mvhd->modification_time);
  90.     quicktime_write_int32(file, mvhd->time_scale);
  91.     quicktime_write_int32(file, mvhd->duration);
  92.     quicktime_write_fixed32(file, mvhd->preferred_rate);
  93.     quicktime_write_fixed16(file, mvhd->preferred_volume);
  94.     quicktime_write_data(file, mvhd->reserved, 10);
  95.     quicktime_write_matrix(file, &(mvhd->matrix));
  96.     quicktime_write_int32(file, mvhd->preview_time);
  97.     quicktime_write_int32(file, mvhd->preview_duration);
  98.     quicktime_write_int32(file, mvhd->poster_time);
  99.     quicktime_write_int32(file, mvhd->selection_time);
  100.     quicktime_write_int32(file, mvhd->selection_duration);
  101.     quicktime_write_int32(file, mvhd->current_time);
  102.     quicktime_write_int32(file, mvhd->next_track_id);
  103.  
  104.     quicktime_atom_write_footer(file, &atom);
  105. }
  106.