func:  nestegg_get_cue_point(nestegg * ctx, unsigned int cluster_num, int64_t int64_t * start_pos, int64_t * end_pos, uint64_t * tstamp) struct ebml_list_node * cues_node = ctx -> segment . cues . cue_point . head ; if ( ! start_pos || ! end_pos || ! tstamp )  if ( ! cues_node )  ne_init_cue_points ( ctx , max_offset ); static ne_init_cue_points(nestegg * ctx, int64_t max_offset) struct ebml_list_node * node = ctx -> segment . cues . cue_point . head ; struct seek * found ; uint64_t seek_pos , id ; if ( ! node )  found = ne_find_seek_for_id ( ctx -> segment . seek_head . head , ID_CUES ); static struct seek ne_find_seek_for_id(struct ebml_list_node * seek_head, uint64_t id) struct ebml_list * head ; struct ebml_list_node * seek ; struct ebml_binary binary_id ; struct seek * s ; while ( seek_head )  head = seek_head -> data; seek = head -> head; while ( seek )  s = seek -> data; if ( ne_get_binary ( s -> id , & binary_id ) == 0 && ne_buf_read_id ( binary_id . data , binary_id . length ) == id )  static ne_buf_read_id(unsigned char const * p, size_t length) uint64_t id = 0 ; while ( length -- )  id <<= 8; id |= * p ++; return id ; static ne_get_binary(struct ebml_type type, struct ebml_binary * value) if ( ! type . read )  return - 1 ; return 0 ; return s ; seek = seek -> next; seek_head = seek_head -> next; return NULL ; if ( ! found )  if ( ne_get_uint ( found -> position , & seek_pos ) != 0 )  static ne_get_uint(struct ebml_type type, uint64_t * value) if ( ! type . read )  assert ( type . type == TYPE_UINT ); 