00001 #include <stdio.h> 00002 #include "funcprotos.h" 00003 #include "quicktime.h" 00004 00005 int quicktime_ctab_init(quicktime_ctab_t *ctab) 00006 { 00007 ctab->seed = 0; 00008 ctab->flags = 0; 00009 ctab->size = 0; 00010 ctab->alpha = 0; 00011 ctab->red = 0; 00012 ctab->green = 0; 00013 ctab->blue = 0; 00014 return 0; 00015 } 00016 00017 int quicktime_ctab_delete(quicktime_ctab_t *ctab) 00018 { 00019 if(ctab->alpha) free(ctab->alpha); 00020 if(ctab->red) free(ctab->red); 00021 if(ctab->green) free(ctab->green); 00022 if(ctab->blue) free(ctab->blue); 00023 return 0; 00024 } 00025 00026 void quicktime_ctab_dump(quicktime_ctab_t *ctab) 00027 { 00028 int i; 00029 printf(" color table\n"); 00030 printf(" seed %ld\n", ctab->seed); 00031 printf(" flags %ld\n", ctab->flags); 00032 printf(" size %ld\n", ctab->size); 00033 printf(" colors "); 00034 for(i = 0; i < ctab->size; i++) 00035 { 00036 printf("[%d %d %d %d]", ctab->red[i], ctab->green[i], ctab->blue[i], ctab->alpha[i]); 00037 } 00038 printf("\n"); 00039 } 00040 00041 int quicktime_read_ctab(quicktime_t *file, quicktime_ctab_t *ctab) 00042 { 00043 int i; 00044 00045 ctab->seed = quicktime_read_int32(file); 00046 ctab->flags = quicktime_read_int16(file); 00047 ctab->size = quicktime_read_int16(file) + 1; 00048 ctab->alpha = malloc(sizeof(int16_t) * ctab->size); 00049 ctab->red = malloc(sizeof(int16_t) * ctab->size); 00050 ctab->green = malloc(sizeof(int16_t) * ctab->size); 00051 ctab->blue = malloc(sizeof(int16_t) * ctab->size); 00052 00053 for(i = 0; i < ctab->size; i++) 00054 { 00055 ctab->alpha[i] = quicktime_read_int16(file); 00056 ctab->red[i] = quicktime_read_int16(file); 00057 ctab->green[i] = quicktime_read_int16(file); 00058 ctab->blue[i] = quicktime_read_int16(file); 00059 } 00060 00061 return 0; 00062 }
1.5.5