summaryrefslogtreecommitdiff
path: root/sys/dshowsrcwrapper/gstdshow.h
diff options
context:
space:
mode:
authorJulien Isorce <julien.isorce@gmail.com>2009-07-21 10:49:37 +0200
committerJulien Isorce <julien.isorce@gmail.com>2009-07-21 10:49:37 +0200
commit30469d45c0a9e3f6f0aa361ef0008e313fd07b3f (patch)
tree515bffbe13c5e606db9e92b35bf19694df7456eb /sys/dshowsrcwrapper/gstdshow.h
parentaf54a9afbad27627216e0b2b1f0a7553c8b18ea6 (diff)
downloadgstreamer-plugins-bad-30469d45c0a9e3f6f0aa361ef0008e313fd07b3f.tar.gz
start refactoring of dshowsrcwrapper
-remove gst-libs/gst/dshow -fakesource is moved from gst-libs/gst/dshow to sys/dshowsrcwrapper -some minor changes (C/C++ check and includes) to make the plugin compile again.
Diffstat (limited to 'sys/dshowsrcwrapper/gstdshow.h')
-rwxr-xr-xsys/dshowsrcwrapper/gstdshow.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/sys/dshowsrcwrapper/gstdshow.h b/sys/dshowsrcwrapper/gstdshow.h
new file mode 100755
index 000000000..ec360b324
--- /dev/null
+++ b/sys/dshowsrcwrapper/gstdshow.h
@@ -0,0 +1,76 @@
+/* GStreamer
+ * Copyright (C) 2007 Sebastien Moutte <sebastien@moutte.net>
+ *
+ * gstdshow.h:
+ *
+ * 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 _GSTDSHOW_
+#define _GSTDSHOW_
+
+#ifdef __cplusplus
+#include <streams.h>
+#endif
+#include <windows.h>
+#include <objbase.h>
+#include <dshow.h>
+#include <Rpc.h>
+
+#include <glib.h>
+
+typedef struct _GstCapturePinMediaType
+{
+ AM_MEDIA_TYPE *mediatype;
+ IPin *capture_pin;
+} GstCapturePinMediaType;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* register fake filters as COM object and as Direct Show filters in the registry */
+HRESULT gst_dshow_register_fakefilters ();
+
+/* free memory of the input pin mediatype */
+void gst_dshow_free_pin_mediatype (gpointer pt);
+
+/* free memory of the input dshow mediatype */
+void gst_dshow_free_mediatype (AM_MEDIA_TYPE *pmt);
+
+/* free the memory of all mediatypes of the input list if pin mediatype */
+void gst_dshow_free_pins_mediatypes (GList *mediatypes);
+
+/* get a pin from directshow filter */
+gboolean gst_dshow_get_pin_from_filter (IBaseFilter *filter, PIN_DIRECTION pindir, IPin **pin);
+
+/* find and return a filter according to the input and output types */
+gboolean gst_dshow_find_filter(CLSID input_majortype, CLSID input_subtype,
+ CLSID output_majortype, CLSID output_subtype,
+ gchar * prefered_filter_name, IBaseFilter **filter);
+
+/* get the dshow device path from device friendly name.
+If friendly name is not set, it will return the first available device */
+gchar *gst_dshow_getdevice_from_devicename (const GUID *device_category, gchar **device_name);
+
+/* show the capture filter property page (generally used to setup the device). the page is modal*/
+gboolean gst_dshow_show_propertypage (IBaseFilter *base_filter);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GSTDSHOW_ */ \ No newline at end of file