patchdetect: new element

Detects Munsell ColorChecker in a video image and automatically
white balances and color corrects based on the detected values.
This element is only a demonstration at this stage, it needs to
be separated into two elements.
This commit is contained in:
David Schleef 2011-02-26 00:28:32 -08:00
parent 8961f6a900
commit 0249d55cd8
4 changed files with 1338 additions and 0 deletions

View file

@ -332,6 +332,7 @@ AG_GST_CHECK_PLUGIN(mve)
AG_GST_CHECK_PLUGIN(mxf)
AG_GST_CHECK_PLUGIN(nsf)
AG_GST_CHECK_PLUGIN(nuvdemux)
AG_GST_CHECK_PLUGIN(patchdetect)
AG_GST_CHECK_PLUGIN(pcapparse)
AG_GST_CHECK_PLUGIN(pnm)
AG_GST_CHECK_PLUGIN(qtmux)
@ -1773,6 +1774,7 @@ gst/mve/Makefile
gst/mxf/Makefile
gst/nsf/Makefile
gst/nuvdemux/Makefile
gst/patchdetect/Makefile
gst/pcapparse/Makefile
gst/pnm/Makefile
gst/qtmux/Makefile

View file

@ -0,0 +1,22 @@
plugin_LTLIBRARIES = libgstpatchdetect.la
#ORC_SOURCE=gstpatchdetectorc
#include $(top_srcdir)/common/orc.mak
libgstpatchdetect_la_SOURCES = gstpatchdetect.c
#nodist_libgstpatchdetect_la_SOURCES = $(ORC_NODIST_SOURCES)
libgstpatchdetect_la_CFLAGS = \
$(GST_PLUGINS_BASE_CFLAGS) \
$(GST_CFLAGS) \
$(ORC_CFLAGS)
libgstpatchdetect_la_LIBADD = \
$(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \
$(GST_BASE_LIBS) \
$(GST_LIBS) \
$(ORC_LIBS)
libgstpatchdetect_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstpatchdetect_la_LIBTOOLFLAGS = --tag=disable-static
noinst_HEADERS = gstpatchdetect.h

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,61 @@
/* GStreamer
* Copyright (C) 2011 David Schleef <ds@entropywave.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef _GST_PATCHDETECT_H_
#define _GST_PATCHDETECT_H_
#include <gst/base/gstbasetransform.h>
G_BEGIN_DECLS
#define GST_TYPE_PATCHDETECT (gst_patchdetect_get_type())
#define GST_PATCHDETECT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PATCHDETECT,GstPatchdetect))
#define GST_PATCHDETECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PATCHDETECT,GstPatchdetectClass))
#define GST_IS_PATCHDETECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PATCHDETECT))
#define GST_IS_PATCHDETECT_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PATCHDETECT))
typedef struct _GstPatchdetect GstPatchdetect;
typedef struct _GstPatchdetectClass GstPatchdetectClass;
struct _GstPatchdetect
{
GstBaseTransform base_patchdetect;
GstPad *sinkpad;
GstPad *srcpad;
GstVideoFormat format;
int width;
int height;
int t;
int valid;
double by[10], bu[10], bv[10];
};
struct _GstPatchdetectClass
{
GstBaseTransformClass base_patchdetect_class;
};
GType gst_patchdetect_get_type (void);
G_END_DECLS
#endif