diff options
author | Julian Scheel <julian@jusst.de> | 2010-06-12 12:10:03 +0200 |
---|---|---|
committer | Julian Scheel <julian@jusst.de> | 2010-06-12 12:10:03 +0200 |
commit | e0d0746dc34aa549315c7ec45ecd83997aa7e56e (patch) | |
tree | 773e9cbe4e440cbb55701732098a397dda79183d /src | |
parent | 98dc2ef9eaff3c53feeddeadd4521bcf285c7095 (diff) | |
download | xine-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.c | 5 |
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) |