cabana: video loops; prevent segment index overflow

main
Andy Haden 2017-06-14 19:07:02 -07:00
parent c53d36ac36
commit 3809ac0f00
5 changed files with 9 additions and 11 deletions

View File

@ -53,7 +53,7 @@ export default class CanExplorer extends Component {
if(this.props.dbc !== undefined) {
this.setState({dbc: this.props.dbc, dbcFilename: 'acura_ilx_2016.dbc', route}, () => {
this.spawnWorker(0, 4)
this.spawnWorker(0, 2)
});
}
this.setState({route})
@ -67,7 +67,7 @@ export default class CanExplorer extends Component {
const {route} = this.state;
// Pass DBC text to webworker b/c can't pass instance of es6 class
this.spawnWorker(0, 4);
this.spawnWorker(0, 2);
});
}

View File

@ -31,6 +31,7 @@ export default class CanHistogram extends Component {
if(nextProps.message) {
// if this is the first message or a new one
if(this.props.message == null
|| nextProps.message.entries.length != this.props.message.entries.length
|| nextProps.partsLoaded != this.props.partsLoaded
|| JSON.stringify(nextProps.indices) !== JSON.stringify(this.props.indices)) {

View File

@ -110,13 +110,11 @@ export default class RouteSeeker extends Component {
if(videoElement === null) return;
const {currentTime} = videoElement;
const newRatio = this.props.segmentProgress(currentTime);
let newRatio = this.props.segmentProgress(currentTime);
if(newRatio >= 1) {
window.clearInterval(this.playTimer);
this.setState({ratio: 1})
this.onPause();
return;
newRatio = 0;
this.props.onUserSeek(newRatio);
}
this.updateSeekedBar(newRatio);
this.props.onPlaySeek(newRatio);

View File

@ -141,7 +141,6 @@ export default class Explorer extends Component {
this.setState({userSeekIndex});
}
onPlay() {
this.setState({playing: true});
}

View File

@ -15,9 +15,9 @@ function findSegmentIndices(entries, [segmentTimeLow, segmentTimeHi]) {
const upperSegments = entries.slice(segmentIdxLow);
let upperSegmentIdxHi = findTimeIndex(upperSegments, segmentTimeHi);
const segmentIdxHi = (upperSegmentIdxHi ? upperSegmentIdxHi + segmentIdxLow + 1 : entries.length)
const segmentIdxHi = (upperSegmentIdxHi >= 0 ? upperSegmentIdxHi + segmentIdxLow + 1 : entries.length - 1)
return [segmentIdxLow, segmentIdxHi]
return [segmentIdxLow, Math.min(segmentIdxHi, entries.length - 1)]
}
export default {findTimeIndex, findSegmentIndices};
export default {findTimeIndex, findSegmentIndices};