summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJulian Scheel <julian@jusst.de>2010-06-12 12:10:03 +0200
committerJulian Scheel <julian@jusst.de>2010-06-12 12:10:03 +0200
commite0d0746dc34aa549315c7ec45ecd83997aa7e56e (patch)
tree773e9cbe4e440cbb55701732098a397dda79183d /src
parent98dc2ef9eaff3c53feeddeadd4521bcf285c7095 (diff)
downloadxine-lib-e0d0746dc34aa549315c7ec45ecd83997aa7e56e.tar.gz
xine-lib-e0d0746dc34aa549315c7ec45ecd83997aa7e56e.tar.bz2
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
Diffstat (limited to 'src')
-rw-r--r--src/video_dec/libvdpau/dpb.c5
1 files changed, 3 insertions, 2 deletions
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)