summaryrefslogtreecommitdiff
path: root/src/libmpeg2/decode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libmpeg2/decode.c')
-rw-r--r--src/libmpeg2/decode.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/libmpeg2/decode.c b/src/libmpeg2/decode.c
index 632440a5f..4dd7e60a2 100644
--- a/src/libmpeg2/decode.c
+++ b/src/libmpeg2/decode.c
@@ -371,6 +371,20 @@ void mpeg2_close (mpeg2dec_t * mpeg2dec)
}
*/
+ /* Ensure that the last decoded frame is drawn */
+ picture->current_frame->bFrameBad |= mpeg2dec->drop_frame;
+
+ if (picture->picture_coding_type == B_TYPE) {
+ if (picture->mpeg1)
+ picture->current_frame->PTS = 0;
+ mpeg2dec->frames_to_drop = picture->current_frame->draw (picture->current_frame);
+ picture->current_frame->free (picture->current_frame);
+ picture->current_frame = NULL;
+ picture->throwaway_frame = NULL;
+ } else {
+ mpeg2dec->frames_to_drop = picture->current_frame->draw (picture->current_frame);
+ }
+
if (picture->throwaway_frame)
{
picture->throwaway_frame->displayed (picture->throwaway_frame);