summaryrefslogtreecommitdiff
path: root/apps/plugins/mpegplayer/video_thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/mpegplayer/video_thread.c')
-rw-r--r--apps/plugins/mpegplayer/video_thread.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/apps/plugins/mpegplayer/video_thread.c b/apps/plugins/mpegplayer/video_thread.c
index 4ccdc8b844..69d94f8ba0 100644
--- a/apps/plugins/mpegplayer/video_thread.c
+++ b/apps/plugins/mpegplayer/video_thread.c
@@ -124,7 +124,8 @@ static int video_str_scan(struct video_thread_data *td,
124 tmp_str.hdr.pos = sd->sk.pos; 124 tmp_str.hdr.pos = sd->sk.pos;
125 tmp_str.hdr.limit = sd->sk.pos + sd->sk.len; 125 tmp_str.hdr.limit = sd->sk.pos + sd->sk.len;
126 126
127 mpeg2_reset(td->mpeg2dec, false); 127 /* Fully reset if obtaining size for a new stream */
128 mpeg2_reset(td->mpeg2dec, td->ev.id == VIDEO_GET_SIZE);
128 mpeg2_skip(td->mpeg2dec, 1); 129 mpeg2_skip(td->mpeg2dec, 1);
129 130
130 while (1) 131 while (1)
@@ -503,12 +504,6 @@ static void video_thread_msg(struct video_thread_data *td)
503 reply = true; 504 reply = true;
504 break; 505 break;
505 506
506 case STREAM_CLOSE:
507 vo_cleanup();
508 mpeg2_close(td->mpeg2dec);
509 reply = true;
510 break;
511
512 case VIDEO_DISPLAY_IS_VISIBLE: 507 case VIDEO_DISPLAY_IS_VISIBLE:
513 reply = vo_is_visible(); 508 reply = vo_is_visible();
514 break; 509 break;
@@ -605,8 +600,9 @@ static void video_thread_msg(struct video_thread_data *td)
605 case VIDEO_GET_SIZE: 600 case VIDEO_GET_SIZE:
606 { 601 {
607 if (td->state != TSTATE_INIT) 602 if (td->state != TSTATE_INIT)
608 break; 603 break; /* Can only use after a reset was issued */
609 604
605 /* This will reset the decoder in full for this particular event */
610 if (init_sequence(td)) 606 if (init_sequence(td))
611 { 607 {
612 reply = true; 608 reply = true;