Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=58eab470d9bde3f0f0590bdee0db7a9639c2569d
commit 58eab470d9bde3f0f0590bdee0db7a9639c2569d Author: crazy <[email protected]> Date: Wed Dec 2 01:44:22 2015 +0100 crystalhd-20110314-43-x86_64 * removed , deprecated diff --git a/source/xmultimedia/crystalhd/FrugalBuild b/source/xmultimedia/crystalhd/FrugalBuild deleted file mode 100644 index 299ae8f..0000000 --- a/source/xmultimedia/crystalhd/FrugalBuild +++ /dev/null @@ -1,72 +0,0 @@ -# Compiling Time: 0.1 SBU -# Maintainer: James Buren <[email protected]> - -pkgname=crystalhd -pkgver=20110314 -pkgrel=43 -_name="Broadcom Crystal HD 70012/70015" -pkgdesc="Kernel module and firmware for $_name." -url="http://linuxtv.org" -rodepends=("lib$pkgname=$pkgver") -groups=('xmultimedia') -archs=('i686' 'x86_64') -up2date="Flasttar http://ftp.frugalware.org/pub/other/sources/$pkgname" -source=(http://ftp.frugalware.org/pub/other/sources/$pkgname/$pkgname-$pkgver.tar.xz \ - kernel-module-headers.patch \ - kernel-module-makefile.patch \ - kernel-module-udev.patch \ - kernel-3.8.patch \ - kernel4x.patch \ - fixes.patch \ - crystalhd-gst-Port-to-GStreamer-1.0-API.patch \ - fix_build_with_gcc5.patch) -sha1sums=('85c4a045deeebdcebeb0b3b6cb674e0d1c774538' \ - 'cddd94c608a1ff5621ef5b67c0cc611337bb38b9' \ - '6c7c30537f0dede06bcb1d488a051fb982e6f4f5' \ - '546ccf18830df825edfca19b8ee700fefe280082' \ - 'e5f034a098a6ce6fae2c810a0d8ff8fd16845e1d' \ - 'df9b0f89ee750b4e168e46cadeb9ece2e66a5839' \ - 'ebd51f71f32903cf47ec2552f3687964001f72a4' \ - 'a434fd31214b887c18ae4e49bbeaa93bde273879' \ - '5e4613c199fe9aa8fff673bb21af2e4f08068905') -Finclude kernel-module - -Faddsubpkg "lib$pkgname" "Library for $_name." "libstdc++" -Faddsubpkg "gst1-plugins-$pkgname" "GStreamer 1.x plugin for $_name." "gst1-plugins-base" "lib$pkgname=$pkgver" "" "gst-plugins-$pkgname" "gst-plugins-$pkgname" "gst-plugins-$pkgname" - -build() -{ - local _src_path="$Fsrcdir/$pkgname" - Fcd $pkgname - Fpatchall - - Fexec cd $_src_path/driver/linux || Fdie - Fsed '"\?$(\(shell \)\?uname -r)"\?' "$_F_kernelmod_uname" configure.ac Makefile.in - Fsed '-O2' "$CFLAGS" Makefile.in - Fsed 'bool b422mode;' 'uint32_t b422mode;' crystalhd_misc.h - - Fautoreconf - Fconf - Fmake - Fmakeinstall - - Fexec cd $_src_path/linux_lib/libcrystalhd || Fdie - Fsed '-O2' "$CFLAGS" Makefile - Fmake - Fmakeinstall - - Fexec cd $_src_path/filters/gst/gst-plugin || Fdie - Fsed "/usr/include/libcrystalhd" "$Fdestdir/usr/include/libcrystalhd" autogen.sh src/Makefile.am - Fsed "-lcrystalhd" "-L$Fdestdir/usr/lib -lcrystalhd" src/Makefile.am - Fexec ./autogen.sh || Fdie - Fmake - Fmakeinstall - - Fsplit gst1-plugins-$pkgname /usr/lib/gstreamer-1.0 - Fsplit lib$pkgname /usr/include /usr/lib - - Fkernelver_compress_modules - Fbuild_kernelmod_scriptlet -} - -# optimization OK diff --git a/source/xmultimedia/crystalhd/crystalhd-gst-Port-to-GStreamer-1.0-API.patch b/source/xmultimedia/crystalhd/crystalhd-gst-Port-to-GStreamer-1.0-API.patch deleted file mode 100644 index f5ef218..0000000 --- a/source/xmultimedia/crystalhd/crystalhd-gst-Port-to-GStreamer-1.0-API.patch +++ /dev/null @@ -1,1087 +0,0 @@ -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 <[email protected]> - * - ******************************************************************* - * -@@ -40,6 +41,7 @@ - #include <glib.h> - #include <gst/base/gstadapter.h> - #include <gst/video/video.h> -+#include <gst/video/gstvideopool.h> - - #ifdef HAVE_CONFIG_H - #include <config.h> -@@ -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"); -- -- element_details.klass = (gchar *)"Codec/Decoder/Video"; -- element_details.longname = (gchar *)"Generic Video Decoder"; -- element_details.description = (gchar *)"Decodes various Video Formats using CrystalHD Decoders"; -- element_details.author = (gchar *)"Broadcom Corp."; -+ GST_DEBUG_OBJECT(gclass, "gst_bcm_dec_base_init"); - - GstElementClass *element_class = GST_ELEMENT_CLASS(gclass); - -@@ -153,11 +151,15 @@ static void gst_bcmdec_base_init(gpointer gclass) - } - else - gst_element_class_add_pad_template(element_class, gst_static_pad_template_get (&sink_factory_bcm70012)); -- gst_element_class_set_details(element_class, &element_details); -+ gst_element_class_set_metadata(element_class, -+ "Codec/Decoder/Video", -+ "Generic Video Decoder", -+ "Decodes various Video Formats using CrystalHD Decoders", -+ "Broadcom Corp."); - } - - /* initialize the bcmdec's class */ --static void gst_bcmdec_class_init(GstBcmDecClass *klass) -+static void gst_bcm_dec_class_init(GstBcmDecClass *klass) - { - GObjectClass *gobject_class; - GstElementClass *gstelement_class; -@@ -165,13 +167,15 @@ static void gst_bcmdec_class_init(GstBcmDecClass *klass) - gobject_class = (GObjectClass *)klass; - gstelement_class = (GstElementClass *)klass; - -- GST_DEBUG_OBJECT(klass, "gst_bcmdec_class_init"); -+ GST_DEBUG_OBJECT(klass, "gst_bcm_dec_class_init"); -+ -+ gst_bcm_dec_base_init(klass); - -- gstelement_class->change_state = gst_bcmdec_change_state; -+ gstelement_class->change_state = gst_bcm_dec_change_state; - -- gobject_class->set_property = gst_bcmdec_set_property; -- gobject_class->get_property = gst_bcmdec_get_property; -- gobject_class->finalize = gst_bcmdec_finalize; -+ gobject_class->set_property = gst_bcm_dec_set_property; -+ gobject_class->get_property = gst_bcm_dec_get_property; -+ gobject_class->finalize = gst_bcm_dec_finalize; - - g_object_class_install_property(gobject_class, PROP_SILENT, - g_param_spec_boolean("silent", "Silent", -@@ -185,14 +189,14 @@ static void gst_bcmdec_class_init(GstBcmDecClass *klass) - * set pad calback functions - * initialize instance structure - */ --static void gst_bcmdec_init(GstBcmDec *bcmdec, GstBcmDecClass *gclass) -+static void gst_bcm_dec_init(GstBcmDec *bcmdec) - { - pid_t pid; - BC_STATUS sts = BC_STS_SUCCESS; - int shmid = 0; - BC_HW_CAPS hwCaps; - -- GST_DEBUG_OBJECT(bcmdec, "gst_bcmdec_init"); -+ GST_DEBUG_OBJECT(bcmdec, "gst_bcm_dec_init"); - - bcmdec_reset(bcmdec); - -@@ -204,17 +208,16 @@ static void gst_bcmdec_init(GstBcmDec *bcmdec, GstBcmDecClass *gclass) - else - bcmdec->sinkpad = gst_pad_new_from_static_template(&sink_factory_bcm70012, "sink"); - -- gst_pad_set_event_function(bcmdec->sinkpad, GST_DEBUG_FUNCPTR(gst_bcmdec_sink_event)); -+ gst_pad_set_event_function(bcmdec->sinkpad, -+ GST_DEBUG_FUNCPTR(gst_bcm_dec_sink_event)); - -- gst_pad_set_setcaps_function(bcmdec->sinkpad, GST_DEBUG_FUNCPTR(gst_bcmdec_sink_set_caps)); -- gst_pad_set_getcaps_function(bcmdec->sinkpad, GST_DEBUG_FUNCPTR(gst_bcmdec_getcaps)); -- gst_pad_set_chain_function(bcmdec->sinkpad, GST_DEBUG_FUNCPTR(gst_bcmdec_chain)); -+ gst_pad_set_chain_function(bcmdec->sinkpad, -+ GST_DEBUG_FUNCPTR(gst_bcm_dec_chain)); - - bcmdec->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); - -- gst_pad_set_getcaps_function(bcmdec->srcpad, GST_DEBUG_FUNCPTR(gst_bcmdec_getcaps)); -- -- gst_pad_set_event_function(bcmdec->srcpad, GST_DEBUG_FUNCPTR(gst_bcmdec_src_event)); -+ gst_pad_set_event_function(bcmdec->srcpad, -+ GST_DEBUG_FUNCPTR(gst_bcm_dec_src_event)); - - gst_pad_use_fixed_caps(bcmdec->srcpad); - bcmdec_negotiate_format(bcmdec); -@@ -223,7 +226,7 @@ static void gst_bcmdec_init(GstBcmDec *bcmdec, GstBcmDecClass *gclass) - gst_element_add_pad(GST_ELEMENT(bcmdec), bcmdec->srcpad); - bcmdec->silent = FALSE; - pid = getpid(); -- GST_DEBUG_OBJECT(bcmdec, "gst_bcmdec_init _-- PID = %x",pid); -+ GST_DEBUG_OBJECT(bcmdec, "gst_bcm_dec_init _-- PID = %x",pid); - - sts = bcmdec_create_shmem(bcmdec, &shmid); - -@@ -231,25 +234,25 @@ static void gst_bcmdec_init(GstBcmDec *bcmdec, GstBcmDecClass *gclass) - } - - /* plugin close function*/ --static void gst_bcmdec_finalize(GObject *object) -+static void gst_bcm_dec_finalize(GObject *object) - { -- GstBcmDec *bcmdec = GST_BCMDEC(object); -+ GstBcmDec *bcmdec = GST_BCM_DEC(object); - - bcmdec_del_shmem(bcmdec); -- /*gst_bcmdec_cleanup(bcmdec);*/ -- GST_DEBUG_OBJECT(bcmdec, "gst_bcmdec_finalize"); -- G_OBJECT_CLASS(parent_class)->finalize(object); -+ /*gst_bcm_dec_cleanup(bcmdec);*/ -+ GST_DEBUG_OBJECT(bcmdec, "gst_bcm_dec_finalize"); -+ G_OBJECT_CLASS(gst_bcm_dec_parent_class)->finalize(object); - } - --static void gst_bcmdec_set_property(GObject *object, guint prop_id, -+static void gst_bcm_dec_set_property(GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) - { -- GstBcmDec *bcmdec = GST_BCMDEC(object); -+ GstBcmDec *bcmdec = GST_BCM_DEC(object); - - switch (prop_id) { - case PROP_SILENT: - bcmdec->silent = g_value_get_boolean (value); -- GST_DEBUG_OBJECT(bcmdec, "gst_bcmdec_set_property PROP_SILENT"); -+ GST_DEBUG_OBJECT(bcmdec, "gst_bcm_dec_set_property PROP_SILENT"); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); -@@ -257,18 +260,18 @@ static void gst_bcmdec_set_property(GObject *object, guint prop_id, - } - - if (!bcmdec->silent) -- GST_DEBUG_OBJECT(bcmdec, "gst_bcmdec_set_property"); -+ GST_DEBUG_OBJECT(bcmdec, "gst_bcm_dec_set_property"); - } - --static void gst_bcmdec_get_property(GObject *object, guint prop_id, -+static void gst_bcm_dec_get_property(GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) - { -- GstBcmDec *bcmdec = GST_BCMDEC(object); -+ GstBcmDec *bcmdec = GST_BCM_DEC(object); - - switch (prop_id) { - case PROP_SILENT: - g_value_set_boolean (value, bcmdec->silent); -- GST_DEBUG_OBJECT(bcmdec, "gst_bcmdec_get_property PROP_SILENT"); -+ GST_DEBUG_OBJECT(bcmdec, "gst_bcm_dec_get_property PROP_SILENT"); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); -@@ -276,27 +279,33 @@ static void gst_bcmdec_get_property(GObject *object, guint prop_id, - } - - if (!bcmdec->silent) -- GST_DEBUG_OBJECT(bcmdec, "gst_bcmdec_get_property"); -+ GST_DEBUG_OBJECT(bcmdec, "gst_bcm_dec_get_property"); - } - - /* GstElement vmethod implementations */ --static gboolean gst_bcmdec_sink_event(GstPad* pad, GstEvent* event) -+static gboolean gst_bcm_dec_sink_event(GstPad* pad, -+ GstObject* parent, -+ GstEvent* event) - { - GstBcmDec *bcmdec; - BC_STATUS sts = BC_STS_SUCCESS; -- bcmdec = GST_BCMDEC(gst_pad_get_parent(pad)); -+ bcmdec = GST_BCM_DEC(gst_pad_get_parent(pad)); - - gboolean result = TRUE; - - switch (GST_EVENT_TYPE(event)) { -- case GST_EVENT_NEWSEGMENT: -- GstFormat newsegment_format; -- gint64 newsegment_start; -+ case GST_EVENT_CAPS: -+ GstCaps *caps; -+ gst_event_parse_caps (event, &caps); -+ result = gst_bcm_dec_sink_set_caps (pad, caps); -+ break; -+ -+ case GST_EVENT_SEGMENT: -+ const GstSegment *newsegment; - -- gst_event_parse_new_segment(event, NULL, NULL, &newsegment_format, -- &newsegment_start, NULL, NULL); -+ gst_event_parse_segment(event, &newsegment); - -- bcmdec->base_clock_time = newsegment_start; -+ bcmdec->base_clock_time = newsegment->start; - bcmdec->cur_stream_time = 0; - - if (!bcmdec->silent) -@@ -356,30 +365,24 @@ static gboolean gst_bcmdec_sink_event(GstPad* pad, GstEvent* event) - - gst_object_unref(bcmdec); - if (!bcmdec->silent) -- GST_DEBUG_OBJECT(bcmdec, "gst_bcmdec_sink_event %u", GST_EVENT_TYPE(event)); -+ GST_DEBUG_OBJECT(bcmdec, "gst_bcm_dec_sink_event %u", GST_EVENT_TYPE(event)); - return result; - } - --static GstCaps *gst_bcmdec_getcaps (GstPad * pad) --{ -- return gst_caps_copy (gst_pad_get_pad_template_caps (pad)); --} -- - /* this function handles the link with other elements */ --static gboolean gst_bcmdec_sink_set_caps(GstPad *pad, GstCaps *caps) -+static gboolean gst_bcm_dec_sink_set_caps(GstPad *pad, GstCaps *caps) - { - GstBcmDec *bcmdec; -- bcmdec = GST_BCMDEC(gst_pad_get_parent(pad)); -+ bcmdec = GST_BCM_DEC(gst_pad_get_parent(pad)); - GstStructure *structure; -+ GstMapInfo info; - GstCaps *intersection; - const gchar *mime; - guint num = 0; - guint den = 0; - const GValue *g_value; - int version = 0; -- GstBuffer *buffer; -- guint8 *data; -- guint size; -+ GstBuffer *buffer = NULL; - guint index; - - GST_DEBUG_OBJECT (pad, "setcaps called"); -@@ -484,53 +487,66 @@ static gboolean gst_bcmdec_sink_set_caps(GstPad *pad, GstCaps *caps) - GST_DEBUG_OBJECT(bcmdec, "InFmt H.264 (AVC1)"); - - buffer = gst_value_get_buffer(g_value); -- data = GST_BUFFER_DATA(buffer); -- size = GST_BUFFER_SIZE(buffer); -- -- GST_DEBUG_OBJECT(bcmdec, "codec_data size = %d", size); -+ if(!gst_buffer_map(buffer, -+ &info, -+ GST_MAP_READ)) -+ goto map_error; -+ GST_DEBUG_OBJECT(bcmdec, -+ "codec_data size = %d", -+ info.size); - - /* parse the avcC data */ -- if (size < 7) { -- GST_ERROR_OBJECT(bcmdec, "avcC size %u < 7", size); -- goto avcc_error; -+ if (info.size < 7) { -+ GST_ERROR_OBJECT(bcmdec, -+ "avcC size %u < 7", -+ info.size); -+ goto out; - } - /* parse the version, this must be 1 */ -- if (data[0] != 1) -- goto wrong_version; -+ if (info.data[0] != 1) { -+ GST_ERROR_OBJECT(bcmdec, "wrong avcC version"); -+ goto out; -+ } - - if (bcmdec->codec_params.sps_pps_buf == NULL) -- bcmdec->codec_params.sps_pps_buf = (guint8 *)malloc(size * 2); -- if (bcmdec_insert_sps_pps(bcmdec, buffer) != BC_STS_SUCCESS) { -+ bcmdec->codec_params.sps_pps_buf = (guint8 *)malloc(info.size * 2); -+ if (bcmdec_insert_sps_pps(bcmdec, &info) != BC_STS_SUCCESS) { - bcmdec->codec_params.pps_size = 0; - } - } else if (!strcmp("video/x-wmv", mime)) { -- buffer = gst_value_get_buffer(g_value); -- data = GST_BUFFER_DATA(buffer); -- size = GST_BUFFER_SIZE(buffer); -- -- GST_DEBUG_OBJECT(bcmdec, "codec_data size = %d", size); -- if (size == 4) { -+ buffer = gst_value_get_buffer(g_value); -+ if(!gst_buffer_map(buffer, -+ &info, -+ GST_MAP_READ)) -+ goto map_error; -+ -+ GST_DEBUG_OBJECT(bcmdec, -+ "codec_data size = %d", -+ info.size); -+ if (info.size == 4) { - // Simple or Main Profile - bcmdec->input_format = BC_MSUBTYPE_WMV3; - GST_DEBUG_OBJECT(bcmdec, "InFmt VC-1 (SP/MP)"); - if (bcmdec->codec_params.sps_pps_buf == NULL) - bcmdec->codec_params.sps_pps_buf = (guint8 *)malloc(4); -- memcpy(bcmdec->codec_params.sps_pps_buf, data, 4); -+ memcpy(bcmdec->codec_params.sps_pps_buf, -+ info.data, 4); - bcmdec->codec_params.pps_size = 4; - } else { - bcmdec->input_format = BC_MSUBTYPE_VC1; - GST_DEBUG_OBJECT(bcmdec, "InFmt VC-1 (AP)"); -- for (index = 0; index < size; index++) { -- data += index; -- if (((size - index) >= 4) && (*data == 0x00) && (*(data + 1) == 0x00) && -- (*(data + 2) == 0x01) && (*(data + 3) == 0x0f)) { -+ for (index = 0; index < info.size; -+ index++) { -+ info.data += index; -+ if (((info.size - index) >= 4) && (*info.data == 0x00) && (*(info.data + 1) == 0x00) && -+ (*(info.data + 2) == 0x01) && (*(info.data + 3) == 0x0f)) { - GST_DEBUG_OBJECT(bcmdec, "VC1 Sequence Header Found for Adv Profile"); - -- if ((size - index + 1) > MAX_ADV_PROF_SEQ_HDR_SZ) -+ if ((info.size - index + 1) > MAX_ADV_PROF_SEQ_HDR_SZ) - bcmdec->codec_params.pps_size = MAX_ADV_PROF_SEQ_HDR_SZ; - else -- bcmdec->codec_params.pps_size = size - index + 1; -- memcpy(bcmdec->codec_params.sps_pps_buf, data, bcmdec->codec_params.pps_size); -+ bcmdec->codec_params.pps_size = info.size - index + 1; -+ memcpy(bcmdec->codec_params.sps_pps_buf, info.data, bcmdec->codec_params.pps_size); - break; - } - } -@@ -546,16 +562,16 @@ static gboolean gst_bcmdec_sink_set_caps(GstPad *pad, GstCaps *caps) - } else { - // No Codec data. So try with FourCC for VC1/WMV9 - if (!strcmp("video/x-wmv", mime)) { -- guint32 fourcc; -- if (gst_structure_get_fourcc (structure, "format", &fourcc)) { -- if ((fourcc == GST_MAKE_FOURCC ('W', 'V', 'C', '1')) || -- (fourcc == GST_MAKE_FOURCC ('W', 'M', 'V', 'A'))) { -+ if (gst_structure_has_field (structure, "format")) { -+ const char* fourcc = gst_structure_get_string(structure, "format"); -+ -+ if (!g_strcmp0(fourcc, "WVC1") || -+ !g_strcmp0(fourcc, "WMVA")) { - bcmdec->input_format = BC_MSUBTYPE_VC1; - GST_DEBUG_OBJECT(bcmdec, "InFmt VC-1 (AP)"); - } else { - GST_DEBUG_OBJECT(bcmdec, "no codec_data. Don't know how to handle"); -- gst_object_unref(bcmdec); -- return FALSE; -+ goto out; - } - } - } -@@ -570,8 +586,7 @@ static gboolean gst_bcmdec_sink_set_caps(GstPad *pad, GstCaps *caps) - } - else { - GST_DEBUG_OBJECT(bcmdec, "no codec_data. Don't know how to handle"); -- gst_object_unref(bcmdec); -- return FALSE; -+ goto out; - } - } - } -@@ -581,54 +596,40 @@ static gboolean gst_bcmdec_sink_set_caps(GstPad *pad, GstCaps *caps) - bcmdec_process_play(bcmdec); - } - -+ gst_buffer_unmap(buffer, &info); - gst_object_unref(bcmdec); - - return TRUE; - - /* ERRORS */ --avcc_error: -- { -- gst_object_unref(bcmdec); -- return FALSE; -- } -- --wrong_version: -- { -- GST_ERROR_OBJECT(bcmdec, "wrong avcC version"); -- gst_object_unref(bcmdec); -- return FALSE; -- } --} -- --void bcmdec_msleep(gint msec) --{ -- gint cnt = msec; -- -- while (cnt) { -- usleep(1000); -- cnt--; -- } -+out: -+ if (buffer) -+ gst_buffer_unmap(buffer, &info); -+map_error: -+ gst_object_unref(bcmdec); -+ return FALSE; - } - - /* - * chain function - * this function does the actual processing - */ --static GstFlowReturn gst_bcmdec_chain(GstPad *pad, GstBuffer *buf) -+static GstFlowReturn gst_bcm_dec_chain(GstPad *pad, -+ GstObject *parent, -+ GstBuffer *buf) - { - GstBcmDec *bcmdec; --// BC_STATUS sts = BC_STS_SUCCESS; -+ GstMapInfo info; - guint32 offset = 0; - GstClockTime tCurrent = 0; - guint8 *pbuffer; - guint32 size = 0; --// guint32 vc1_buff_sz = 0; -- -+ GstFlowReturn ret; - - #ifdef FILE_DUMP__ - guint32 bytes_written =0; - #endif -- bcmdec = GST_BCMDEC (GST_OBJECT_PARENT (pad)); -+ bcmdec = GST_BCM_DEC (GST_OBJECT_PARENT (pad)); - - #ifdef FILE_DUMP__ - if (bcmdec->fhnd == NULL) -@@ -637,8 +638,8 @@ static GstFlowReturn gst_bcmdec_chain(GstPad *pad, GstBuffer *buf) - - if (bcmdec->flushing) { - GST_DEBUG_OBJECT(bcmdec, "input while flushing"); -- gst_buffer_unref(buf); -- return GST_FLOW_OK; -+ ret = GST_FLOW_OK; -+ goto out; - } - - if (GST_CLOCK_TIME_NONE != GST_BUFFER_TIMESTAMP(buf)) { -@@ -654,32 +655,44 @@ static GstFlowReturn gst_bcmdec_chain(GstPad *pad, GstBuffer *buf) - bcmdec_process_play(bcmdec); - } else if (!bcmdec->streaming) { - GST_DEBUG_OBJECT(bcmdec, "input while streaming is false"); -- gst_buffer_unref(buf); -- return GST_FLOW_WRONG_STATE; -+ ret = GST_FLOW_FLUSHING; -+ goto out; - } - -- pbuffer = GST_BUFFER_DATA (buf); -- size = GST_BUFFER_SIZE(buf); -+ if (!gst_buffer_map(buf, &info, GST_MAP_READ)) { -+ ret = GST_FLOW_ERROR; -+ goto out; -+ } -+ pbuffer = info.data; -+ size = info.size; - -+ /* FIXME: better send mapinfo? */ - if (GST_FLOW_OK != bcmdec_send_buff_detect_error(bcmdec, buf, pbuffer, size, offset, tCurrent, bcmdec->proc_in_flags)) { -- gst_buffer_unref(buf); -- return GST_FLOW_ERROR; -+ ret = GST_FLOW_ERROR; -+ goto unmapout; - } - - #ifdef FILE_DUMP__ - bytes_written = fwrite(GST_BUFFER_DATA(buf), sizeof(unsigned char), GST_BUFFER_SIZE(buf), bcmdec->fhnd); - #endif - -+ ret = GST_FLOW_OK; -+ -+unmapout: -+ gst_buffer_unmap(buf, &info); -+out: - gst_buffer_unref(buf); -- return GST_FLOW_OK; -+ return ret; - } - --static gboolean gst_bcmdec_src_event(GstPad *pad, GstEvent *event) -+static gboolean gst_bcm_dec_src_event(GstPad *pad, -+ GstObject *parent, -+ GstEvent *event) - { - gboolean result; - GstBcmDec *bcmdec; - -- bcmdec = GST_BCMDEC(GST_OBJECT_PARENT(pad)); -+ bcmdec = GST_BCM_DEC(GST_OBJECT_PARENT(pad)); - - result = gst_pad_push_event(bcmdec->sinkpad, event); - -@@ -695,6 +708,7 @@ static gboolean bcmdec_negotiate_format(GstBcmDec *bcmdec) - GstStructure *s1; - const GValue *framerate_value; - GstVideoFormat vidFmt; -+ GstVideoInfo info; - - #ifdef YV12__ - vidFmt = GST_VIDEO_FORMAT_YV12; -@@ -703,21 +717,21 @@ static gboolean bcmdec_negotiate_format(GstBcmDec *bcmdec) - #endif - GST_DEBUG_OBJECT(bcmdec, "framerate = %f", bcmdec->output_params.framerate); - -- if(bcmdec->interlace) { -- caps = gst_video_format_new_caps_interlaced(vidFmt, bcmdec->output_params.width, -- bcmdec->output_params.height, num, den, -- bcmdec->output_params.aspectratio_x, -- bcmdec->output_params.aspectratio_y, -- TRUE); -- } else { -- caps = gst_video_format_new_caps(vidFmt, bcmdec->output_params.width, -- bcmdec->output_params.height, num, den, -- bcmdec->output_params.aspectratio_x, -- bcmdec->output_params.aspectratio_y); -- } -- -+ gst_video_info_init (&info); -+ gst_video_info_set_format (&info, -+ vidFmt, -+ bcmdec->output_params.width, -+ bcmdec->output_params.height); -+ info.fps_n = num; -+ info.fps_d = den; -+ info.par_n = bcmdec->output_params.aspectratio_x; -+ info.par_d = bcmdec->output_params.aspectratio_y; -+ info.interlace_mode = bcmdec->interlace ? -+ GST_VIDEO_INTERLACE_MODE_INTERLEAVED : -+ GST_VIDEO_INTERLACE_MODE_PROGRESSIVE; -+ caps = gst_video_info_to_caps (&info); - result = gst_pad_set_caps(bcmdec->srcpad, caps); -- GST_DEBUG_OBJECT(bcmdec, "gst_bcmdec_negotiate_format %d", result); -+ GST_DEBUG_OBJECT(bcmdec, "gst_bcm_dec_negotiate_format %d", result); - - if (bcmdec->output_params.clr_space == MODE422_YUY2) { - bcmdec->output_params.y_size = bcmdec->output_params.width * bcmdec->output_params.height * BUF_MULT; -@@ -842,10 +856,10 @@ static gboolean bcmdec_process_play(GstBcmDec *bcmdec) - return TRUE; - } - --static GstStateChangeReturn gst_bcmdec_change_state(GstElement *element, GstStateChange transition) -+static GstStateChangeReturn gst_bcm_dec_change_state(GstElement *element, GstStateChange transition) - { - GstStateChangeReturn result = GST_STATE_CHANGE_SUCCESS; -- GstBcmDec *bcmdec = GST_BCMDEC(element); -+ GstBcmDec *bcmdec = GST_BCM_DEC(element); - BC_STATUS sts = BC_STS_SUCCESS; - int ret = 0; - -@@ -960,7 +974,7 @@ static GstStateChangeReturn gst_bcmdec_change_state(GstElement *element, GstStat - GST_DEBUG_OBJECT(bcmdec, "default %d", transition); - break; - } -- result = GST_ELEMENT_CLASS(parent_class)->change_state(element, transition); -+ result = GST_ELEMENT_CLASS(gst_bcm_dec_parent_class)->change_state(element, transition); - if (result == GST_STATE_CHANGE_FAILURE) { - GST_ERROR_OBJECT(bcmdec, "parent class state change failed"); - return result; -@@ -968,7 +982,7 @@ static GstStateChangeReturn gst_bcmdec_change_state(GstElement *element, GstStat - - if(transition == GST_STATE_CHANGE_READY_TO_NULL) { - GST_DEBUG_OBJECT(bcmdec, "GST_STATE_CHANGE_READY_TO_NULL"); -- sts = gst_bcmdec_cleanup(bcmdec); -+ sts = gst_bcm_dec_cleanup(bcmdec); - if (sts == BC_STS_SUCCESS) - GST_DEBUG_OBJECT(bcmdec, "dev close success"); - else -@@ -978,38 +992,26 @@ static GstStateChangeReturn gst_bcmdec_change_state(GstElement *element, GstStat - return result; - } - -- --GstClockTime gst_get_current_timex (void) --{ -- GTimeVal tv; -- -- g_get_current_time(&tv); -- return GST_TIMEVAL_TO_TIME(tv); --} -- --clock_t bcm_get_tick_count() --{ -- tms tm; -- return times(&tm); --} -- --static gboolean bcmdec_get_buffer(GstBcmDec *bcmdec, GstBuffer **obuf) -+static gboolean bcmdec_get_buffer(GstBcmDec *bcmdec, -+ gint size, -+ GstBuffer **obuf) - { - GstFlowReturn ret; -- GST_DEBUG_OBJECT(bcmdec, "gst_pad_alloc_buffer_and_set_caps "); -+ GST_DEBUG_OBJECT(bcmdec, "%s", __func__); - -- ret = gst_pad_alloc_buffer_and_set_caps(bcmdec->srcpad, -- GST_BUFFER_OFFSET_NONE, -- bcmdec->output_params.width * bcmdec->output_params.height * BUF_MULT, -- GST_PAD_CAPS (bcmdec->srcpad), obuf); -- if (ret != GST_FLOW_OK) { -+ *obuf = gst_buffer_new_allocate (NULL, -+ size, -+ NULL); -+ -+ if (obuf == NULL) { - GST_ERROR_OBJECT(bcmdec, "gst_pad_alloc_buffer_and_set_caps failed %d ",ret); - return FALSE; - } - -+#if 0 - if (((uintptr_t)GST_BUFFER_DATA(*obuf)) % 4) - GST_DEBUG_OBJECT(bcmdec, "buf is not aligned"); -- -+#endif - return TRUE; - } - -@@ -1382,6 +1384,7 @@ static void * bcmdec_process_output(void *ctx) - GstClockTime cur_stream_time_diff = 0; - int wait_cnt = 0; - guint32 nextPicNumFlags = 0; -+ GstMapInfo info; - - gboolean is_paused = FALSE; - -@@ -1427,7 +1430,8 @@ static void * bcmdec_process_output(void *ctx) - guint8* data_ptr; - if (gstbuf == NULL) { - if (!bcmdec->rbuf_thread_running) { -- if (!bcmdec_get_buffer(bcmdec, &gstbuf)) { -+ gint size = bcmdec->output_params.width * bcmdec->output_params.height * BUF_MULT; -+ if (!bcmdec_get_buffer(bcmdec, size, &gstbuf)) { - usleep(30 * 1000); - continue; - } -@@ -1460,9 +1464,16 @@ static void * bcmdec_process_output(void *ctx) - else - GST_DEBUG_OBJECT(bcmdec, "re-using rbuf, going to proc output"); - -- data_ptr = GST_BUFFER_DATA(gstbuf); -- -+ if(!gst_buffer_map(gstbuf, -+ &info, -+ GST_MAP_WRITE)) { -+ GST_ERROR_OBJECT(bcmdec, "Failed to map buffer"); -+ continue; -+ } -+ data_ptr = info.data; - bcmdec_init_procout(bcmdec, &pout, data_ptr); -+ gst_buffer_unmap(gstbuf, &info); -+ - rx_flush = TRUE; - pout.PicInfo.picture_number = 0; - // For interlaced content, if I am holding a buffer but the next buffer is not from the same picture -@@ -1473,7 +1484,7 @@ static void * bcmdec_process_output(void *ctx) - if(pic_number == 0) - gst_buffer_unref(gstbuf); - else if (gst_queue_element) { -- GST_BUFFER_FLAG_SET(gstbuf, GST_VIDEO_BUFFER_ONEFIELD); -+ GST_BUFFER_FLAG_SET(gstbuf, GST_VIDEO_BUFFER_FLAG_ONEFIELD); - gst_queue_element->gstbuf = gstbuf; - bcmdec_ins_buf(bcmdec, gst_queue_element); - bcmdec->prev_pic = pic_number; -@@ -1489,7 +1500,7 @@ static void * bcmdec_process_output(void *ctx) - } - if (bEOS) { - if (gstbuf) { -- gst_buffer_unref(gstbuf); -+ gst_buffer_unref(gstbuf); - gstbuf = NULL; - } - if (gst_queue_element) { -@@ -1561,14 +1572,6 @@ static void * bcmdec_process_output(void *ctx) - GST_DEBUG_OBJECT(bcmdec, "LOST PICTURE pic_no = %d, prev = %d", pic_number, bcmdec->prev_pic); - } - --/* if ((bcmdec->prev_pic == pic_number) && (bcmdec->ses_nbr == pout.PicInfo.sess_num) && !bcmdec->interlace) { -- if (!bcmdec->silent) -- GST_DEBUG_OBJECT(bcmdec, "rp"); -- -- if (!(pout.PicInfo.flags & VDEC_FLAG_LAST_PICTURE)) -- continue; -- }*/ -- - if (!bcmdec->interlace || bcmdec->sec_field) { - GST_DEBUG_OBJECT(bcmdec, "Progressive or Second Field"); - GST_BUFFER_OFFSET(gstbuf) = 0; -@@ -1597,13 +1600,11 @@ static void * bcmdec_process_output(void *ctx) - } - } - -- GST_BUFFER_SIZE(gstbuf) = bcmdec->output_params.width * bcmdec->output_params.height * BUF_MULT; -- - if (!bcmdec->interlace || bcmdec->sec_field) { - if (gst_queue_element) { - // If interlaced, set the GST_VIDEO_BUFFER_TFF flags - if(bcmdec->sec_field) -- GST_BUFFER_FLAG_SET(gstbuf, GST_VIDEO_BUFFER_TFF); -+ GST_BUFFER_FLAG_SET(gstbuf, GST_VIDEO_BUFFER_FLAG_TFF); - gst_queue_element->gstbuf = gstbuf; - bcmdec_ins_buf(bcmdec, gst_queue_element); - bcmdec->prev_pic = pic_number; -@@ -1674,7 +1675,7 @@ static void * bcmdec_process_output(void *ctx) - } - if (rx_flush) { - if (!bcmdec->flushing) { --// GST_DEBUG_OBJECT(bcmdec, "DtsFlushRxCapture called"); -+ GST_DEBUG_OBJECT(bcmdec, "DtsFlushRxCapture called"); - // sts = decif_flush_rxbuf(&bcmdec->decif, FALSE); - // if (sts != BC_STS_SUCCESS) - // GST_DEBUG_OBJECT(bcmdec, "DtsFlushRxCapture failed"); -@@ -1880,11 +1881,11 @@ static void bcmdec_process_flush_start(GstBcmDec *bcmdec) - GST_ERROR_OBJECT(bcmdec, "flush_dec failed sts %d", sts); - } - --static BC_STATUS gst_bcmdec_cleanup(GstBcmDec *bcmdec) -+static BC_STATUS gst_bcm_dec_cleanup(GstBcmDec *bcmdec) - { - BC_STATUS sts = BC_STS_SUCCESS; - -- GST_DEBUG_OBJECT(bcmdec, "gst_bcmdec_cleanup - enter"); -+ GST_DEBUG_OBJECT(bcmdec, "gst_bcm_dec_cleanup - enter"); - bcmdec->streaming = FALSE; - - bcmdec_release_mem_buf_que_pool(bcmdec); -@@ -2117,11 +2118,11 @@ static GSTBUF_LIST * bcmdec_rem_buf(GstBcmDec *bcmdec) - return temp; - } - --static BC_STATUS bcmdec_insert_sps_pps(GstBcmDec *bcmdec, GstBuffer* gstbuf) -+static BC_STATUS bcmdec_insert_sps_pps(GstBcmDec *bcmdec, GstMapInfo* info) - { - BC_STATUS sts = BC_STS_SUCCESS; -- guint8 *data = GST_BUFFER_DATA(gstbuf); -- guint32 data_size = GST_BUFFER_SIZE(gstbuf); -+ guint8 *data = info->data; -+ guint32 data_size = info->size; - gint profile; - guint nal_size; - guint num_sps, num_pps, i; -@@ -2436,7 +2437,6 @@ static void * bcmdec_process_get_rbuf(void *ctx) - - while (bcmdec->streaming && get_buf_start) - { -- //GST_DEBUG_OBJECT(bcmdec, "process get rbuf start...."); - gstbuf = NULL; - - if (!bcmdec->recv_thread && !bcmdec->streaming) { -@@ -2446,9 +2446,8 @@ static void * bcmdec_process_get_rbuf(void *ctx) - break; - } - -- // If we have enough buffers from the renderer then don't get any more - if(bcmdec->gst_padbuf_que_cnt >= GST_RENDERER_BUF_POOL_SZ) { -- usleep(100 * 1000); -+ usleep(100 * 1000); /* we have enought buffers from the renderer */ - GST_DEBUG_OBJECT(bcmdec, "SLEEPING because we have enough buffers"); - continue; - } -@@ -2467,13 +2466,10 @@ static void * bcmdec_process_get_rbuf(void *ctx) - bufSz = bcmdec->output_params.width * bcmdec->output_params.height * BUF_MULT; - - GST_DEBUG_OBJECT(bcmdec, "process get rbuf gst_pad_alloc_buffer_and_set_caps ...."); -- ret = gst_pad_alloc_buffer_and_set_caps(bcmdec->srcpad, GST_BUFFER_OFFSET_NONE, -- bufSz, GST_PAD_CAPS(bcmdec->srcpad), &gstbuf); -- if (ret != GST_FLOW_OK) { -- if (!bcmdec->silent) -- GST_ERROR_OBJECT(bcmdec, "gst_pad_alloc_buffer_and_set_caps failed %d ",ret); -- usleep(30 * 1000); -- continue; -+ if (!bcmdec_get_buffer(bcmdec, bufSz, &gstbuf)) { -+ GST_ERROR_OBJECT(bcmdec, "gst_pad_alloc_buffer_and_set_caps failed %d ",ret); -+ usleep(30 * 1000); -+ continue; - } - - GST_DEBUG_OBJECT(bcmdec, "Got GST Buf RCnt:%d", bcmdec->gst_padbuf_que_cnt); -@@ -2501,9 +2497,6 @@ static gboolean bcmdec_start_get_rbuf_thread(GstBcmDec *bcmdec) - gint ret = 0; - pthread_attr_t thread_attr; - --// if (!bcmdec_alloc_mem_rbuf_que_pool(bcmdec)) --// GST_ERROR_OBJECT(bcmdec, "rend pool alloc failed/n"); -- - bcmdec->gst_padbuf_que_hd = bcmdec->gst_padbuf_que_tl = NULL; - - ret = sem_init(&bcmdec->rbuf_ins_event, 0, 0); -@@ -2658,18 +2651,14 @@ static GSTBUF_LIST *bcmdec_rem_padbuf(GstBcmDec *bcmdec) - */ - static gboolean plugin_init(GstPlugin *bcmdec) - { -- //printf("BcmDec_init"); -- - /* - * debug category for fltering log messages -- * -- * exchange the string 'Template bcmdec' with your description - */ -- GST_DEBUG_CATEGORY_INIT(gst_bcmdec_debug, "bcmdec", 0, "Broadcom video decoder"); -+ GST_DEBUG_CATEGORY_INIT(gst_bcm_dec_debug, "bcmdec", 0, "Broadcom video decoder"); - -- return gst_element_register(bcmdec, "bcmdec", GST_BCMDEC_RANK, GST_TYPE_BCMDEC); -+ return gst_element_register(bcmdec, "bcmdec", GST_BCM_DEC_RANK, GST_TYPE_BCM_DEC); - } - - /* gstreamer looks for this structure to register bcmdec */ --GST_PLUGIN_DEFINE(GST_VERSION_MAJOR, GST_VERSION_MINOR, "bcmdec", "Video decoder", plugin_init, VERSION, "LGPL", "bcmdec", "http://broadcom.com/") -+GST_PLUGIN_DEFINE(GST_VERSION_MAJOR, GST_VERSION_MINOR, bcmdec, "Video decoder", plugin_init, VERSION, "LGPL", "bcmdec", "http://broadcom.com/") - -diff --git a/filters/gst/gst-plugin/src/gstbcmdec.h b/filters/gst/gst-plugin/src/gstbcmdec.h -index 6e5b100..5c02c8a 100644 ---- a/filters/gst/gst-plugin/src/gstbcmdec.h -+++ b/filters/gst/gst-plugin/src/gstbcmdec.h -@@ -23,11 +23,11 @@ - * along with this library. If not, see <http://www.gnu.org/licenses/>. - * - *******************************************************************/ --#ifndef __GST_BCMDEC_H__ --#define __GST_BCMDEC_H__ -+#ifndef __GST_BCM_DEC_H__ -+#define __GST_BCM_DEC_H__ - - --#define GST_BCMDEC_RANK 0xffff -+#define GST_BCM_DEC_RANK 0xffff - - #define CLOCK_BASE 9LL - #define CLOC_FREQ_CLOC_BASE * 10000 -@@ -127,16 +127,16 @@ typedef struct { - - G_BEGIN_DECLS - --#define GST_TYPE_BCMDEC \ -- (gst_bcmdec_get_type()) --#define GST_BCMDEC(obj) \ -- (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BCMDEC,GstBcmDec)) --#define GST_BCMDEC_CLASS(klass) \ -- (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BCMDEC,GstBcmDecClass)) --#define GST_IS_BCMDEC(obj) \ -- (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BCMDEC)) --#define GST_IS_BCMDEC_CLASS(klass) \ -- (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BCMDEC)) -+#define GST_TYPE_BCM_DEC \ -+ (gst_bcm_dec_get_type()) -+#define GST_BCM_DEC(obj) \ -+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BCM_DEC,GstBcmDec)) -+#define GST_BCM_DEC_CLASS(klass) \ -+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BCM_DEC,GstBcmDecClass)) -+#define GST_IS_BCM_DEC(obj) \ -+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BCM_DEC)) -+#define GST_IS_BCM_DEC_CLASS(klass) \ -+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BCM_DEC)) - - typedef struct _GstBcmDec GstBcmDec; - typedef struct _GstBcmDecClass GstBcmDecClass; -@@ -188,7 +188,7 @@ struct _GstBcmDec - - gboolean flushing; - sem_t push_stop_event; -- sem_t push_start_event; -+ sem_t push_start_event; - sem_t recv_stop_event; - guint ses_nbr; - gboolean insert_pps; -@@ -233,49 +233,50 @@ struct _GstBcmDecClass - GstElementClass parent_class; - }; - --GType gst_bcmdec_get_type (void); -+GType gst_bcm_dec_get_type (void); - - static void --gst_bcmdec_base_init (gpointer gclass); -+gst_bcm_dec_base_init (gpointer gclass); - - static void --gst_bcmdec_class_init(GstBcmDecClass * klass); -+gst_bcm_dec_class_init(GstBcmDecClass * klass); - - static void --gst_bcmdec_init(GstBcmDec * bcmdec, -- GstBcmDecClass * gclass); -+gst_bcm_dec_init(GstBcmDec * bcmdec); -+ - - static void --gst_bcmdec_finalize(GObject * object); -+gst_bcm_dec_finalize(GObject * object); - - static GstFlowReturn --gst_bcmdec_chain(GstPad * pad, -+gst_bcm_dec_chain(GstPad * pad, -+ GstObject * parent, - GstBuffer * buffer); - - static GstStateChangeReturn --gst_bcmdec_change_state(GstElement * element, -+gst_bcm_dec_change_state(GstElement * element, - GstStateChange transition); - - static gboolean --gst_bcmdec_sink_set_caps(GstPad * pad, -+gst_bcm_dec_sink_set_caps(GstPad * pad, - GstCaps * caps); - --static GstCaps *gst_bcmdec_getcaps (GstPad * pad); -- - static gboolean --gst_bcmdec_src_event(GstPad * pad, -+gst_bcm_dec_src_event(GstPad * pad, -+ GstObject * parent, - GstEvent * event); - - static gboolean --gst_bcmdec_sink_event(GstPad * pad, -+gst_bcm_dec_sink_event(GstPad * pad, -+ GstObject * parent, - GstEvent * event); - - static void --gst_bcmdec_set_property (GObject * object, guint prop_id, -+gst_bcm_dec_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec); - - static void --gst_bcmdec_get_property (GObject * object, guint prop_id, -+gst_bcm_dec_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec); - - static gboolean -@@ -285,7 +286,7 @@ static void - bcmdec_reset(GstBcmDec * bcmdec); - - static gboolean --bcmdec_get_buffer(GstBcmDec * bcmdec, GstBuffer ** obuf); -+bcmdec_get_buffer(GstBcmDec * bcmdec, gint size, GstBuffer ** obuf); - - static void* - bcmdec_process_output(void * ctx); -@@ -300,7 +301,7 @@ static gboolean - bcmdec_format_change(GstBcmDec * filter,BC_PIC_INFO_BLOCK* pic_info); - - static BC_STATUS --gst_bcmdec_cleanup(GstBcmDec *filter); -+gst_bcm_dec_cleanup(GstBcmDec *filter); - - static gboolean - bcmdec_start_recv_thread(GstBcmDec * bcmdec); -@@ -339,7 +340,7 @@ bcmdec_start_push_thread(GstBcmDec * bcmdec); - //bcmdec_insert_startcode(GstBcmDec* filter,GstBuffer* gstbuf, guint8* dest_buf,guint32* sz); - - static BC_STATUS --bcmdec_insert_sps_pps(GstBcmDec* filter,GstBuffer* gstbuf); -+bcmdec_insert_sps_pps(GstBcmDec* filter, GstMapInfo* gstbuf); - - static void - bcmdec_set_aspect_ratio(GstBcmDec *filter,BC_PIC_INFO_BLOCK* pic_info); -@@ -383,7 +384,6 @@ bcmdec_ins_padbuf(GstBcmDec *filter,GSTBUF_LIST *gst_queue_element); - static GSTBUF_LIST* - bcmdec_rem_padbuf(GstBcmDec *filter); - -- - G_END_DECLS - --#endif /* __GST_BCMDEC_H__ */ -+#endif /* __GST_BCM_DEC_H__ */ diff --git a/source/xmultimedia/crystalhd/fix_build_with_gcc5.patch b/source/xmultimedia/crystalhd/fix_build_with_gcc5.patch deleted file mode 100644 index 1b5ed45..0000000 --- a/source/xmultimedia/crystalhd/fix_build_with_gcc5.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- crystalhd/driver/linux/crystalhd_misc.h 2015-10-08 12:23:52.000000000 +0200 -+++ crystalhd.new/driver/linux/crystalhd_misc.h 2015-10-08 12:25:25.000000000 +0200 -@@ -73,7 +73,7 @@ - uint32_t y_done_sz; - uint32_t uv_done_sz; - uint32_t comp_flags; -- bool b422mode; -+ uint32_t b422mode; - }; - - struct crystalhd_dio_req { ---- crystalhd/driver/linux/crystalhd_cmds.c 2015-10-08 12:23:52.000000000 +0200 -+++ crystalhd.new/driver/linux/crystalhd_cmds.c 2015-10-08 12:31:30.000000000 +0200 -@@ -85,7 +85,7 @@ - return BC_STS_ERR_USAGE; - } - -- if ((idata->udata.u.NotifyMode.Mode && 0xFF) == DTS_MONITOR_MODE) { -+ if ((idata->udata.u.NotifyMode.Mode & 0xFF) == DTS_MONITOR_MODE) { - ctx->user[idata->u_id].mode = idata->udata.u.NotifyMode.Mode; - return BC_STS_SUCCESS; - } diff --git a/source/xmultimedia/crystalhd/fixes.patch b/source/xmultimedia/crystalhd/fixes.patch deleted file mode 100644 index a298e09..0000000 --- a/source/xmultimedia/crystalhd/fixes.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur a/filters/gst/gst-plugin/configure.ac b/filters/gst/gst-plugin/configure.ac ---- a/filters/gst/gst-plugin/configure.ac 2011-03-14 15:02:54.000000000 -0500 -+++ b/filters/gst/gst-plugin/configure.ac 2013-01-17 00:28:31.676676585 -0600 -@@ -24,7 +24,7 @@ - dnl make aclocal work in maintainer mode - AC_SUBST(ACLOCAL_AMFLAGS, "-I m4") - --AM_CONFIG_HEADER(config.h) -+AC_CONFIG_HEADERS(config.h) - - dnl check for tools - AC_PROG_CC diff --git a/source/xmultimedia/crystalhd/kernel-3.8.patch b/source/xmultimedia/crystalhd/kernel-3.8.patch deleted file mode 100644 index 9b64e55..0000000 --- a/source/xmultimedia/crystalhd/kernel-3.8.patch +++ /dev/null @@ -1,87 +0,0 @@ -diff -ur a/driver/linux/crystalhd_cmds.c b/driver/linux/crystalhd_cmds.c ---- a/driver/linux/crystalhd_cmds.c 2011-03-14 15:02:54.000000000 -0500 -+++ b/driver/linux/crystalhd_cmds.c 2013-05-13 07:22:19.147377741 -0500 -@@ -1093,7 +1093,7 @@ - * - * Called at the time of driver load. - */ --BC_STATUS __devinit crystalhd_setup_cmd_context(struct crystalhd_cmd *ctx, -+BC_STATUS crystalhd_setup_cmd_context(struct crystalhd_cmd *ctx, - struct crystalhd_adp *adp) - { - struct device *dev = &adp->pdev->dev; -@@ -1136,7 +1136,7 @@ - * - * Called at the time of driver un-load. - */ --BC_STATUS __devexit crystalhd_delete_cmd_context(struct crystalhd_cmd *ctx) -+BC_STATUS crystalhd_delete_cmd_context(struct crystalhd_cmd *ctx) - { - dev_dbg(chddev(), "Deleting Command context..\n"); - -diff -ur a/driver/linux/crystalhd_lnx.c b/driver/linux/crystalhd_lnx.c ---- a/driver/linux/crystalhd_lnx.c 2011-03-14 15:02:54.000000000 -0500 -+++ b/driver/linux/crystalhd_lnx.c 2013-05-13 07:22:49.876376598 -0500 -@@ -431,7 +431,7 @@ - .llseek = noop_llseek, - }; - --static int __devinit chd_dec_init_chdev(struct crystalhd_adp *adp) -+static int chd_dec_init_chdev(struct crystalhd_adp *adp) - { - struct device *xdev = &adp->pdev->dev; - struct device *dev; -@@ -498,7 +498,7 @@ - return rc; - } - --static void __devexit chd_dec_release_chdev(struct crystalhd_adp *adp) -+static void chd_dec_release_chdev(struct crystalhd_adp *adp) - { - crystalhd_ioctl_data *temp = NULL; - if (!adp) -@@ -523,7 +523,7 @@ - /*crystalhd_delete_elem_pool(adp); */ - } - --static int __devinit chd_pci_reserve_mem(struct crystalhd_adp *pinfo) -+static int chd_pci_reserve_mem(struct crystalhd_adp *pinfo) - { - struct device *dev = &pinfo->pdev->dev; - int rc; -@@ -582,7 +582,7 @@ - return 0; - } - --static void __devexit chd_pci_release_mem(struct crystalhd_adp *pinfo) -+static void chd_pci_release_mem(struct crystalhd_adp *pinfo) - { - if (!pinfo) - return; -@@ -597,7 +597,7 @@ - } - - --static void __devexit chd_dec_pci_remove(struct pci_dev *pdev) -+static void chd_dec_pci_remove(struct pci_dev *pdev) - { - struct crystalhd_adp *pinfo; - BC_STATUS sts = BC_STS_SUCCESS; -@@ -625,7 +625,7 @@ - g_adp_info = NULL; - } - --static int __devinit chd_dec_pci_probe(struct pci_dev *pdev, -+static int chd_dec_pci_probe(struct pci_dev *pdev, - const struct pci_device_id *entry) - { - struct device *dev = &pdev->dev; -@@ -815,7 +815,7 @@ - static struct pci_driver bc_chd_driver = { - .name = "crystalhd", - .probe = chd_dec_pci_probe, -- .remove = __devexit_p(chd_dec_pci_remove), -+ .remove = chd_dec_pci_remove, - .id_table = chd_dec_pci_id_table, - .suspend = chd_dec_pci_suspend, - .resume = chd_dec_pci_resume diff --git a/source/xmultimedia/crystalhd/kernel-module-headers.patch b/source/xmultimedia/crystalhd/kernel-module-headers.patch deleted file mode 100644 index 1b25f25..0000000 --- a/source/xmultimedia/crystalhd/kernel-module-headers.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -ur a/driver/linux/crystalhd_hw.h b/driver/linux/crystalhd_hw.h ---- a/driver/linux/crystalhd_hw.h 2012-05-23 00:35:50.387916633 -0500 -+++ b/driver/linux/crystalhd_hw.h 2012-05-23 00:42:37.071901497 -0500 -@@ -30,6 +30,7 @@ - - #include <linux/device.h> - #include <linux/version.h> -+#include <linux/delay.h> - #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 24) - #include <linux/semaphore.h> - #else -diff -ur a/driver/linux/crystalhd_lnx.h b/driver/linux/crystalhd_lnx.h ---- a/driver/linux/crystalhd_lnx.h 2012-05-23 00:35:50.387916633 -0500 -+++ b/driver/linux/crystalhd_lnx.h 2012-05-23 00:41:17.408904475 -0500 -@@ -45,7 +45,6 @@ - #include <linux/io.h> - #include <asm/irq.h> - #include <asm/pgtable.h> --#include <asm/system.h> - #include <linux/uaccess.h> - - #include "crystalhd_cmds.h" -diff -ur a/driver/linux/crystalhd_misc.h b/driver/linux/crystalhd_misc.h ---- a/driver/linux/crystalhd_misc.h 2012-05-23 00:35:50.387916633 -0500 -+++ b/driver/linux/crystalhd_misc.h 2012-05-23 00:41:17.410904475 -0500 -@@ -35,7 +35,6 @@ - #include <linux/ioctl.h> - #include <linux/dma-mapping.h> - #include <linux/sched.h> --#include <asm/system.h> - #include "bc_dts_glob_lnx.h" - #include "crystalhd_hw.h" - diff --git a/source/xmultimedia/crystalhd/kernel-module-makefile.patch b/source/xmultimedia/crystalhd/kernel-module-makefile.patch deleted file mode 100644 index b416345..0000000 --- a/source/xmultimedia/crystalhd/kernel-module-makefile.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -ur a/driver/linux/Makefile.in b/driver/linux/Makefile.in ---- a/driver/linux/Makefile.in 2012-05-23 00:35:50.387916633 -0500 -+++ b/driver/linux/Makefile.in 2012-05-23 00:53:38.517876921 -0500 -@@ -30,15 +30,10 @@ - $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules - - install: -- if [ -e "/lib/udev/rules.d" ] ; then cp -f 20-crystalhd.rules /lib/udev/rules.d/ ; fi -- if [ -e "/etc/udev/rules.d" ] ; then cp -f 20-crystalhd.rules /etc/udev/rules.d/ ; fi -- if [ -d "/lib/modules/$(shell uname -r)/kernel/drivers/staging/crystalhd" ] ; \ -- then install -m 0644 crystalhd.ko /lib/modules/$(shell uname -r)/kernel/drivers/staging/crystalhd/ ; \ -- else \ -- install -d /lib/modules/$(shell uname -r)/kernel/drivers/video/broadcom ; \ -- install -m 0644 crystalhd.ko /lib/modules/$(shell uname -r)/kernel/drivers/video/broadcom ; \ -- fi -- /sbin/depmod -a -+ install -d $(DESTDIR)/lib/udev/rules.d -+ install -m 0644 20-crystalhd.rules $(DESTDIR)/lib/udev/rules.d -+ install -d $(DESTDIR)/lib/modules/$(shell uname -r)/kernel/drivers/video/broadcom -+ install -m 0644 crystalhd.ko $(DESTDIR)/lib/modules/$(shell uname -r)/kernel/drivers/video/broadcom - - clean: - rm -f *.map *.list *.o *.ko crystalhd.mod.c $(OBJ) diff --git a/source/xmultimedia/crystalhd/kernel-module-udev.patch b/source/xmultimedia/crystalhd/kernel-module-udev.patch deleted file mode 100644 index f0e2cfd..0000000 --- a/source/xmultimedia/crystalhd/kernel-module-udev.patch +++ /dev/null @@ -1,6 +0,0 @@ -diff -ur a/driver/linux/20-crystalhd.rules b/driver/linux/20-crystalhd.rules ---- a/driver/linux/20-crystalhd.rules 2011-03-14 15:02:54.000000000 -0500 -+++ b/driver/linux/20-crystalhd.rules 2012-05-23 12:18:07.496349951 -0500 -@@ -1 +1 @@ --KERNEL=="crystalhd", MODE="0666" -+KERNEL=="crystalhd", MODE="0660", GROUP="video" diff --git a/source/xmultimedia/crystalhd/kernel4x.patch b/source/xmultimedia/crystalhd/kernel4x.patch deleted file mode 100644 index e28ce5c..0000000 --- a/source/xmultimedia/crystalhd/kernel4x.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 536003a1623e9bae8f2eca2d0a6fef66bea3a7fb Mon Sep 17 00:00:00 2001 -From: marlemion <[email protected]> -Date: Tue, 1 Sep 2015 19:14:49 +0200 -Subject: [PATCH] Making it compile for kernel >4.0 - ---- - driver/linux/crystalhd_lnx.c | 14 -------------- - 1 file changed, 14 deletions(-) - -diff --git a/driver/linux/crystalhd_lnx.c b/driver/linux/crystalhd_lnx.c -index ea5587a..ceb5c18 100644 ---- a/driver/linux/crystalhd_lnx.c -+++ b/driver/linux/crystalhd_lnx.c -@@ -537,13 +537,6 @@ static int __init chd_pci_reserve_mem(struct crystalhd_adp *pinfo) - dev_dbg(dev, "bar0:0x%x-0x%08x bar2:0x%x-0x%08x\n", - bar0, i2o_len, bar2, mem_len); - -- /* bar-0 */ -- rc = check_mem_region(bar0, i2o_len); -- if (rc) { -- printk(KERN_ERR "No valid mem region...\n"); -- return -ENOMEM; -- } -- - pinfo->i2o_addr = ioremap_nocache(bar0, i2o_len); - if (!pinfo->i2o_addr) { - printk(KERN_ERR "Failed to remap i2o region...\n"); -@@ -553,13 +546,6 @@ static int __init chd_pci_reserve_mem(struct crystalhd_adp *pinfo) - pinfo->pci_i2o_start = bar0; - pinfo->pci_i2o_len = i2o_len; - -- /* bar-2 */ -- rc = check_mem_region(bar2, mem_len); -- if (rc) { -- printk(KERN_ERR "No valid mem region...\n"); -- return -ENOMEM; -- } -- - pinfo->mem_addr = ioremap_nocache(bar2, mem_len); - if (!pinfo->mem_addr) { - printk(KERN_ERR "Failed to remap mem region...\n"); _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
