Re: [PATCH] crystalhd gst: Port to GStreamer 1.0 API
Hi,
On Mon, Apr 01, 2013 at 01:26:54PM +0200, Guido Günther wrote:
> Hi,
> On Mon, Mar 11, 2013 at 09:40:22AM +0100, Guido Günther wrote:
> > ---
> > Tested with totem as well as gst-launch. Any chance this can be applied
> > to http://git.linuxtv.org/jarod/crystalhd.git?
>
> Any chance this gets applied.
Ping? It would really be nice to have a gstreamer 1.0 version.
Cheers,
-- Guido
>
> > Cheers,
> > -- Guido
> >
> > filters/gst/gst-plugin/configure.ac|8 +-
> > filters/gst/gst-plugin/src/gstbcmdec.c | 431
> >
> > filters/gst/gst-plugin/src/gstbcmdec.h | 68 ++---
> > 3 files changed, 248 insertions(+), 259 deletions(-)
> >
> > diff --git a/filters/gst/gst-plugin/configure.ac
> > b/filters/gst/gst-plugin/configure.ac
> > index 99b3713..a3c6467 100644
> > --- a/filters/gst/gst-plugin/configure.ac
> > +++ b/filters/gst/gst-plugin/configure.ac
> > @@ -1,9 +1,9 @@
> > AC_INIT
> >
> > dnl versions of gstreamer and plugins-base
> > -GST_MAJORMINOR=0.10
> > -GST_REQUIRED=0.10.0
> > -GSTPB_REQUIRED=0.10.0
> > +GST_MAJORMINOR=1.0
> > +GST_REQUIRED=1.0
> > +GSTPB_REQUIRED=1.0
> >
> > dnl fill in your package name and version here
> > dnl the fourth (nano) number should be 0 for a release, 1 for CVS,
> > @@ -56,7 +56,7 @@ dnl And we can also ask for the right version of gstreamer
> >
> > PKG_CHECK_MODULES(GST, \
> >gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED
> > - gstreamer-video-0.10,
> > + gstreamer-video-1.0,
> >HAVE_GST=yes,HAVE_GST=no)
> >
> > dnl Give error and exit if we don't have gstreamer
> > diff --git a/filters/gst/gst-plugin/src/gstbcmdec.c
> > b/filters/gst/gst-plugin/src/gstbcmdec.c
> > index ed01c14..a51bd59 100644
> > --- a/filters/gst/gst-plugin/src/gstbcmdec.c
> > +++ b/filters/gst/gst-plugin/src/gstbcmdec.c
> > @@ -8,6 +8,7 @@
> > * AU
> > *
> > * HISTORY:
> > + * Updated for 1.0 by Guido Guenther
> > *
> > ***
> > *
> > @@ -40,6 +41,7 @@
> > #include
> > #include
> > #include
> > +#include
> >
> > #ifdef HAVE_CONFIG_H
> > #include
> > @@ -51,8 +53,8 @@
> > #include "parse.h"
> > #include "gstbcmdec.h"
> >
> > -GST_DEBUG_CATEGORY_STATIC (gst_bcmdec_debug);
> > -#define GST_CAT_DEFAULT gst_bcmdec_debug
> > +GST_DEBUG_CATEGORY_STATIC (gst_bcm_dec_debug);
> > +#define GST_CAT_DEFAULT gst_bcm_dec_debug
> >
> > //#define YV12__
> >
> > @@ -64,16 +66,18 @@ static GstFlowReturn
> > bcmdec_send_buff_detect_error(GstBcmDec *bcmdec, GstBuffer
> >guint8 flags)
> > {
> > BC_STATUS sts = BC_STS_SUCCESS;
> > + GstMapInfo info;
> >
> > GST_DEBUG_OBJECT(bcmdec, "Attempting to Send Buffer");
> >
> > sts = decif_send_buffer(&bcmdec->decif, pbuffer, size, tCurrent, flags);
> >
> > if (sts != BC_STS_SUCCESS) {
> > + gst_buffer_map(buf, &info, GST_MAP_READ);
> > GST_ERROR_OBJECT(bcmdec, "proc input failed sts = %d", sts);
> > GST_ERROR_OBJECT(bcmdec, "Chain: timeStamp = %llu size = %d
> > data = %p",
> > -GST_BUFFER_TIMESTAMP(buf),
> > GST_BUFFER_SIZE(buf),
> > -GST_BUFFER_DATA (buf));
> > +GST_BUFFER_DTS(buf), info.size, info.data);
> > + gst_buffer_unmap(buf, &info);
> > return GST_FLOW_ERROR;
> > }
> >
> > @@ -92,7 +96,7 @@ enum {
> > };
> >
> >
> > -GLB_INST_STS *g_inst_sts = NULL;
> > +static GLB_INST_STS *g_inst_sts = NULL;
> >
> > /*
> > * the capabilities of the inputs and outputs.
> > @@ -111,35 +115,29 @@ GstStaticPadTemplate sink_factory_bcm70012 =
> > GST_STATIC_PAD_TEMPLATE("sink", GST
> >
> > #ifdef YV12__
> > static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE("src",
> > GST_PAD_SRC, GST_PAD_ALWAYS,
> > - GST_STATIC_CAPS("video/x-raw-yuv, " "format = (fourcc) { YV12
> > }, " "width = (int) [ 1, MAX ], "
> > + GST_STATIC_CAPS("video/x-raw, " "format = (string) { YV12 }, "
> > "width = (int) [ 1, MAX ], "
> > "height = (int) [ 1, MAX ], " "framerate =
> > (fraction) [ 0/1, 2147483647/1 ]"));
> > #define BUF_MULT (12 / 8)
> > #define BUF_MODE MODE420
> > #else
> > static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE("src",
> > GST_PAD_SRC, GST_PAD_ALWAYS,
> > - GST_STATIC_CAPS("video/x-raw-yuv, " "format = (fourcc) { YUY2 }
> > , " "framerate = (fraction) [0,MAX], "
> > - "width = (int) [1,MAX], " "height = (int)
> > [1,MAX]; " "video/x-raw-yuv, "
> > - "format = (fourcc) { UYVY } , " "framerate =
> > (fraction) [0,MAX], " "width = (int) [1,MAX], "
> > + GST_STATIC_CAPS("video/x-raw, " "format = (string) { YUY2 } , "
> > "framerate = (fraction) [0,MAX], "
> > + "width = (int) [1,MAX], " "height = (int)
> > [1
Re: [PATCH] crystalhd gst: Port to GStreamer 1.0 API
Hi,
On Mon, Mar 11, 2013 at 09:40:22AM +0100, Guido Günther wrote:
> ---
> Tested with totem as well as gst-launch. Any chance this can be applied
> to http://git.linuxtv.org/jarod/crystalhd.git?
Any chance this gets applied.
> Cheers,
> -- Guido
>
> filters/gst/gst-plugin/configure.ac|8 +-
> filters/gst/gst-plugin/src/gstbcmdec.c | 431
>
> filters/gst/gst-plugin/src/gstbcmdec.h | 68 ++---
> 3 files changed, 248 insertions(+), 259 deletions(-)
>
> diff --git a/filters/gst/gst-plugin/configure.ac
> b/filters/gst/gst-plugin/configure.ac
> index 99b3713..a3c6467 100644
> --- a/filters/gst/gst-plugin/configure.ac
> +++ b/filters/gst/gst-plugin/configure.ac
> @@ -1,9 +1,9 @@
> AC_INIT
>
> dnl versions of gstreamer and plugins-base
> -GST_MAJORMINOR=0.10
> -GST_REQUIRED=0.10.0
> -GSTPB_REQUIRED=0.10.0
> +GST_MAJORMINOR=1.0
> +GST_REQUIRED=1.0
> +GSTPB_REQUIRED=1.0
>
> dnl fill in your package name and version here
> dnl the fourth (nano) number should be 0 for a release, 1 for CVS,
> @@ -56,7 +56,7 @@ dnl And we can also ask for the right version of gstreamer
>
> PKG_CHECK_MODULES(GST, \
>gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED
> - gstreamer-video-0.10,
> + gstreamer-video-1.0,
>HAVE_GST=yes,HAVE_GST=no)
>
> dnl Give error and exit if we don't have gstreamer
> diff --git a/filters/gst/gst-plugin/src/gstbcmdec.c
> b/filters/gst/gst-plugin/src/gstbcmdec.c
> index ed01c14..a51bd59 100644
> --- a/filters/gst/gst-plugin/src/gstbcmdec.c
> +++ b/filters/gst/gst-plugin/src/gstbcmdec.c
> @@ -8,6 +8,7 @@
> * AU
> *
> * HISTORY:
> + * Updated for 1.0 by Guido Guenther
> *
> ***
> *
> @@ -40,6 +41,7 @@
> #include
> #include
> #include
> +#include
>
> #ifdef HAVE_CONFIG_H
> #include
> @@ -51,8 +53,8 @@
> #include "parse.h"
> #include "gstbcmdec.h"
>
> -GST_DEBUG_CATEGORY_STATIC (gst_bcmdec_debug);
> -#define GST_CAT_DEFAULT gst_bcmdec_debug
> +GST_DEBUG_CATEGORY_STATIC (gst_bcm_dec_debug);
> +#define GST_CAT_DEFAULT gst_bcm_dec_debug
>
> //#define YV12__
>
> @@ -64,16 +66,18 @@ static GstFlowReturn
> bcmdec_send_buff_detect_error(GstBcmDec *bcmdec, GstBuffer
> guint8 flags)
> {
> BC_STATUS sts = BC_STS_SUCCESS;
> + GstMapInfo info;
>
> GST_DEBUG_OBJECT(bcmdec, "Attempting to Send Buffer");
>
> sts = decif_send_buffer(&bcmdec->decif, pbuffer, size, tCurrent, flags);
>
> if (sts != BC_STS_SUCCESS) {
> + gst_buffer_map(buf, &info, GST_MAP_READ);
> GST_ERROR_OBJECT(bcmdec, "proc input failed sts = %d", sts);
> GST_ERROR_OBJECT(bcmdec, "Chain: timeStamp = %llu size = %d
> data = %p",
> - GST_BUFFER_TIMESTAMP(buf),
> GST_BUFFER_SIZE(buf),
> - GST_BUFFER_DATA (buf));
> + GST_BUFFER_DTS(buf), info.size, info.data);
> + gst_buffer_unmap(buf, &info);
> return GST_FLOW_ERROR;
> }
>
> @@ -92,7 +96,7 @@ enum {
> };
>
>
> -GLB_INST_STS *g_inst_sts = NULL;
> +static GLB_INST_STS *g_inst_sts = NULL;
>
> /*
> * the capabilities of the inputs and outputs.
> @@ -111,35 +115,29 @@ GstStaticPadTemplate sink_factory_bcm70012 =
> GST_STATIC_PAD_TEMPLATE("sink", GST
>
> #ifdef YV12__
> static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE("src",
> GST_PAD_SRC, GST_PAD_ALWAYS,
> - GST_STATIC_CAPS("video/x-raw-yuv, " "format = (fourcc) { YV12
> }, " "width = (int) [ 1, MAX ], "
> + GST_STATIC_CAPS("video/x-raw, " "format = (string) { YV12 }, "
> "width = (int) [ 1, MAX ], "
> "height = (int) [ 1, MAX ], " "framerate =
> (fraction) [ 0/1, 2147483647/1 ]"));
> #define BUF_MULT (12 / 8)
> #define BUF_MODE MODE420
> #else
> static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE("src",
> GST_PAD_SRC, GST_PAD_ALWAYS,
> - GST_STATIC_CAPS("video/x-raw-yuv, " "format = (fourcc) { YUY2 }
> , " "framerate = (fraction) [0,MAX], "
> - "width = (int) [1,MAX], " "height = (int)
> [1,MAX]; " "video/x-raw-yuv, "
> - "format = (fourcc) { UYVY } , " "framerate =
> (fraction) [0,MAX], " "width = (int) [1,MAX], "
> + GST_STATIC_CAPS("video/x-raw, " "format = (string) { YUY2 } , "
> "framerate = (fraction) [0,MAX], "
> + "width = (int) [1,MAX], " "height = (int)
> [1,MAX]; " "video/x-raw, "
> + "format = (string) { UYVY } , " "framerate =
> (fraction) [0,MAX], " "width = (int) [1,MAX], "
> "height = (int) [1,MAX]; "));
> #define BUF_MULT (16 / 8)
> #define BUF_MODE MODE422_YUY2
> #endif
>
> -GST_BOILERPLATE(GstBcmDec, gst_bcmdec, GstElement, GST_TYPE_ELEMENT);
> +G_DEFINE_
[PATCH] crystalhd gst: Port to GStreamer 1.0 API
---
Tested with totem as well as gst-launch. Any chance this can be applied
to http://git.linuxtv.org/jarod/crystalhd.git?
Cheers,
-- Guido
filters/gst/gst-plugin/configure.ac|8 +-
filters/gst/gst-plugin/src/gstbcmdec.c | 431
filters/gst/gst-plugin/src/gstbcmdec.h | 68 ++---
3 files changed, 248 insertions(+), 259 deletions(-)
diff --git a/filters/gst/gst-plugin/configure.ac
b/filters/gst/gst-plugin/configure.ac
index 99b3713..a3c6467 100644
--- a/filters/gst/gst-plugin/configure.ac
+++ b/filters/gst/gst-plugin/configure.ac
@@ -1,9 +1,9 @@
AC_INIT
dnl versions of gstreamer and plugins-base
-GST_MAJORMINOR=0.10
-GST_REQUIRED=0.10.0
-GSTPB_REQUIRED=0.10.0
+GST_MAJORMINOR=1.0
+GST_REQUIRED=1.0
+GSTPB_REQUIRED=1.0
dnl fill in your package name and version here
dnl the fourth (nano) number should be 0 for a release, 1 for CVS,
@@ -56,7 +56,7 @@ dnl And we can also ask for the right version of gstreamer
PKG_CHECK_MODULES(GST, \
gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED
- gstreamer-video-0.10,
+ gstreamer-video-1.0,
HAVE_GST=yes,HAVE_GST=no)
dnl Give error and exit if we don't have gstreamer
diff --git a/filters/gst/gst-plugin/src/gstbcmdec.c
b/filters/gst/gst-plugin/src/gstbcmdec.c
index ed01c14..a51bd59 100644
--- a/filters/gst/gst-plugin/src/gstbcmdec.c
+++ b/filters/gst/gst-plugin/src/gstbcmdec.c
@@ -8,6 +8,7 @@
* AU
*
* HISTORY:
+ * Updated for 1.0 by Guido Guenther
*
***
*
@@ -40,6 +41,7 @@
#include
#include
#include
+#include
#ifdef HAVE_CONFIG_H
#include
@@ -51,8 +53,8 @@
#include "parse.h"
#include "gstbcmdec.h"
-GST_DEBUG_CATEGORY_STATIC (gst_bcmdec_debug);
-#define GST_CAT_DEFAULT gst_bcmdec_debug
+GST_DEBUG_CATEGORY_STATIC (gst_bcm_dec_debug);
+#define GST_CAT_DEFAULT gst_bcm_dec_debug
//#define YV12__
@@ -64,16 +66,18 @@ static GstFlowReturn
bcmdec_send_buff_detect_error(GstBcmDec *bcmdec, GstBuffer
guint8 flags)
{
BC_STATUS sts = BC_STS_SUCCESS;
+ GstMapInfo info;
GST_DEBUG_OBJECT(bcmdec, "Attempting to Send Buffer");
sts = decif_send_buffer(&bcmdec->decif, pbuffer, size, tCurrent, flags);
if (sts != BC_STS_SUCCESS) {
+ gst_buffer_map(buf, &info, GST_MAP_READ);
GST_ERROR_OBJECT(bcmdec, "proc input failed sts = %d", sts);
GST_ERROR_OBJECT(bcmdec, "Chain: timeStamp = %llu size = %d
data = %p",
-GST_BUFFER_TIMESTAMP(buf),
GST_BUFFER_SIZE(buf),
-GST_BUFFER_DATA (buf));
+GST_BUFFER_DTS(buf), info.size, info.data);
+ gst_buffer_unmap(buf, &info);
return GST_FLOW_ERROR;
}
@@ -92,7 +96,7 @@ enum {
};
-GLB_INST_STS *g_inst_sts = NULL;
+static GLB_INST_STS *g_inst_sts = NULL;
/*
* the capabilities of the inputs and outputs.
@@ -111,35 +115,29 @@ GstStaticPadTemplate sink_factory_bcm70012 =
GST_STATIC_PAD_TEMPLATE("sink", GST
#ifdef YV12__
static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE("src",
GST_PAD_SRC, GST_PAD_ALWAYS,
- GST_STATIC_CAPS("video/x-raw-yuv, " "format = (fourcc) { YV12
}, " "width = (int) [ 1, MAX ], "
+ GST_STATIC_CAPS("video/x-raw, " "format = (string) { YV12 }, "
"width = (int) [ 1, MAX ], "
"height = (int) [ 1, MAX ], " "framerate =
(fraction) [ 0/1, 2147483647/1 ]"));
#define BUF_MULT (12 / 8)
#define BUF_MODE MODE420
#else
static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE("src",
GST_PAD_SRC, GST_PAD_ALWAYS,
- GST_STATIC_CAPS("video/x-raw-yuv, " "format = (fourcc) { YUY2 }
, " "framerate = (fraction) [0,MAX], "
- "width = (int) [1,MAX], " "height = (int)
[1,MAX]; " "video/x-raw-yuv, "
- "format = (fourcc) { UYVY } , " "framerate =
(fraction) [0,MAX], " "width = (int) [1,MAX], "
+ GST_STATIC_CAPS("video/x-raw, " "format = (string) { YUY2 } , "
"framerate = (fraction) [0,MAX], "
+ "width = (int) [1,MAX], " "height = (int)
[1,MAX]; " "video/x-raw, "
+ "format = (string) { UYVY } , " "framerate =
(fraction) [0,MAX], " "width = (int) [1,MAX], "
"height = (int) [1,MAX]; "));
#define BUF_MULT (16 / 8)
#define BUF_MODE MODE422_YUY2
#endif
-GST_BOILERPLATE(GstBcmDec, gst_bcmdec, GstElement, GST_TYPE_ELEMENT);
+G_DEFINE_TYPE(GstBcmDec, gst_bcm_dec, GST_TYPE_ELEMENT);
/* GObject vmethod implementations */
-static void gst_bcmdec_base_init(gpointer gclass)
+static void gst_bcm_dec_base_init(gpointer gclass)
{
- static GstElementDetails element_details;
BC_HW_CAPS hwCaps;
- GST_DEBUG_OBJECT(gclass, "gst_bcmdec_base_init
