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
;
54 struct watch_bus_data
{
60 struct existing_new_pad_data
{
64 } existing_new_pad_data
;
65 struct query_function_data
{
70 } query_function_data
;
71 struct activate_mode_data
{
78 struct no_more_pads_data
{
79 GstElement
*decodebin
;
82 struct request_buffer_src_data
{
89 } request_buffer_src_data
;
90 struct event_src_data
{
96 struct event_sink_data
{
102 struct got_data_sink_data
{
107 } got_data_sink_data
;
108 struct got_data_data
{
114 struct removed_decoded_pad_data
{
118 } removed_decoded_pad_data
;
119 struct autoplug_blacklist_data
{
123 GstElementFactory
*fact
;
125 GstAutoplugSelectResult ret
;
126 } autoplug_blacklist_data
;
127 struct unknown_type_data
{
133 struct release_sample_data
{
135 } release_sample_data
;
136 struct transform_pad_added_data
{
140 } transform_pad_added_data
;
141 struct query_sink_data
{
150 pthread_mutex_t lock
;
155 extern pthread_mutex_t cb_list_lock DECLSPEC_HIDDEN
;
156 extern pthread_cond_t cb_list_cond DECLSPEC_HIDDEN
;
157 extern struct list cb_list DECLSPEC_HIDDEN
;
158 void CALLBACK
perform_cb(TP_CALLBACK_INSTANCE
*instance
, void *user
) DECLSPEC_HIDDEN
;
159 BOOL
is_wine_thread(void) DECLSPEC_HIDDEN
;
160 void mark_wine_thread(void) DECLSPEC_HIDDEN
;
162 GstBusSyncReply
watch_bus_wrapper(GstBus
*bus
, GstMessage
*msg
, gpointer user
) DECLSPEC_HIDDEN
;
163 void existing_new_pad_wrapper(GstElement
*bin
, GstPad
*pad
, gpointer user
) DECLSPEC_HIDDEN
;
164 gboolean
query_function_wrapper(GstPad
*pad
, GstObject
*parent
, GstQuery
*query
) DECLSPEC_HIDDEN
;
165 gboolean
activate_mode_wrapper(GstPad
*pad
, GstObject
*parent
, GstPadMode mode
, gboolean activate
) DECLSPEC_HIDDEN
;
166 void no_more_pads_wrapper(GstElement
*decodebin
, gpointer user
) DECLSPEC_HIDDEN
;
167 GstFlowReturn
request_buffer_src_wrapper(GstPad
*pad
, GstObject
*parent
, guint64 ofs
, guint len
, GstBuffer
**buf
) DECLSPEC_HIDDEN
;
168 gboolean
event_src_wrapper(GstPad
*pad
, GstObject
*parent
, GstEvent
*event
) DECLSPEC_HIDDEN
;
169 gboolean
event_sink_wrapper(GstPad
*pad
, GstObject
*parent
, GstEvent
*event
) DECLSPEC_HIDDEN
;
170 GstFlowReturn
got_data_sink_wrapper(GstPad
*pad
, GstObject
*parent
, GstBuffer
*buf
) DECLSPEC_HIDDEN
;
171 GstFlowReturn
got_data_wrapper(GstPad
*pad
, GstObject
*parent
, GstBuffer
*buf
) DECLSPEC_HIDDEN
;
172 void removed_decoded_pad_wrapper(GstElement
*bin
, GstPad
*pad
, gpointer user
) DECLSPEC_HIDDEN
;
173 GstAutoplugSelectResult
autoplug_blacklist_wrapper(GstElement
*bin
, GstPad
*pad
, GstCaps
*caps
, GstElementFactory
*fact
, gpointer user
) DECLSPEC_HIDDEN
;
174 void unknown_type_wrapper(GstElement
*bin
, GstPad
*pad
, GstCaps
*caps
, gpointer user
) DECLSPEC_HIDDEN
;
175 void release_sample_wrapper(gpointer data
) DECLSPEC_HIDDEN
;
176 void Gstreamer_transform_pad_added_wrapper(GstElement
*filter
, GstPad
*pad
, gpointer user
) DECLSPEC_HIDDEN
;
177 gboolean
query_sink_wrapper(GstPad
*pad
, GstObject
*parent
, GstQuery
*query
) DECLSPEC_HIDDEN
;