diff --git a/src/gstducatividdec.h b/src/gstducatividdec.h
index 1aac4aaf0323f0b1e9fffd5fc6b7a58dfa470e7d..19a9b335249d680e7d86d8170a9d100f8705c1b7 100644 (file)
--- a/src/gstducatividdec.h
+++ b/src/gstducatividdec.h
typedef struct _GstDucatiVidDec GstDucatiVidDec;
typedef struct _GstDucatiVidDecClass GstDucatiVidDecClass;
+#define MAX_BACKLOG_FRAMES 16
+
struct _GstDucatiVidDec
{
GstElement parent;
gboolean needs_flushing;
+ GHashTable *passed_in_bufs;
+
#define NDTS 32
GstClockTime dts_queue[NDTS];
gint dts_ridx, dts_widx;
XDAS_Int16 pageMemType;
struct omap_device *device;
+
+ /* Frames waiting to be reordered */
+ GstBuffer *backlog_frames[MAX_BACKLOG_FRAMES + 1];
+ gint backlog_maxframes;
+ gint backlog_nframes;
+ gint backlog_max_maxframes;
};
struct _GstDucatiVidDecClass
gboolean (*query) (GstDucatiVidDec * self, GstPad * pad, GstQuery * query,
gboolean * forward);
+
+ /**
+ * Called to push a decoder buffer. Consumes reference to 'buf'.
+ */
+ GstFlowReturn (*push_output) (GstDucatiVidDec * self, GstBuffer * buf);
+
+ /**
+ * Called before a flush happens.
+ */
+ void (*on_flush) (GstDucatiVidDec * self, gboolean eos);
+
+ /**
+ * Called to set new caps on the sink pad.
+ */
+ gboolean (*set_sink_caps) (GstDucatiVidDec * self, GstCaps *caps);
};
GType gst_ducati_viddec_get_type (void);