summaryrefslogtreecommitdiff
path: root/src/libvdpau/dpb.c
diff options
context:
space:
mode:
authorJulian Scheel <julian@jusst.de>2008-12-15 09:07:38 +0000
committerJulian Scheel <julian@jusst.de>2008-12-15 09:07:38 +0000
commitff60558d1695c5c7ffc68b234b92fcde1f781dab (patch)
tree43da21e035db3fd28861ed5581092afe50c92bac /src/libvdpau/dpb.c
parent4ad3c69c9557f7a4385c549556ef3f1bf08740b5 (diff)
downloadxine-lib-ff60558d1695c5c7ffc68b234b92fcde1f781dab.tar.gz
xine-lib-ff60558d1695c5c7ffc68b234b92fcde1f781dab.tar.bz2
More testing.
Diffstat (limited to 'src/libvdpau/dpb.c')
-rw-r--r--src/libvdpau/dpb.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libvdpau/dpb.c b/src/libvdpau/dpb.c
index bbcfe4a9d..5afc93fb6 100644
--- a/src/libvdpau/dpb.c
+++ b/src/libvdpau/dpb.c
@@ -40,14 +40,16 @@ void free_decoded_picture(struct decoded_picture *pic)
struct decoded_picture* dpb_get_next_out_picture(struct dpb *dpb)
{
struct decoded_picture *pic = dpb->pictures;
- struct decoded_picture *outpic = pic;
+ struct decoded_picture *outpic = NULL;
if(dpb->used < MAX_DPB_SIZE)
return NULL;
if (pic != NULL)
do {
- if (pic->nal->top_field_order_cnt < outpic->nal->top_field_order_cnt)
+ if (pic->delayed_output &&
+ (outpic == NULL ||
+ pic->nal->top_field_order_cnt < outpic->nal->top_field_order_cnt))
outpic = pic;
} while ((pic = pic->next) != NULL);