]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/gst-plugin-ducati.git/blobdiff - src/gstducati.c
rvdec: add RealVideo support
[glsdk/gst-plugin-ducati.git] / src / gstducati.c
index 5cb800b5c9c3ef98cad4e1af95ceef7c6a84fc51..75cef71cca86a6807c19d403f67519c368d87d3a 100644 (file)
 
 #include <gst/gst.h>
 
+#include "gstducati.h"
 #include "gstducatih264dec.h"
 #include "gstducatimpeg4dec.h"
+#include "gstducatimpeg2dec.h"
 #include "gstducativc1dec.h"
 #include "gstducativp6dec.h"
+#include "gstducativp7dec.h"
+#include "gstducatirvdec.h"
 
 GST_DEBUG_CATEGORY (gst_ducati_debug);
 
@@ -40,8 +44,11 @@ plugin_init (GstPlugin * plugin)
    */
   return gst_element_register (plugin, "ducatih264dec", GST_RANK_PRIMARY, GST_TYPE_DUCATIH264DEC) &&
       gst_element_register (plugin, "ducatimpeg4dec", GST_RANK_PRIMARY, GST_TYPE_DUCATIMPEG4DEC) &&
+      gst_element_register (plugin, "ducatimpeg2dec", GST_RANK_PRIMARY, GST_TYPE_DUCATIMPEG2DEC) &&
       gst_element_register (plugin, "ducativc1dec", GST_RANK_PRIMARY, GST_TYPE_DUCATIVC1DEC) &&
-      gst_element_register (plugin, "ducativp6dec", GST_RANK_PRIMARY, GST_TYPE_DUCATIVP6DEC);
+      gst_element_register (plugin, "ducativp6dec", GST_RANK_PRIMARY, GST_TYPE_DUCATIVP6DEC) &&
+      gst_element_register (plugin, "ducativp7dec", GST_RANK_PRIMARY, GST_TYPE_DUCATIVP7DEC) &&
+      gst_element_register (plugin, "ducatirvdec", GST_RANK_PRIMARY, GST_TYPE_DUCATIRVDEC);
 }
 
 void *
@@ -55,22 +62,27 @@ gst_ducati_alloc_1d (gint sz)
 }
 
 void *
-gst_ducati_alloc_2d (gint width, gint height)
+gst_ducati_alloc_2d (gint width, gint height, guint * sz)
 {
   MemAllocBlock block[] = { {
           .pixelFormat = PIXEL_FMT_8BIT,
           .dim = {.area = {
                       .width = width,
-                      .height = height,
-                  }}
+                      .height = ALIGN2 (height, 1),
+                  }},
+          .stride = 4096
       }, {
         .pixelFormat = PIXEL_FMT_16BIT,
         .dim = {.area = {
                     .width = width,
-                    .height = height / 2,
-                }}
+                    .height = ALIGN2 (height, 1) / 2,
+                }},
+        .stride = 4096
       }
   };
+  if (sz) {
+    *sz = (4096 * ALIGN2 (height, 1) * 3) / 2;
+  }
   return MemMgr_Alloc (block, 2);
 }