2 * Copyright 2015 Andrew Eikum for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #include "wine/list.h"
27 GST_AUTOPLUG_SELECT_TRY
,
28 GST_AUTOPLUG_SELECT_EXPOSE
,
29 GST_AUTOPLUG_SELECT_SKIP
30 } GstAutoplugSelectResult
;
47 BYTESTREAM_WRAPPER_PULL
,
49 BYTESTREAM_PAD_MODE_ACTIVATE
,
50 BYTESTREAM_PAD_EVENT_PROCESS
,
53 MF_SRC_STREAM_REMOVED
,
61 struct watch_bus_data
{
67 struct pad_added_data
{
72 struct query_function_data
{
77 } query_function_data
;
78 struct activate_mode_data
{
85 struct no_more_pads_data
{
89 struct getrange_data
{
97 struct event_src_data
{
103 struct event_sink_data
{
109 struct got_data_sink_data
{
114 } got_data_sink_data
;
115 struct pad_removed_data
{
120 struct autoplug_blacklist_data
{
124 GstElementFactory
*fact
;
126 GstAutoplugSelectResult ret
;
127 } autoplug_blacklist_data
;
128 struct unknown_type_data
{
134 struct query_sink_data
{
143 pthread_mutex_t lock
;
148 void mark_wine_thread(void) DECLSPEC_HIDDEN
;
149 void perform_cb_gstdemux(struct cb_data
*data
) DECLSPEC_HIDDEN
;
150 void perform_cb_media_source(struct cb_data
*data
) DECLSPEC_HIDDEN
;
152 GstBusSyncReply
watch_bus_wrapper(GstBus
*bus
, GstMessage
*msg
, gpointer user
) DECLSPEC_HIDDEN
;
153 void existing_new_pad_wrapper(GstElement
*bin
, GstPad
*pad
, gpointer user
) DECLSPEC_HIDDEN
;
154 gboolean
query_function_wrapper(GstPad
*pad
, GstObject
*parent
, GstQuery
*query
) DECLSPEC_HIDDEN
;
155 gboolean
activate_mode_wrapper(GstPad
*pad
, GstObject
*parent
, GstPadMode mode
, gboolean activate
) DECLSPEC_HIDDEN
;
156 void no_more_pads_wrapper(GstElement
*decodebin
, gpointer user
) DECLSPEC_HIDDEN
;
157 GstFlowReturn
request_buffer_src_wrapper(GstPad
*pad
, GstObject
*parent
, guint64 ofs
, guint len
, GstBuffer
**buf
) DECLSPEC_HIDDEN
;
158 gboolean
event_src_wrapper(GstPad
*pad
, GstObject
*parent
, GstEvent
*event
) DECLSPEC_HIDDEN
;
159 gboolean
event_sink_wrapper(GstPad
*pad
, GstObject
*parent
, GstEvent
*event
) DECLSPEC_HIDDEN
;
160 GstFlowReturn
got_data_sink_wrapper(GstPad
*pad
, GstObject
*parent
, GstBuffer
*buf
) DECLSPEC_HIDDEN
;
161 GstFlowReturn
got_data_wrapper(GstPad
*pad
, GstObject
*parent
, GstBuffer
*buf
) DECLSPEC_HIDDEN
;
162 void removed_decoded_pad_wrapper(GstElement
*bin
, GstPad
*pad
, gpointer user
) DECLSPEC_HIDDEN
;
163 GstAutoplugSelectResult
autoplug_blacklist_wrapper(GstElement
*bin
, GstPad
*pad
, GstCaps
*caps
, GstElementFactory
*fact
, gpointer user
) DECLSPEC_HIDDEN
;
164 void unknown_type_wrapper(GstElement
*bin
, GstPad
*pad
, GstCaps
*caps
, gpointer user
) DECLSPEC_HIDDEN
;
165 void Gstreamer_transform_pad_added_wrapper(GstElement
*filter
, GstPad
*pad
, gpointer user
) DECLSPEC_HIDDEN
;
166 gboolean
query_sink_wrapper(GstPad
*pad
, GstObject
*parent
, GstQuery
*query
) DECLSPEC_HIDDEN
;
167 GstFlowReturn
bytestream_wrapper_pull_wrapper(GstPad
*pad
, GstObject
*parent
, guint64 ofs
, guint len
, GstBuffer
**buf
) DECLSPEC_HIDDEN
;
168 gboolean
bytestream_query_wrapper(GstPad
*pad
, GstObject
*parent
, GstQuery
*query
) DECLSPEC_HIDDEN
;
169 gboolean
bytestream_pad_mode_activate_wrapper(GstPad
*pad
, GstObject
*parent
, GstPadMode mode
, gboolean activate
) DECLSPEC_HIDDEN
;
170 gboolean
bytestream_pad_event_process_wrapper(GstPad
*pad
, GstObject
*parent
, GstEvent
*event
) DECLSPEC_HIDDEN
;
171 GstBusSyncReply
mf_src_bus_watch_wrapper(GstBus
*bus
, GstMessage
*message
, gpointer user
) DECLSPEC_HIDDEN
;
172 void mf_src_stream_added_wrapper(GstElement
*bin
, GstPad
*pad
, gpointer user
) DECLSPEC_HIDDEN
;
173 void mf_src_stream_removed_wrapper(GstElement
*element
, GstPad
*pad
, gpointer user
) DECLSPEC_HIDDEN
;
174 void mf_src_no_more_pads_wrapper(GstElement
*element
, gpointer user
) DECLSPEC_HIDDEN
;