ctab.c
上传用户:luping1608
上传日期:2007-01-06
资源大小:38k
文件大小:1k
源码类别:

多媒体

开发平台:

Unix_Linux

  1. #include "quicktime.h"
  2. int quicktime_ctab_init(quicktime_ctab_t *ctab)
  3. {
  4. ctab->seed = 0;
  5. ctab->flags = 0;
  6. ctab->size = 0;
  7. ctab->alpha = 0;
  8. ctab->red = 0;
  9. ctab->green = 0;
  10. ctab->blue = 0;
  11. return 0;
  12. }
  13. int quicktime_ctab_delete(quicktime_ctab_t *ctab)
  14. {
  15. if(ctab->alpha) free(ctab->alpha);
  16. if(ctab->red) free(ctab->red);
  17. if(ctab->green) free(ctab->green);
  18. if(ctab->blue) free(ctab->blue);
  19. return 0;
  20. }
  21. int quicktime_ctab_dump(quicktime_ctab_t *ctab)
  22. {
  23. int i;
  24. printf(" color tablen");
  25. printf("  seed %ldn", ctab->seed);
  26. printf("  flags %ldn", ctab->flags);
  27. printf("  size %ldn", ctab->size);
  28. printf("  colors ");
  29. for(i = 0; i < ctab->size; i++)
  30. {
  31. printf("[%d %d %d %d]", ctab->red[i], ctab->green[i], ctab->blue[i], ctab->alpha[i]);
  32. }
  33. printf("n");
  34. }
  35. int quicktime_read_ctab(quicktime_t *file, quicktime_ctab_t *ctab)
  36. {
  37. int i;
  38. ctab->seed = quicktime_read_int32(file);
  39. ctab->flags = quicktime_read_int16(file);
  40. ctab->size = quicktime_read_int16(file);
  41. ctab->alpha = malloc(sizeof(short int) * ctab->size);
  42. ctab->red = malloc(sizeof(short int) * ctab->size);
  43. ctab->green = malloc(sizeof(short int) * ctab->size);
  44. ctab->blue = malloc(sizeof(short int) * ctab->size);
  45. for(i = 0; i < ctab->size; i++)
  46. {
  47. ctab->alpha[i] = quicktime_read_int16(file);
  48. ctab->red[i] = quicktime_read_int16(file);
  49. ctab->green[i] = quicktime_read_int16(file);
  50. ctab->blue[i] = quicktime_read_int16(file);
  51. }
  52. return 0;
  53. }