Commit e8311270 authored by Andrew Eikum's avatar Andrew Eikum Committed by Alexandre Julliard

winegstreamer: Update to use gstreamer-1.0.

Based on initial work by Rafał Mużyło. Signed-off-by: 's avatarAndrew Eikum <aeikum@codeweavers.com> Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
parent 99894cf3
......@@ -2290,9 +2290,11 @@ Some influential environment variables:
C compiler flags for libpulse, overriding pkg-config
PULSE_LIBS Linker flags for libpulse, overriding pkg-config
GSTREAMER_CFLAGS
C compiler flags for gstreamer-app-0.10, overriding pkg-config
C compiler flags for gstreamer-1.0 gstreamer-video-1.0
gstreamer-audio-1.0, overriding pkg-config
GSTREAMER_LIBS
Linker flags for gstreamer-app-0.10, overriding pkg-config
Linker flags for gstreamer-1.0 gstreamer-video-1.0
gstreamer-audio-1.0, overriding pkg-config
CAPI20_CFLAGS
C compiler flags for capi20, overriding pkg-config
CAPI20_LIBS Linker flags for capi20, overriding pkg-config
......@@ -12591,19 +12593,19 @@ if test "x$with_gstreamer" != "xno"
then
if ${GSTREAMER_CFLAGS:+false} :; then :
if ${PKG_CONFIG+:} false; then :
GSTREAMER_CFLAGS=`$PKG_CONFIG --cflags gstreamer-app-0.10 2>/dev/null`
GSTREAMER_CFLAGS=`$PKG_CONFIG --cflags gstreamer-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 2>/dev/null`
fi
fi
if ${GSTREAMER_LIBS:+false} :; then :
if ${PKG_CONFIG+:} false; then :
GSTREAMER_LIBS=`$PKG_CONFIG --libs gstreamer-app-0.10 2>/dev/null`
GSTREAMER_LIBS=`$PKG_CONFIG --libs gstreamer-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 2>/dev/null`
fi
fi
$as_echo "$as_me:${as_lineno-$LINENO}: gstreamer-app-0.10 cflags: $GSTREAMER_CFLAGS" >&5
$as_echo "$as_me:${as_lineno-$LINENO}: gstreamer-app-0.10 libs: $GSTREAMER_LIBS" >&5
$as_echo "$as_me:${as_lineno-$LINENO}: gstreamer-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 cflags: $GSTREAMER_CFLAGS" >&5
$as_echo "$as_me:${as_lineno-$LINENO}: gstreamer-1.0 gstreamer-video-1.0 gstreamer-audio-1.0 libs: $GSTREAMER_LIBS" >&5
ac_save_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $GSTREAMER_CFLAGS"
ac_gst_incl=""
......@@ -12617,13 +12619,13 @@ ac_gst_incl=""
CPPFLAGS="$ac_save_CPPFLAGS $GSTREAMER_CFLAGS"
ac_fn_c_check_header_mongrel "$LINENO" "gst/gstpad.h" "ac_cv_header_gst_gstpad_h" "$ac_includes_default"
if test "x$ac_cv_header_gst_gstpad_h" = xyes; then :
ac_fn_c_check_header_mongrel "$LINENO" "gst/app/gstappsink.h" "ac_cv_header_gst_app_gstappsink_h" "$ac_includes_default"
if test "x$ac_cv_header_gst_app_gstappsink_h" = xyes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gint64 defined by gst/app/gstappsink.h is indeed 64-bit" >&5
$as_echo_n "checking whether gint64 defined by gst/app/gstappsink.h is indeed 64-bit... " >&6; }
ac_fn_c_check_header_mongrel "$LINENO" "gst/gst.h" "ac_cv_header_gst_gst_h" "$ac_includes_default"
if test "x$ac_cv_header_gst_gst_h" = xyes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gint64 defined by gst/gst.h is indeed 64-bit" >&5
$as_echo_n "checking whether gint64 defined by gst/gst.h is indeed 64-bit... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <gst/app/gstappsink.h>
#include <gst/gst.h>
int
main ()
{
......@@ -12635,13 +12637,13 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gst_pad_get_caps_reffed in -lgstreamer-0.10" >&5
$as_echo_n "checking for gst_pad_get_caps_reffed in -lgstreamer-0.10... " >&6; }
if ${ac_cv_lib_gstreamer_0_10_gst_pad_get_caps_reffed+:} false; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gst_pad_new in -lgstreamer-1.0" >&5
$as_echo_n "checking for gst_pad_new in -lgstreamer-1.0... " >&6; }
if ${ac_cv_lib_gstreamer_1_0_gst_pad_new+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgstreamer-0.10 $LIBS"
LIBS="-lgstreamer-1.0 $GSTREAMER_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
......@@ -12651,69 +12653,30 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
#ifdef __cplusplus
extern "C"
#endif
char gst_pad_get_caps_reffed ();
char gst_pad_new ();
int
main ()
{
return gst_pad_get_caps_reffed ();
return gst_pad_new ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_gstreamer_0_10_gst_pad_get_caps_reffed=yes
ac_cv_lib_gstreamer_1_0_gst_pad_new=yes
else
ac_cv_lib_gstreamer_0_10_gst_pad_get_caps_reffed=no
ac_cv_lib_gstreamer_1_0_gst_pad_new=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gstreamer_0_10_gst_pad_get_caps_reffed" >&5
$as_echo "$ac_cv_lib_gstreamer_0_10_gst_pad_get_caps_reffed" >&6; }
if test "x$ac_cv_lib_gstreamer_0_10_gst_pad_get_caps_reffed" = xyes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gst_app_buffer_new in -lgstapp-0.10" >&5
$as_echo_n "checking for gst_app_buffer_new in -lgstapp-0.10... " >&6; }
if ${ac_cv_lib_gstapp_0_10_gst_app_buffer_new+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgstapp-0.10 $GSTREAMER_LIBS $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char gst_app_buffer_new ();
int
main ()
{
return gst_app_buffer_new ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_gstapp_0_10_gst_app_buffer_new=yes
else
ac_cv_lib_gstapp_0_10_gst_app_buffer_new=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gstapp_0_10_gst_app_buffer_new" >&5
$as_echo "$ac_cv_lib_gstapp_0_10_gst_app_buffer_new" >&6; }
if test "x$ac_cv_lib_gstapp_0_10_gst_app_buffer_new" = xyes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gstreamer_1_0_gst_pad_new" >&5
$as_echo "$ac_cv_lib_gstreamer_1_0_gst_pad_new" >&6; }
if test "x$ac_cv_lib_gstreamer_1_0_gst_pad_new" = xyes; then :
:
fi
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
......@@ -12732,15 +12695,15 @@ test -z "$GSTREAMER_CFLAGS" || GSTREAMER_CFLAGS=`echo " $GSTREAMER_CFLAGS" | sed
test -z "$GSTREAMER_LIBS" || GSTREAMER_LIBS=`echo " $GSTREAMER_LIBS" | sed 's/ -L\([^/]\)/ -L\$(top_builddir)\/\1/g'`
fi
if test "x$ac_cv_lib_gstapp_0_10_gst_app_buffer_new" != xyes -a "x$ac_cv_header_QuickTime_ImageCompression_h" != xyes; then :
if test "x$ac_cv_lib_gstreamer_1_0_gst_pad_new" != xyes -a "x$ac_cv_header_QuickTime_ImageCompression_h" != xyes; then :
case "x$with_gstreamer" in
x) as_fn_append wine_notices "|gstreamer-0.10 base plugins ${notice_platform}development files not found, gstreamer support disabled" ;;
x) as_fn_append wine_notices "|gstreamer-1.0 base plugins ${notice_platform}development files not found, gstreamer support disabled" ;;
xno) ;;
*) as_fn_error $? "gstreamer-0.10 base plugins ${notice_platform}development files not found, gstreamer support disabled
*) as_fn_error $? "gstreamer-1.0 base plugins ${notice_platform}development files not found, gstreamer support disabled
This is an error since --with-gstreamer was requested." "$LINENO" 5 ;;
esac
fi
test "x$ac_cv_lib_gstapp_0_10_gst_app_buffer_new" = xyes || enable_winegstreamer=${enable_winegstreamer:-no}
test "x$ac_cv_lib_gstreamer_1_0_gst_pad_new" = xyes || enable_winegstreamer=${enable_winegstreamer:-no}
ALSA_LIBS=""
......
......@@ -1460,7 +1460,7 @@ test -n "$PULSE_LIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no}
dnl **** Check for gstreamer ****
if test "x$with_gstreamer" != "xno"
then
WINE_PACKAGE_FLAGS(GSTREAMER,[gstreamer-app-0.10],,,,
WINE_PACKAGE_FLAGS(GSTREAMER,[gstreamer-1.0 gstreamer-video-1.0 gstreamer-audio-1.0],,,,
[ac_gst_incl=""
for i in $GSTREAMER_CFLAGS
do
......@@ -1471,19 +1471,18 @@ then
GSTREAMER_CFLAGS=$ac_gst_incl
CPPFLAGS="$ac_save_CPPFLAGS $GSTREAMER_CFLAGS"
AC_CHECK_HEADER([gst/gstpad.h],
[AC_CHECK_HEADER([gst/app/gstappsink.h],
[AC_MSG_CHECKING([whether gint64 defined by gst/app/gstappsink.h is indeed 64-bit])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <gst/app/gstappsink.h>]],
[AC_CHECK_HEADER([gst/gst.h],
[AC_MSG_CHECKING([whether gint64 defined by gst/gst.h is indeed 64-bit])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <gst/gst.h>]],
[[static int a[sizeof(gint64) > 4 ? 1 : -1]; if (a[0]) return 0;]])],
[AC_MSG_RESULT([yes])
AC_CHECK_LIB(gstreamer-0.10,gst_pad_get_caps_reffed,
[AC_CHECK_LIB(gstapp-0.10,gst_app_buffer_new,[:],,[$GSTREAMER_LIBS])])],
AC_CHECK_LIB(gstreamer-1.0,gst_pad_new,[:],,[$GSTREAMER_LIBS])],
[AC_MSG_RESULT([no])])])],
[GSTREAMER_CFLAGS=""])])
fi
WINE_NOTICE_WITH(gstreamer,[test "x$ac_cv_lib_gstapp_0_10_gst_app_buffer_new" != xyes -a "x$ac_cv_header_QuickTime_ImageCompression_h" != xyes],
[gstreamer-0.10 base plugins ${notice_platform}development files not found, gstreamer support disabled])
test "x$ac_cv_lib_gstapp_0_10_gst_app_buffer_new" = xyes || enable_winegstreamer=${enable_winegstreamer:-no}
WINE_NOTICE_WITH(gstreamer,[test "x$ac_cv_lib_gstreamer_1_0_gst_pad_new" != xyes -a "x$ac_cv_header_QuickTime_ImageCompression_h" != xyes],
[gstreamer-1.0 base plugins ${notice_platform}development files not found, gstreamer support disabled])
test "x$ac_cv_lib_gstreamer_1_0_gst_pad_new" = xyes || enable_winegstreamer=${enable_winegstreamer:-no}
dnl **** Check for ALSA 1.x ****
AC_SUBST(ALSA_LIBS,"")
......
......@@ -18,10 +18,7 @@
#include "config.h"
#include <gst/app/gstappsink.h>
#include <gst/app/gstappsrc.h>
#include <gst/app/gstappbuffer.h>
#include <gst/gstutils.h>
#include <gst/gst.h>
#include "wine/list.h"
......@@ -88,35 +85,23 @@ GstBusSyncReply watch_bus_wrapper(GstBus *bus, GstMessage *msg, gpointer user)
return cbdata.u.watch_bus_data.ret;
}
void existing_new_pad_wrapper(GstElement *bin, GstPad *pad, gboolean last,
gpointer user)
void existing_new_pad_wrapper(GstElement *bin, GstPad *pad, gpointer user)
{
struct cb_data cbdata = { EXISTING_NEW_PAD };
cbdata.u.existing_new_pad_data.bin = bin;
cbdata.u.existing_new_pad_data.pad = pad;
cbdata.u.existing_new_pad_data.last = last;
cbdata.u.existing_new_pad_data.user = user;
call_cb(&cbdata);
}
gboolean check_get_range_wrapper(GstPad *pad)
{
struct cb_data cbdata = { CHECK_GET_RANGE };
cbdata.u.check_get_range_data.pad = pad;
call_cb(&cbdata);
return cbdata.u.check_get_range_data.ret;
}
gboolean query_function_wrapper(GstPad *pad, GstQuery *query)
gboolean query_function_wrapper(GstPad *pad, GstObject *parent, GstQuery *query)
{
struct cb_data cbdata = { QUERY_FUNCTION };
cbdata.u.query_function_data.pad = pad;
cbdata.u.query_function_data.parent = parent;
cbdata.u.query_function_data.query = query;
call_cb(&cbdata);
......@@ -124,16 +109,18 @@ gboolean query_function_wrapper(GstPad *pad, GstQuery *query)
return cbdata.u.query_function_data.ret;
}
gboolean activate_push_wrapper(GstPad *pad, gboolean activate)
gboolean activate_mode_wrapper(GstPad *pad, GstObject *parent, GstPadMode mode, gboolean activate)
{
struct cb_data cbdata = { ACTIVATE_PUSH };
struct cb_data cbdata = { ACTIVATE_MODE };
cbdata.u.activate_push_data.pad = pad;
cbdata.u.activate_push_data.activate = activate;
cbdata.u.activate_mode_data.pad = pad;
cbdata.u.activate_mode_data.parent = parent;
cbdata.u.activate_mode_data.mode = mode;
cbdata.u.activate_mode_data.activate = activate;
call_cb(&cbdata);
return cbdata.u.activate_push_data.ret;
return cbdata.u.activate_mode_data.ret;
}
void no_more_pads_wrapper(GstElement *decodebin, gpointer user)
......@@ -146,12 +133,13 @@ void no_more_pads_wrapper(GstElement *decodebin, gpointer user)
call_cb(&cbdata);
}
GstFlowReturn request_buffer_src_wrapper(GstPad *pad, guint64 ofs, guint len,
GstFlowReturn request_buffer_src_wrapper(GstPad *pad, GstObject *parent, guint64 ofs, guint len,
GstBuffer **buf)
{
struct cb_data cbdata = { REQUEST_BUFFER_SRC };
cbdata.u.request_buffer_src_data.pad = pad;
cbdata.u.request_buffer_src_data.parent = parent;
cbdata.u.request_buffer_src_data.ofs = ofs;
cbdata.u.request_buffer_src_data.len = len;
cbdata.u.request_buffer_src_data.buf = buf;
......@@ -161,11 +149,12 @@ GstFlowReturn request_buffer_src_wrapper(GstPad *pad, guint64 ofs, guint len,
return cbdata.u.request_buffer_src_data.ret;
}
gboolean event_src_wrapper(GstPad *pad, GstEvent *event)
gboolean event_src_wrapper(GstPad *pad, GstObject *parent, GstEvent *event)
{
struct cb_data cbdata = { EVENT_SRC };
cbdata.u.event_src_data.pad = pad;
cbdata.u.event_src_data.parent = parent;
cbdata.u.event_src_data.event = event;
call_cb(&cbdata);
......@@ -173,11 +162,12 @@ gboolean event_src_wrapper(GstPad *pad, GstEvent *event)
return cbdata.u.event_src_data.ret;
}
gboolean event_sink_wrapper(GstPad *pad, GstEvent *event)
gboolean event_sink_wrapper(GstPad *pad, GstObject *parent, GstEvent *event)
{
struct cb_data cbdata = { EVENT_SINK };
cbdata.u.event_sink_data.pad = pad;
cbdata.u.event_sink_data.parent = parent;
cbdata.u.event_sink_data.event = event;
call_cb(&cbdata);
......@@ -185,22 +175,6 @@ gboolean event_sink_wrapper(GstPad *pad, GstEvent *event)
return cbdata.u.event_sink_data.ret;
}
GstFlowReturn request_buffer_sink_wrapper(GstPad *pad, guint64 ofs, guint size,
GstCaps *caps, GstBuffer **buf)
{
struct cb_data cbdata = { REQUEST_BUFFER_SINK };
cbdata.u.request_buffer_sink_data.pad = pad;
cbdata.u.request_buffer_sink_data.ofs = ofs;
cbdata.u.request_buffer_sink_data.size = size;
cbdata.u.request_buffer_sink_data.caps = caps;
cbdata.u.request_buffer_sink_data.buf = buf;
call_cb(&cbdata);
return cbdata.u.request_buffer_sink_data.ret;
}
gboolean accept_caps_sink_wrapper(GstPad *pad, GstCaps *caps)
{
struct cb_data cbdata = { ACCEPT_CAPS_SINK };
......@@ -225,11 +199,12 @@ gboolean setcaps_sink_wrapper(GstPad *pad, GstCaps *caps)
return cbdata.u.setcaps_sink_data.ret;
}
GstFlowReturn got_data_sink_wrapper(GstPad *pad, GstBuffer *buf)
GstFlowReturn got_data_sink_wrapper(GstPad *pad, GstObject *parent, GstBuffer *buf)
{
struct cb_data cbdata = { GOT_DATA_SINK };
cbdata.u.got_data_sink_data.pad = pad;
cbdata.u.got_data_sink_data.parent = parent;
cbdata.u.got_data_sink_data.buf = buf;
call_cb(&cbdata);
......@@ -237,11 +212,12 @@ GstFlowReturn got_data_sink_wrapper(GstPad *pad, GstBuffer *buf)
return cbdata.u.got_data_sink_data.ret;
}
GstFlowReturn got_data_wrapper(GstPad *pad, GstBuffer *buf)
GstFlowReturn got_data_wrapper(GstPad *pad, GstObject *parent, GstBuffer *buf)
{
struct cb_data cbdata = { GOT_DATA };
cbdata.u.got_data_data.pad = pad;
cbdata.u.got_data_data.parent = parent;
cbdata.u.got_data_data.buf = buf;
call_cb(&cbdata);
......@@ -249,22 +225,6 @@ GstFlowReturn got_data_wrapper(GstPad *pad, GstBuffer *buf)
return cbdata.u.got_data_data.ret;
}
GstFlowReturn request_buffer_wrapper(GstPad *pad, guint64 ofs, guint size,
GstCaps *caps, GstBuffer **buf)
{
struct cb_data cbdata = { REQUEST_BUFFER };
cbdata.u.request_buffer_data.pad = pad;
cbdata.u.request_buffer_data.ofs = ofs;
cbdata.u.request_buffer_data.size = size;
cbdata.u.request_buffer_data.caps = caps;
cbdata.u.request_buffer_data.buf = buf;
call_cb(&cbdata);
return cbdata.u.request_buffer_data.ret;
}
void removed_decoded_pad_wrapper(GstElement *bin, GstPad *pad, gpointer user)
{
struct cb_data cbdata = { REMOVED_DECODED_PAD };
......@@ -323,3 +283,14 @@ void Gstreamer_transform_pad_added_wrapper(GstElement *filter, GstPad *pad, gpoi
call_cb(&cbdata);
}
gboolean query_sink_wrapper(GstPad *pad, GstObject *parent, GstQuery *query)
{
struct cb_data cbdata = { QUERY_SINK,
{ .query_sink_data = {pad, parent, query} }
};
call_cb(&cbdata);
return cbdata.u.query_sink_data.ret;
}
......@@ -32,24 +32,22 @@ typedef enum {
enum CB_TYPE {
WATCH_BUS,
EXISTING_NEW_PAD,
CHECK_GET_RANGE,
QUERY_FUNCTION,
ACTIVATE_PUSH,
ACTIVATE_MODE,
NO_MORE_PADS,
REQUEST_BUFFER_SRC,
EVENT_SRC,
EVENT_SINK,
REQUEST_BUFFER_SINK,
ACCEPT_CAPS_SINK,
SETCAPS_SINK,
GOT_DATA_SINK,
GOT_DATA,
REQUEST_BUFFER,
REMOVED_DECODED_PAD,
AUTOPLUG_BLACKLIST,
UNKNOWN_TYPE,
RELEASE_SAMPLE,
TRANSFORM_PAD_ADDED
TRANSFORM_PAD_ADDED,
QUERY_SINK
};
struct cb_data {
......@@ -64,29 +62,28 @@ struct cb_data {
struct existing_new_pad_data {
GstElement *bin;
GstPad *pad;
gboolean last;
gpointer user;
} existing_new_pad_data;
struct check_get_range_data {
GstPad *pad;
gboolean ret;
} check_get_range_data;
struct query_function_data {
GstPad *pad;
GstObject *parent;
GstQuery *query;
gboolean ret;
} query_function_data;
struct activate_push_data {
struct activate_mode_data {
GstPad *pad;
GstObject *parent;
GstPadMode mode;
gboolean activate;
gboolean ret;
} activate_push_data;
} activate_mode_data;
struct no_more_pads_data {
GstElement *decodebin;
gpointer user;
} no_more_pads_data;
struct request_buffer_src_data {
GstPad *pad;
GstObject *parent;
guint64 ofs;
guint len;
GstBuffer **buf;
......@@ -94,22 +91,16 @@ struct cb_data {
} request_buffer_src_data;
struct event_src_data {
GstPad *pad;
GstObject *parent;
GstEvent *event;
gboolean ret;
} event_src_data;
struct event_sink_data {
GstPad *pad;
GstObject *parent;
GstEvent *event;
gboolean ret;
} event_sink_data;
struct request_buffer_sink_data {
GstPad *pad;
guint64 ofs;
guint size;
GstCaps *caps;
GstBuffer **buf;
GstFlowReturn ret;
} request_buffer_sink_data;
struct accept_caps_sink_data {
GstPad *pad;
GstCaps *caps;
......@@ -122,22 +113,16 @@ struct cb_data {
} setcaps_sink_data;
struct got_data_sink_data {
GstPad *pad;
GstObject *parent;
GstBuffer *buf;
GstFlowReturn ret;
} got_data_sink_data;
struct got_data_data {
GstPad *pad;
GstObject *parent;
GstBuffer *buf;
GstFlowReturn ret;
} got_data_data;
struct request_buffer_data {
GstPad *pad;
guint64 ofs;
guint size;
GstCaps *caps;
GstBuffer **buf;
GstFlowReturn ret;
} request_buffer_data;
struct removed_decoded_pad_data {
GstElement *bin;
GstPad *pad;
......@@ -165,6 +150,12 @@ struct cb_data {
GstPad *pad;
gpointer user;
} transform_pad_added_data;
struct query_sink_data {
GstPad *pad;
GstObject *parent;
GstQuery *query;
gboolean ret;
} query_sink_data;
} u;
int finished;
......@@ -181,24 +172,22 @@ BOOL is_wine_thread(void) DECLSPEC_HIDDEN;
void mark_wine_thread(void) DECLSPEC_HIDDEN;
GstBusSyncReply watch_bus_wrapper(GstBus *bus, GstMessage *msg, gpointer user) DECLSPEC_HIDDEN;
void existing_new_pad_wrapper(GstElement *bin, GstPad *pad, gboolean last, gpointer user) DECLSPEC_HIDDEN;
gboolean check_get_range_wrapper(GstPad *pad) DECLSPEC_HIDDEN;
gboolean query_function_wrapper(GstPad *pad, GstQuery *query) DECLSPEC_HIDDEN;
gboolean activate_push_wrapper(GstPad *pad, gboolean activate) DECLSPEC_HIDDEN;
void existing_new_pad_wrapper(GstElement *bin, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
gboolean query_function_wrapper(GstPad *pad, GstObject *parent, GstQuery *query) DECLSPEC_HIDDEN;
gboolean activate_mode_wrapper(GstPad *pad, GstObject *parent, GstPadMode mode, gboolean activate) DECLSPEC_HIDDEN;
void no_more_pads_wrapper(GstElement *decodebin, gpointer user) DECLSPEC_HIDDEN;
GstFlowReturn request_buffer_src_wrapper(GstPad *pad, guint64 ofs, guint len, GstBuffer **buf) DECLSPEC_HIDDEN;
gboolean event_src_wrapper(GstPad *pad, GstEvent *event) DECLSPEC_HIDDEN;
gboolean event_sink_wrapper(GstPad *pad, GstEvent *event) DECLSPEC_HIDDEN;
GstFlowReturn request_buffer_sink_wrapper(GstPad *pad, guint64 ofs, guint size, GstCaps *caps, GstBuffer **buf) DECLSPEC_HIDDEN;
GstFlowReturn request_buffer_src_wrapper(GstPad *pad, GstObject *parent, guint64 ofs, guint len, GstBuffer **buf) DECLSPEC_HIDDEN;
gboolean event_src_wrapper(GstPad *pad, GstObject *parent, GstEvent *event) DECLSPEC_HIDDEN;
gboolean event_sink_wrapper(GstPad *pad, GstObject *parent, GstEvent *event) DECLSPEC_HIDDEN;
gboolean accept_caps_sink_wrapper(GstPad *pad, GstCaps *caps) DECLSPEC_HIDDEN;
gboolean setcaps_sink_wrapper(GstPad *pad, GstCaps *caps) DECLSPEC_HIDDEN;
GstFlowReturn got_data_sink_wrapper(GstPad *pad, GstBuffer *buf) DECLSPEC_HIDDEN;
GstFlowReturn got_data_wrapper(GstPad *pad, GstBuffer *buf) DECLSPEC_HIDDEN;
GstFlowReturn request_buffer_wrapper(GstPad *pad, guint64 ofs, guint size, GstCaps *caps, GstBuffer **buf) DECLSPEC_HIDDEN;
GstFlowReturn got_data_sink_wrapper(GstPad *pad, GstObject *parent, GstBuffer *buf) DECLSPEC_HIDDEN;
GstFlowReturn got_data_wrapper(GstPad *pad, GstObject *parent, GstBuffer *buf) DECLSPEC_HIDDEN;
void removed_decoded_pad_wrapper(GstElement *bin, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
GstAutoplugSelectResult autoplug_blacklist_wrapper(GstElement *bin, GstPad *pad, GstCaps *caps, GstElementFactory *fact, gpointer user) DECLSPEC_HIDDEN;
void unknown_type_wrapper(GstElement *bin, GstPad *pad, GstCaps *caps, gpointer user) DECLSPEC_HIDDEN;
void release_sample_wrapper(gpointer data) DECLSPEC_HIDDEN;
void Gstreamer_transform_pad_added_wrapper(GstElement *filter, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
gboolean query_sink_wrapper(GstPad *pad, GstObject *parent, GstQuery *query) DECLSPEC_HIDDEN;
#endif
......@@ -44,10 +44,12 @@ IUnknown * CALLBACK Gstreamer_Splitter_create(IUnknown *pUnkOuter, HRESULT *phr)
DWORD Gstreamer_init(void);
GstFlowReturn got_data(GstPad *pad, GstBuffer *buf) DECLSPEC_HIDDEN;
GstFlowReturn got_data(GstPad *pad, GstObject *parent, GstBuffer *buf) DECLSPEC_HIDDEN;
GstFlowReturn request_buffer(GstPad *pad, guint64 ofs, guint size, GstCaps *caps, GstBuffer **buf) DECLSPEC_HIDDEN;
void Gstreamer_transform_pad_added(GstElement *filter, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
void start_dispatch_thread(void) DECLSPEC_HIDDEN;
extern const char *media_quark_string DECLSPEC_HIDDEN;
#endif /* __GST_PRIVATE_INCLUDED__ */
......@@ -22,9 +22,7 @@
#include <stdarg.h>
#include <stdio.h>
#include <gst/app/gstappsink.h>
#include <gst/app/gstappsrc.h>
#include <gst/app/gstappbuffer.h>
#include <gst/gst.h>
#include "windef.h"
#include "winbase.h"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment