ctab.c
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:2k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

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