diff options
Diffstat (limited to 'apps/plugins/mpegplayer/stream_mgr.c')
-rw-r--r-- | apps/plugins/mpegplayer/stream_mgr.c | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/apps/plugins/mpegplayer/stream_mgr.c b/apps/plugins/mpegplayer/stream_mgr.c index 1baa2032ec..8d2e42f62b 100644 --- a/apps/plugins/mpegplayer/stream_mgr.c +++ b/apps/plugins/mpegplayer/stream_mgr.c | |||
@@ -319,6 +319,9 @@ static uint32_t stream_seek_intl(uint32_t time, int whence, int status) | |||
319 | /* Set the master clock */ | 319 | /* Set the master clock */ |
320 | set_stream_clock(time); | 320 | set_stream_clock(time); |
321 | 321 | ||
322 | /* Make sure streams are back in active pool */ | ||
323 | move_strl_to_actl(); | ||
324 | |||
322 | /* Prepare the parser and associated streams */ | 325 | /* Prepare the parser and associated streams */ |
323 | parser_prepare_streaming(); | 326 | parser_prepare_streaming(); |
324 | 327 | ||
@@ -489,6 +492,9 @@ static void stream_on_resume(void) | |||
489 | /* Set the master clock */ | 492 | /* Set the master clock */ |
490 | set_stream_clock(str_parser.last_seek_time); | 493 | set_stream_clock(str_parser.last_seek_time); |
491 | 494 | ||
495 | /* Make sure streams are back in active pool */ | ||
496 | move_strl_to_actl(); | ||
497 | |||
492 | /* Prepare the parser and associated streams */ | 498 | /* Prepare the parser and associated streams */ |
493 | parser_prepare_streaming(); | 499 | parser_prepare_streaming(); |
494 | } | 500 | } |
@@ -582,29 +588,29 @@ static void stream_on_seek(struct stream_seek_data *skd) | |||
582 | 588 | ||
583 | stream_mgr_lock(); | 589 | stream_mgr_lock(); |
584 | 590 | ||
585 | if (!stream_can_seek()) | 591 | if (stream_can_seek()) |
586 | { | ||
587 | } | ||
588 | else if (stream_mgr.status != STREAM_STOPPED) | ||
589 | { | 592 | { |
590 | if (stream_mgr.status != STREAM_PLAYING) | 593 | if (stream_mgr.status != STREAM_STOPPED) |
591 | { | 594 | { |
592 | trigger_cpu_boost(); | 595 | if (stream_mgr.status != STREAM_PLAYING) |
593 | } | 596 | { |
597 | trigger_cpu_boost(); | ||
598 | } | ||
594 | 599 | ||
595 | stream_seek_intl(time, whence, stream_mgr.status); | 600 | stream_seek_intl(time, whence, stream_mgr.status); |
596 | 601 | ||
597 | if (stream_mgr.status != STREAM_PLAYING) | 602 | if (stream_mgr.status != STREAM_PLAYING) |
603 | { | ||
604 | cancel_cpu_boost(); | ||
605 | } | ||
606 | } | ||
607 | else | ||
598 | { | 608 | { |
599 | cancel_cpu_boost(); | 609 | stream_mgr.seeked = true; |
610 | time = time_from_whence(time, whence); | ||
611 | parser_seek_time(time); | ||
600 | } | 612 | } |
601 | } | 613 | } |
602 | else | ||
603 | { | ||
604 | stream_mgr.seeked = true; | ||
605 | time = time_from_whence(time, whence); | ||
606 | parser_seek_time(time); | ||
607 | } | ||
608 | 614 | ||
609 | stream_mgr_unlock(); | 615 | stream_mgr_unlock(); |
610 | return; | 616 | return; |