From e0d0746dc34aa549315c7ec45ecd83997aa7e56e Mon Sep 17 00:00:00 2001 From: Julian Scheel Date: Sat, 12 Jun 2010 12:10:03 +0200 Subject: fix decoded_picture leak wrong list was referenced in dpb_free_all, when clearing the reference picture list. this caused reference pictures not to be freed when stopping --- src/video_dec/libvdpau/dpb.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/video_dec/libvdpau/dpb.c b/src/video_dec/libvdpau/dpb.c index bffc582ac..eb1de90a9 100644 --- a/src/video_dec/libvdpau/dpb.c +++ b/src/video_dec/libvdpau/dpb.c @@ -533,11 +533,12 @@ void dpb_free_all(struct dpb *dpb) ite = xine_list_front(dpb->reference_list); while(ite) { - dpb_unmark_picture_delayed(dpb, xine_list_get_value(dpb->reference_list, ite)); + dpb_unmark_reference_picture(dpb, xine_list_get_value(dpb->reference_list, ite)); /* CAUTION: xine_list_next would return an item, but not the one we * expect, as the current one was deleted */ - ite = xine_list_front(dpb->output_list); } + ite = xine_list_front(dpb->reference_list); + } } void dpb_clear_all_pts(struct dpb *dpb) -- cgit v1.2.3