aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--linden/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/linden/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h b/linden/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h
new file mode 100644
index 0000000..ee7473d
--- /dev/null
+++ b/linden/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h
@@ -0,0 +1,78 @@
1/**
2 * @file llmediaimplgstreamer_syms.h
3 * @brief dynamic GStreamer symbol-grabbing code
4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 *
7 * Copyright (c) 2007-2009, Linden Research, Inc.
8 *
9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab
11 * to you under the terms of the GNU General Public License, version 2.0
12 * ("GPL"), unless you have obtained a separate licensing agreement
13 * ("Other License"), formally executed by you and Linden Lab. Terms of
14 * the GPL can be found in doc/GPL-license.txt in this distribution, or
15 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
16 *
17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at
21 * http://secondlifegrid.net/programs/open_source/licensing/flossexception
22 *
23 * By copying, modifying or distributing this software, you acknowledge
24 * that you have read and understood your obligations described above,
25 * and agree to abide by those obligations.
26 *
27 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
28 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
29 * COMPLETENESS OR PERFORMANCE.
30 * $/LicenseInfo$
31 */
32
33#include "linden_common.h"
34
35#if LL_GSTREAMER010_ENABLED
36
37extern "C" {
38#include <gst/gst.h>
39}
40
41bool grab_gst_syms(std::string gst_dso_name,
42 std::string gst_dso_name_vid);
43void ungrab_gst_syms();
44
45#define LL_GST_SYM(REQ, GSTSYM, RTN, ...) extern RTN (*ll##GSTSYM)(__VA_ARGS__)
46#include "llmediaimplgstreamer_syms_raw.inc"
47#include "llmediaimplgstreamer_syms_rawv.inc"
48#undef LL_GST_SYM
49
50// regrettable hacks to give us better runtime compatibility with older systems
51#define llg_return_if_fail(COND) do{if (!(COND)) return;}while(0)
52#define llg_return_val_if_fail(COND,V) do{if (!(COND)) return V;}while(0)
53
54// regrettable hacks because GStreamer was not designed for runtime loading
55#undef GST_TYPE_MESSAGE
56#define GST_TYPE_MESSAGE (llgst_message_get_type())
57#undef GST_TYPE_OBJECT
58#define GST_TYPE_OBJECT (llgst_object_get_type())
59#undef GST_TYPE_PIPELINE
60#define GST_TYPE_PIPELINE (llgst_pipeline_get_type())
61#undef GST_TYPE_ELEMENT
62#define GST_TYPE_ELEMENT (llgst_element_get_type())
63#undef GST_TYPE_VIDEO_SINK
64#define GST_TYPE_VIDEO_SINK (llgst_video_sink_get_type())
65// more regrettable hacks to stub-out these .h-exposed GStreamer internals
66void ll_gst_debug_register_funcptr(GstDebugFuncPtr func, gchar* ptrname);
67#undef _gst_debug_register_funcptr
68#define _gst_debug_register_funcptr ll_gst_debug_register_funcptr
69GstDebugCategory* ll_gst_debug_category_new(gchar *name, guint color, gchar *description);
70#undef _gst_debug_category_new
71#define _gst_debug_category_new ll_gst_debug_category_new
72#undef __gst_debug_enabled
73#define __gst_debug_enabled (0)
74
75// more hacks
76#define LLGST_MESSAGE_TYPE_NAME(M) (llgst_message_type_get_name(GST_MESSAGE_TYPE(M)))
77
78#endif // LL_GSTREAMER010_ENABLED