Changeset View
Changeset View
Standalone View
Standalone View
source/blender/imbuf/intern/indexer.c
| Show First 20 Lines • Show All 241 Lines • ▼ Show 20 Lines | struct anim_index *IMB_indexer_open(const char *name) | ||||
| fclose(fp); | fclose(fp); | ||||
| return idx; | return idx; | ||||
| } | } | ||||
| uint64_t IMB_indexer_get_seek_pos(struct anim_index *idx, int frame_index) | uint64_t IMB_indexer_get_seek_pos(struct anim_index *idx, int frame_index) | ||||
| { | { | ||||
| if (frame_index < 0) { | /* This is hard coded, because our current timecode files return non zero seek position for index | ||||
| frame_index = 0; | * 0. Only when seeking to 0 it is guaranteed, that first packet will be read. */ | ||||
| if (frame_index <= 0) { | |||||
| return 0; | |||||
| } | } | ||||
| if (frame_index >= idx->num_entries) { | if (frame_index >= idx->num_entries) { | ||||
| frame_index = idx->num_entries - 1; | frame_index = idx->num_entries - 1; | ||||
| } | } | ||||
| return idx->entries[frame_index].seek_pos; | return idx->entries[frame_index].seek_pos; | ||||
| } | } | ||||
| uint64_t IMB_indexer_get_seek_pos_pts(struct anim_index *idx, int frame_index) | uint64_t IMB_indexer_get_seek_pos_pts(struct anim_index *idx, int frame_index) | ||||
| ▲ Show 20 Lines • Show All 1,365 Lines • Show Last 20 Lines | |||||