Return the current reader position: */
| 1005 | |
| 1006 | /* Return the current reader position: */ |
| 1007 | CV_IMPL int |
| 1008 | cvGetSeqReaderPos( CvSeqReader* reader ) |
| 1009 | { |
| 1010 | int elem_size; |
| 1011 | int index = -1; |
| 1012 | |
| 1013 | if( !reader || !reader->ptr ) |
| 1014 | CV_Error( CV_StsNullPtr, "" ); |
| 1015 | |
| 1016 | elem_size = reader->seq->elem_size; |
| 1017 | if( elem_size <= ICV_SHIFT_TAB_MAX && (index = icvPower2ShiftTab[elem_size - 1]) >= 0 ) |
| 1018 | index = (int)((reader->ptr - reader->block_min) >> index); |
| 1019 | else |
| 1020 | index = (int)((reader->ptr - reader->block_min) / elem_size); |
| 1021 | |
| 1022 | index += reader->block->start_index - reader->delta_index; |
| 1023 | |
| 1024 | return index; |
| 1025 | } |
| 1026 | |
| 1027 | |
| 1028 | /* Set reader position to given position, |
no outgoing calls
no test coverage detected