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 / stss.c < prev    next >
C/C++ Source or Header  |  2000-11-29  |  2KB  |  66 lines

  1. #include "quicktime.h"
  2.  
  3.  
  4.  
  5. void quicktime_stss_init(quicktime_stss_t *stss)
  6. {
  7.     stss->version = 0;
  8.     stss->flags = 0;
  9.     stss->total_entries = 0;
  10. }
  11.  
  12. void quicktime_stss_delete(quicktime_stss_t *stss)
  13. {
  14.     if(stss->total_entries) free(stss->table);
  15.     stss->total_entries = 0;
  16. }
  17.  
  18. void quicktime_stss_dump(quicktime_stss_t *stss)
  19. {
  20.     int i;
  21.     printf("     sync sample\n");
  22.     printf("      version %d\n", stss->version);
  23.     printf("      flags %d\n", stss->flags);
  24.     printf("      total_entries %d\n", stss->total_entries);
  25.     for(i = 0; i < stss->total_entries; i++)
  26.     {
  27.         printf("       sample %x\n", stss->table[i].sample);
  28.     }
  29. }
  30.  
  31. void quicktime_read_stss(quicktime_t *file, quicktime_stss_t *stss)
  32. {
  33.     int i;
  34.     stss->version = quicktime_read_char(file);
  35.     stss->flags = quicktime_read_int24(file);
  36.     stss->total_entries = quicktime_read_int32(file);
  37.     
  38.     stss->table = (quicktime_stss_table_t*)malloc(sizeof(quicktime_stss_table_t) * stss->total_entries);
  39.     for(i = 0; i < stss->total_entries; i++)
  40.     {
  41.         stss->table[i].sample = quicktime_read_int32(file);
  42.     }
  43. }
  44.  
  45.  
  46. void quicktime_write_stss(quicktime_t *file, quicktime_stss_t *stss)
  47. {
  48.     int i;
  49.     quicktime_atom_t atom;
  50.  
  51.     if(stss->total_entries)
  52.     {
  53.         quicktime_atom_write_header(file, &atom, "stss");
  54.  
  55.         quicktime_write_char(file, stss->version);
  56.         quicktime_write_int24(file, stss->flags);
  57.         quicktime_write_int32(file, stss->total_entries);
  58.         for(i = 0; i < stss->total_entries; i++)
  59.         {
  60.             quicktime_write_int32(file, stss->table[i].sample);
  61.         }
  62.  
  63.         quicktime_atom_write_footer(file, &atom);
  64.     }
  65. }
  66.