summaryrefslogtreecommitdiff
path: root/src/libvdpau/dpb.h
diff options
context:
space:
mode:
authorJulian Scheel <julian@jusst.de>2008-12-07 21:40:50 +0000
committerJulian Scheel <julian@jusst.de>2008-12-07 21:40:50 +0000
commit6b73508d4e9a12689c8f0749c30f683ce777fef8 (patch)
tree02e7710c9f06866025383ec17dba8f55b168b2bf /src/libvdpau/dpb.h
parent58967e9def83953542cfa57b14d5ddd8fe742031 (diff)
downloadxine-lib-6b73508d4e9a12689c8f0749c30f683ce777fef8.tar.gz
xine-lib-6b73508d4e9a12689c8f0749c30f683ce777fef8.tar.bz2
DPB starts growing. Restructuring of parser.
--HG-- rename : src/libvdpau/nal_parser.c => src/libvdpau/h264_parser.c rename : src/libvdpau/nal_parser.h => src/libvdpau/h264_parser.h
Diffstat (limited to 'src/libvdpau/dpb.h')
-rw-r--r--src/libvdpau/dpb.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/libvdpau/dpb.h b/src/libvdpau/dpb.h
new file mode 100644
index 000000000..8aa430c26
--- /dev/null
+++ b/src/libvdpau/dpb.h
@@ -0,0 +1,41 @@
+/*
+ * dpb.h
+ *
+ * Created on: 06.12.2008
+ * Author: julian
+ */
+
+#ifndef DPB_H_
+#define DPB_H_
+
+#include "nal.h"
+
+struct decoded_picture {
+ VdpVideoSurface surface;
+ struct nal_unit *nal;
+
+ struct decoded_picture *next;
+};
+
+/* Decoded Picture Buffer */
+struct dpb {
+ struct decoded_picture *pictures;
+};
+
+struct decoded_picture* init_decoded_picture(struct nal_unit *src_nal,
+ VdpVideoSurface surface);
+void free_decoded_picture(struct decoded_picture *pic);
+
+struct decoded_picture* dpb_get_picture(struct dpb *dpb, uint32_t picnum);
+struct decoded_picture* dpb_get_picture_by_ltpn(struct dpb *dpb, uint32_t longterm_picnum);
+struct decoded_picture* dpb_get_picture_by_ltidx(struct dpb *dpb, uint32_t longterm_idx);
+int dpb_remove_picture(struct dpb *dpb, uint32_t picnum);
+int dpb_remove_picture_by_ltpn(struct dpb *dpb, uint32_t longterm_picnum);
+int dpb_remove_picture_by_ltidx(struct dpb *dpb, uint32_t longterm_idx);
+int dpb_remove_ltidx_gt(struct dpb *dpb, uint32_t longterm_max);
+int dpb_add_picture(struct dpb *dpb, struct decoded_picture *pic);
+int dpb_flush(struct dpb *dpb);
+
+void fill_vdpau_reference_list(struct dpb *dpb, VdpReferenceFrameH264 *reflist);
+
+#endif /* DPB_H_ */