summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libvdpau/dpb.c2
-rw-r--r--src/libvdpau/nal.h4
2 files changed, 4 insertions, 2 deletions
diff --git a/src/libvdpau/dpb.c b/src/libvdpau/dpb.c
index 4236909db..f83a5d2da 100644
--- a/src/libvdpau/dpb.c
+++ b/src/libvdpau/dpb.c
@@ -65,6 +65,8 @@ struct decoded_picture* dpb_get_next_out_picture(struct dpb *dpb)
(outpic == NULL ||
(pic->nal->top_field_order_cnt <= outpic->nal->top_field_order_cnt &&
pic->nal->bottom_field_order_cnt <= outpic->nal->bottom_field_order_cnt)||
+ (outpic->nal->top_field_order_cnt < 0 && pic->nal->top_field_order_cnt > 0 &&
+ outpic->nal->bottom_field_order_cnt < 0 && pic->nal->bottom_field_order_cnt > 0)||
outpic->nal->nal_unit_type == NAL_SLICE_IDR))
outpic = pic;
} while ((pic = pic->next) != NULL);
diff --git a/src/libvdpau/nal.h b/src/libvdpau/nal.h
index 2fbbeff97..ee5a4bb05 100644
--- a/src/libvdpau/nal.h
+++ b/src/libvdpau/nal.h
@@ -418,8 +418,8 @@ struct nal_unit
uint32_t long_term_pic_num;
uint32_t long_term_frame_idx;
- uint32_t top_field_order_cnt;
- uint32_t bottom_field_order_cnt;
+ int32_t top_field_order_cnt;
+ int32_t bottom_field_order_cnt;
uint8_t interlaced;
uint8_t repeat_pic;