diff --git a/src/gstducatividdec.h b/src/gstducatividdec.h
index 5998b0e2e5f2d32a1543e9002d6e90af8a0013c8..ad877f3c3c61727b6b359d3c6f0acb58111612ca 100644 (file)
--- a/src/gstducatividdec.h
+++ b/src/gstducatividdec.h
#include <stdint.h>
#include <stddef.h>
+#include <unistd.h>
#include <omap_drm.h>
#include <omap_drmif.h>
#include <gst/drm/gstdrmbufferpool.h>
#include <gst/video/video.h>
-#include <gst/video/video-crop.h>
+#include <gst/video/gstvideometa.h>
G_BEGIN_DECLS
typedef struct _GstDucatiVidDec GstDucatiVidDec;
typedef struct _GstDucatiVidDecClass GstDucatiVidDecClass;
+/* For re-ordering in normal playback */
#define MAX_BACKLOG_FRAMES 16
+/* For re-ordering in reverse playback */
+#define MAX_BACKLOG_ARRAY_SIZE 120
struct _GstDucatiVidDec
{
/* number of bytes pushed to input on current frame: */
gint in_size;
- /* the crop to attach to output buffers: */
- GstVideoCrop *crop;
-
/* on first output buffer, we need to send crop info to sink.. and some
* operations like flushing should be avoided if we haven't sent any
* input buffers:
*/
gboolean first_out_buffer, first_in_buffer;
- gboolean send_crop_event;
GstSegment segment;
gdouble qos_proportion;
gboolean need_out_buf;
+ /* For storing the external pool query history */
+ gboolean queried_external_pool;
+ GstBufferPool *externalpool;
+
/* by default, codec_data from sinkpad is prepended to first buffer: */
GstBuffer *codec_data;
+ guint8 *codecdata;
+ gsize codecdatasize;
+
/* workaround enabled to indicate that timestamp from demuxer is PTS,
* not DTS (cough, cough.. avi):
*/
GHashTable *passed_in_bufs;
+ GHashTable *dce_locked_bufs;
+
#define NDTS 32
GstClockTime dts_queue[NDTS];
gint dts_ridx, dts_widx;
struct omap_device *device;
/* Frames waiting to be reordered */
- GstBuffer *backlog_frames[MAX_BACKLOG_FRAMES + 1];
+ GstBuffer *backlog_frames[MAX_BACKLOG_ARRAY_SIZE + 1];
gint backlog_maxframes;
gint backlog_nframes;
gint backlog_max_maxframes;
gboolean codec_debug_info;
+
+ const char *error_strings[32];
};
struct _GstDucatiVidDecClass