vc1dec: add VC-1 Advanced, Main, and Simple profile support
[glsdk/gst-plugin-ducati.git] / src / gstducatividdec.h
index 622383b133e4e3d4d0b3877b29d24d92a14cd128..9be1d917560c1ebdf5f05b6228be08881a2dcd25 100644 (file)
@@ -94,12 +94,22 @@ struct _GstDucatiVidDecClass
 
   const gchar *codec_name;
 
+  /**
+   * Parse codec specific fields the given caps structure.  The base-
+   * class implementation of this method handles standard stuff like
+   * width/height/framerate/codec_data.
+   */
+  gboolean (*parse_caps) (GstDucatiVidDec * self, GstStructure * s);
+
   /**
    * Called when the input buffer size changes, to recalculate codec required
    * output buffer size and minimum count
    */
   void (*update_buffer_size) (GstDucatiVidDec * self);
 
+  /**
+   * Called to allocate/initialize  params/dynParams/status/inArgs/outArgs
+   */
   gboolean (*allocate_params) (GstDucatiVidDec * self, gint params_sz,
       gint dynparams_sz, gint status_sz, gint inargs_sz, gint outargs_sz);
 
@@ -112,6 +122,16 @@ struct _GstDucatiVidDecClass
 
 GType gst_ducati_viddec_get_type (void);
 
+/* helper methods for derived classes: */
+
+static inline void
+push_input (GstDucatiVidDec * self, guint8 *in, gint sz)
+{
+  GST_DEBUG_OBJECT (self, "push: %d bytes)", sz);
+  memcpy (self->input + self->in_size, in, sz);
+  self->in_size += sz;
+}
+
 G_END_DECLS
 
 #endif /* __GST_DUCATIVIDDEC_H__ */