@@ -252,7 +252,7 @@ var SubtitlesOctopus = function (options) {
252
252
self . setSubUrl = function ( subUrl ) {
253
253
self . subUrl = subUrl ;
254
254
} ;
255
-
255
+
256
256
function _cleanPastRendered ( currentTime , seekClean ) {
257
257
var retainedItems = [ ] ;
258
258
for ( var i = 0 , len = self . renderedItems . length ; i < len ; i ++ ) {
@@ -364,7 +364,7 @@ var SubtitlesOctopus = function (options) {
364
364
var finishTime = - 1 , eventShown = false , animated = false ;
365
365
for ( var i = 0 , len = self . renderedItems . length ; i < len ; i ++ ) {
366
366
var item = self . renderedItems [ i ] ;
367
- if ( ! eventShown && item . eventStart <= currentTime && ( item . emptyFinish < 0 || item . emptyFinish >= currentTime ) ) {
367
+ if ( ! eventShown && item . eventStart <= currentTime && ( item . emptyFinish < 0 || item . emptyFinish > currentTime ) ) {
368
368
_renderSubtitleEvent ( item , currentTime ) ;
369
369
eventShown = true ;
370
370
finishTime = item . emptyFinish ;
@@ -569,10 +569,13 @@ var SubtitlesOctopus = function (options) {
569
569
} ) ;
570
570
size += item . buffer . byteLength ;
571
571
}
572
+
573
+ var eventSplitted = false ;
572
574
if ( ( data . emptyFinish > 0 && data . emptyFinish - data . eventStart < 1.0 / self . targetFps ) || data . animated ) {
573
575
var newFinish = data . eventStart + 1.0 / self . targetFps ;
574
576
data . emptyFinish = newFinish ;
575
577
data . eventFinish = newFinish ;
578
+ eventSplitted = true ;
576
579
}
577
580
self . renderedItems . push ( {
578
581
eventStart : data . eventStart ,
@@ -584,7 +587,7 @@ var SubtitlesOctopus = function (options) {
584
587
animated : data . animated ,
585
588
size : size
586
589
} ) ;
587
-
590
+
588
591
self . renderedItems . sort ( function ( a , b ) {
589
592
return a . eventStart - b . eventStart ;
590
593
} ) ;
@@ -596,7 +599,7 @@ var SubtitlesOctopus = function (options) {
596
599
console . info ( 'oneshot received "end of frames" event' ) ;
597
600
} else if ( data . emptyFinish >= 0 ) {
598
601
// there's some more event to render, try requesting next event
599
- tryRequestOneshot ( data . emptyFinish , data . animated ) ;
602
+ tryRequestOneshot ( data . emptyFinish , eventSplitted ) ;
600
603
} else {
601
604
console . info ( 'there are no more events to prerender' ) ;
602
605
}
0 commit comments