Lines Matching +refs:ct +refs:diff

150 uint32_t segment_numTables(conv_table_t *ct)  in segment_numTables()  argument
152 return ct ? ct->numTables : 0; in segment_numTables()
155 uint32_t segment_numEntries(conv_table_t *ct) in segment_numEntries() argument
159 if (ct && ct->current_table < ct->numTables) { in segment_numEntries()
160 subtable_t *subtable = &ct->Tables[ ct->current_table ]; in segment_numEntries()
174 conv_table_t *ct; in segment_setTable() local
187 ct = *conv_tab; in segment_setTable()
191 if (!ct) { in segment_setTable()
193 ct = (conv_table_t *) malloc(sizeof(*ct)); in segment_setTable()
194 if (!ct) return -2; in segment_setTable()
196 memset(ct, 0, sizeof(*ct)); in segment_setTable()
198 *conv_tab = ct; in segment_setTable()
206 if (ct->numTables && (ct->numTables != numTables)) { in segment_setTable()
210 ct->numTables = numTables; in segment_setTable()
215 ct->current_table = 0xffffffff; in segment_setTable()
216 ct->current_segment = 0xffffffff; in segment_setTable()
219 if (!ct->Tables) { in segment_setTable()
220 ct->Tables = (subtable_t *) malloc(sizeof(subtable_t) * ct->numTables); in segment_setTable()
221 if (!ct->Tables) return segment_freeTable(conv_tab); in segment_setTable()
222 memset(ct->Tables, in segment_setTable()
234 subtable = &ct->Tables[ table ]; in segment_setTable()
348 return ct->numTables; in segment_setTable()
356 conv_table_t *ct; in segment_freeTable() local
362 ct = *Table; in segment_freeTable()
364 for (table = 0; table < ct->numTables; table++) { in segment_freeTable()
367 subtable = &ct->Tables[ table ]; in segment_freeTable()
383 X_FREE(ct->Tables); in segment_freeTable()
384 ct->numTables = 0; in segment_freeTable()
748 int32_t segment_save(conv_table_t *ct, FILE *fd) in segment_save() argument
760 if (!ct) return -1; in segment_save()
765 qsort(ct->Tables, // Base in segment_save()
766 ct->numTables, // nmemb in segment_save()
767 sizeof(ct->Tables[0]), // size in segment_save()
771 STORE2((uint8_t *)&u16, ct->numTables); in segment_save()
779 offset = sizeof(ct->numTables); in segment_save()
781 for (table = 0; table < ct->numTables; table++) { in segment_save()
783 subtable = &ct->Tables[ table ]; in segment_save()
901 int32_t segment_patchfile(conv_table_t *ct, uint32_t table, FILE *fd) in segment_patchfile() argument
912 subtable = &ct->Tables[ table ]; in segment_patchfile()
1001 bdplus_st_t *segment_set_m2ts(conv_table_t *ct, uint32_t m2ts) in segment_set_m2ts() argument
1007 if (!ct || !ct->numTables) { in segment_set_m2ts()
1013 for (ii = 0; ii < ct->numTables; ii++) { in segment_set_m2ts()
1014 if (ct->Tables[ii].tableID == m2ts) { in segment_set_m2ts()
1029 for (ii = 0; ii < ct->Tables[table].numSegments; ii++) { in segment_set_m2ts()
1030 segments += ct->Tables[table].Segments[ii].numEntries; in segment_set_m2ts()
1038 if (ct->Tables[table].Segments[0].encrypted) { in segment_set_m2ts()
1048 st->table = ct; in segment_set_m2ts()
1055 int32_t segment_patchseek(bdplus_st_t *ct, uint64_t offset) in segment_patchseek() argument
1060 ct->stream_segment = 0; in segment_patchseek()
1061 ct->stream_entry = 0; in segment_patchseek()
1063 ct->stream_offset = offset; in segment_patchseek()
1064 ct->next_patch_offset = 0; in segment_patchseek()
1076 int32_t segment_patch(bdplus_st_t *ct, int len, uint8_t *buffer) in segment_patch() argument
1078 uint64_t end_offset, start_offset, offset0, offset1, diff; in segment_patch() local
1087 len, ct->stream_offset); in segment_patch()
1094 start_offset = ct->stream_offset; in segment_patch()
1095 end_offset = ct->stream_offset + (uint64_t) len; in segment_patch()
1096 ct->stream_offset += (uint64_t) len; in segment_patch()
1098 if (ct->next_patch_offset > end_offset) { in segment_patch()
1102 subtable = &ct->table->Tables[ ct->stream_table ]; in segment_patch()
1104 for (currseg = ct->stream_segment; in segment_patch()
1106 currseg++, ct->stream_segment++ ) { in segment_patch()
1110 for (currentry = ct->stream_entry; in segment_patch()
1112 currentry++, ct->stream_entry++ ) { in segment_patch()
1127 ct->next_patch_offset = offset0; in segment_patch()
1155 diff = (start_offset - offset0); in segment_patch()
1156 if (diff < (uint64_t) sizeof(entry->patch0)) { in segment_patch()
1157 memcpy(buffer, &entry->patch0[ diff ], in segment_patch()
1158 sizeof(entry->patch0) - (size_t)diff); in segment_patch()
1164 diff = (end_offset - offset0); in segment_patch()
1166 if (diff < (uint64_t) sizeof(entry->patch0)) { in segment_patch()
1168 memcpy(&buffer[ len - diff ], entry->patch0, (size_t)diff); in segment_patch()
1172 memcpy(&buffer[ len - diff ], entry->patch0, in segment_patch()
1187 diff = (start_offset - offset1); in segment_patch()
1188 if (diff < (uint64_t) sizeof(entry->patch1)) { in segment_patch()
1189 memcpy(buffer, &entry->patch1[ diff ], in segment_patch()
1190 sizeof(entry->patch1) - (size_t)diff); in segment_patch()
1196 diff = (end_offset - offset1); in segment_patch()
1198 if (diff < (uint64_t) sizeof(entry->patch1)) { in segment_patch()
1200 memcpy(&buffer[ len - diff ], entry->patch1, (size_t)diff); in segment_patch()
1204 memcpy(&buffer[ len - diff ], entry->patch1, in segment_patch()
1213 ct->stream_entry = 0; in segment_patch()