summaryrefslogtreecommitdiff
path: root/src/libvdpau/dpb.c
diff options
context:
space:
mode:
authorChristophe Thommeret <hftom@free.fr>2008-12-21 18:26:02 +0000
committerChristophe Thommeret <hftom@free.fr>2008-12-21 18:26:02 +0000
commit7971f828de6729928e47aebba1891a6adb34a786 (patch)
tree513175c18b2e504c530dc84dbfe12dd3df28abf1 /src/libvdpau/dpb.c
parent2678d7535d0f261d016a0fd0119822b25b571c9d (diff)
downloadxine-lib-7971f828de6729928e47aebba1891a6adb34a786.tar.gz
xine-lib-7971f828de6729928e47aebba1891a6adb34a786.tar.bz2
vdpau_h264: release frames at dispose.
Diffstat (limited to 'src/libvdpau/dpb.c')
-rw-r--r--src/libvdpau/dpb.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libvdpau/dpb.c b/src/libvdpau/dpb.c
index 12167d393..e397449f9 100644
--- a/src/libvdpau/dpb.c
+++ b/src/libvdpau/dpb.c
@@ -303,6 +303,21 @@ int dpb_flush(struct dpb *dpb)
return 0;
}
+void dpb_free_all( struct dpb *dpb )
+{
+ struct decoded_picture *pic = dpb->pictures;
+
+ if (pic != NULL)
+ do {
+ struct decoded_picture *next_pic = pic->next;
+ free_decoded_picture(pic);
+ --dpb->used;
+ pic = next_pic;
+ } while (pic != NULL);
+
+ printf("dpb_free_all, used: %d\n", dpb->used);
+}
+
void fill_vdpau_reference_list(struct dpb *dpb, VdpReferenceFrameH264 *reflist)
{
struct decoded_picture *pic = dpb->pictures;