diff options
author | Christophe Thommeret <hftom@free.fr> | 2008-12-21 18:26:02 +0000 |
---|---|---|
committer | Christophe Thommeret <hftom@free.fr> | 2008-12-21 18:26:02 +0000 |
commit | 7971f828de6729928e47aebba1891a6adb34a786 (patch) | |
tree | 513175c18b2e504c530dc84dbfe12dd3df28abf1 /src/libvdpau/dpb.c | |
parent | 2678d7535d0f261d016a0fd0119822b25b571c9d (diff) | |
download | xine-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.c | 15 |
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; |