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
;
56 struct watch_bus_data
{
62 struct existing_new_pad_data
{
66 } existing_new_pad_data
;
67 struct query_function_data
{
72 } query_function_data
;
73 struct activate_mode_data
{
80 struct no_more_pads_data
{
81 GstElement
*decodebin
;
84 struct request_buffer_src_data
{
91 } request_buffer_src_data
;
92 struct event_src_data
{
98 struct event_sink_data
{
104 struct accept_caps_sink_data
{
108 } accept_caps_sink_data
;
109 struct setcaps_sink_data
{
114 struct got_data_sink_data
{
119 } got_data_sink_data
;
120 struct got_data_data
{
126 struct removed_decoded_pad_data
{
130 } removed_decoded_pad_data
;
131 struct autoplug_blacklist_data
{
135 GstElementFactory
*fact
;
137 GstAutoplugSelectResult ret
;
138 } autoplug_blacklist_data
;
139 struct unknown_type_data
{
145 struct release_sample_data
{
147 } release_sample_data
;
148 struct transform_pad_added_data
{
152 } transform_pad_added_data
;
153 struct query_sink_data
{
162 pthread_mutex_t lock
;
167 extern pthread_mutex_t cb_list_lock DECLSPEC_HIDDEN
;
168 extern pthread_cond_t cb_list_cond DECLSPEC_HIDDEN
;
169 extern struct list cb_list DECLSPEC_HIDDEN
;
170 void CALLBACK
perform_cb(TP_CALLBACK_INSTANCE
*instance
, void *user
) DECLSPEC_HIDDEN
;
171 BOOL
is_wine_thread(void) DECLSPEC_HIDDEN
;
172 void mark_wine_thread(void) DECLSPEC_HIDDEN
;
174 GstBusSyncReply
watch_bus_wrapper(GstBus
*bus
, GstMessage
*msg
, gpointer user
) DECLSPEC_HIDDEN
;
175 void existing_new_pad_wrapper(GstElement
*bin
, GstPad
*pad
, gpointer user
) DECLSPEC_HIDDEN
;
176 gboolean
query_function_wrapper(GstPad
*pad
, GstObject
*parent
, GstQuery
*query
) DECLSPEC_HIDDEN
;
177 gboolean
activate_mode_wrapper(GstPad
*pad
, GstObject
*parent
, GstPadMode mode
, gboolean activate
) DECLSPEC_HIDDEN
;
178 void no_more_pads_wrapper(GstElement
*decodebin
, gpointer user
) DECLSPEC_HIDDEN
;
179 GstFlowReturn
request_buffer_src_wrapper(GstPad
*pad
, GstObject
*parent
, guint64 ofs
, guint len
, GstBuffer
**buf
) DECLSPEC_HIDDEN
;
180 gboolean
event_src_wrapper(GstPad
*pad
, GstObject
*parent
, GstEvent
*event
) DECLSPEC_HIDDEN
;
181 gboolean
event_sink_wrapper(GstPad
*pad
, GstObject
*parent
, GstEvent
*event
) DECLSPEC_HIDDEN
;
182 gboolean
accept_caps_sink_wrapper(GstPad
*pad
, GstCaps
*caps
) DECLSPEC_HIDDEN
;
183 gboolean
setcaps_sink_wrapper(GstPad
*pad
, GstCaps
*caps
) DECLSPEC_HIDDEN
;
184 GstFlowReturn
got_data_sink_wrapper(GstPad
*pad
, GstObject
*parent
, GstBuffer
*buf
) DECLSPEC_HIDDEN
;
185 GstFlowReturn
got_data_wrapper(GstPad
*pad
, GstObject
*parent
, GstBuffer
*buf
) DECLSPEC_HIDDEN
;
186 void removed_decoded_pad_wrapper(GstElement
*bin
, GstPad
*pad
, gpointer user
) DECLSPEC_HIDDEN
;
187 GstAutoplugSelectResult
autoplug_blacklist_wrapper(GstElement
*bin
, GstPad
*pad
, GstCaps
*caps
, GstElementFactory
*fact
, gpointer user
) DECLSPEC_HIDDEN
;
188 void unknown_type_wrapper(GstElement
*bin
, GstPad
*pad
, GstCaps
*caps
, gpointer user
) DECLSPEC_HIDDEN
;
189 void release_sample_wrapper(gpointer data
) DECLSPEC_HIDDEN
;
190 void Gstreamer_transform_pad_added_wrapper(GstElement
*filter
, GstPad
*pad
, gpointer user
) DECLSPEC_HIDDEN
;
191 gboolean
query_sink_wrapper(GstPad
*pad
, GstObject
*parent
, GstQuery
*query
) DECLSPEC_HIDDEN
;