- version upgrade (rhbz#870611)
- wine mono 0.8
- update pulse patch
- fix midi in winepulse (rhbz#863129)
- fix dependencies for openssl (rhbz#868576)
f38
Andreas Bierfert 12 years ago
parent e4b5c10c28
commit 398eb10909

4
.gitignore vendored

@ -1,4 +1,4 @@
/wine-1.4.tar.bz2 /wine-1.4.tar.bz2
/wine-1.4.tar.bz2.sign /wine-1.4.tar.bz2.sign
/wine-1.5.15.tar.bz2 /wine-1.5.16.tar.bz2
/wine-1.5.15.tar.bz2.sign /wine-1.5.16.tar.bz2.sign

@ -1,2 +1,2 @@
41728374d14d0f13552250c70c0d40d2 wine-1.5.15.tar.bz2 cece715b6ff812e2cd76b7462f3fb582 wine-1.5.16.tar.bz2
6d8a5749f3f7d45340fc9e43e906c238 wine-1.5.15.tar.bz2.sign a087f0703a1778e82a73dfaa729a7aad wine-1.5.16.tar.bz2.sign

@ -1,7 +1,26 @@
diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure diff -uNr wine-1.5.16.orig/configure wine-1.5.16/configure
--- wine-1.5.4.old/configure 2012-05-11 21:08:09.000000000 +0300 --- wine-1.5.16.orig/configure 2012-10-28 11:24:58.288429351 +0100
+++ wine-1.5.4/configure 2012-05-23 12:37:16.166737017 +0300 +++ wine-1.5.16/configure 2012-10-28 11:32:47.643026610 +0100
@@ -629,6 +629,8 @@ @@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Wine 1.5.16.
+# Generated by GNU Autoconf 2.69 for Wine 1.5.15.
#
# Report bugs to <wine-devel@winehq.org>.
#
@@ -580,8 +580,8 @@
# Identity of this package.
PACKAGE_NAME='Wine'
PACKAGE_TARNAME='wine'
-PACKAGE_VERSION='1.5.16'
-PACKAGE_STRING='Wine 1.5.16'
+PACKAGE_VERSION='1.5.15'
+PACKAGE_STRING='Wine 1.5.15'
PACKAGE_BUGREPORT='wine-devel@winehq.org'
PACKAGE_URL='http://www.winehq.org'
@@ -649,6 +649,8 @@
ALSALIBS ALSALIBS
GSTREAMER_INCL GSTREAMER_INCL
GSTREAMER_LIBS GSTREAMER_LIBS
@ -10,7 +29,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
LIBGETTEXTPO LIBGETTEXTPO
ZLIB ZLIB
FREETYPEINCL FREETYPEINCL
@@ -805,6 +807,7 @@ @@ -826,6 +828,7 @@
with_oss with_oss
with_png with_png
with_pthread with_pthread
@ -18,7 +37,25 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
with_sane with_sane
with_tiff with_tiff
with_v4l with_v4l
@@ -1495,6 +1498,7 @@ @@ -1400,7 +1403,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Wine 1.5.16 to adapt to many kinds of systems.
+\`configure' configures Wine 1.5.15 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1469,7 +1472,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Wine 1.5.16:";;
+ short | recursive ) echo "Configuration of Wine 1.5.15:";;
esac
cat <<\_ACEOF
@@ -1516,6 +1519,7 @@
--without-oss do not use the OSS sound support --without-oss do not use the OSS sound support
--without-png do not use PNG --without-png do not use PNG
--without-pthread do not use the pthread library --without-pthread do not use the pthread library
@ -26,7 +63,25 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
--without-sane do not use SANE (scanner support) --without-sane do not use SANE (scanner support)
--without-tiff do not use TIFF --without-tiff do not use TIFF
--without-v4l do not use v4l1 (v4l support) --without-v4l do not use v4l1 (v4l support)
@@ -2679,6 +2683,12 @@ @@ -1616,7 +1620,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Wine configure 1.5.16
+Wine configure 1.5.15
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2134,7 +2138,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Wine $as_me 1.5.16, which was
+It was created by Wine $as_me 1.5.15, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2707,6 +2711,12 @@
fi fi
@ -39,7 +94,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
# Check whether --with-sane was given. # Check whether --with-sane was given.
if test "${with_sane+set}" = set; then : if test "${with_sane+set}" = set; then :
withval=$with_sane; withval=$with_sane;
@@ -10639,6 +10649,87 @@ @@ -10807,6 +10817,87 @@
fi fi
fi fi
@ -127,7 +182,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
if test "x$with_gstreamer" != "xno" if test "x$with_gstreamer" != "xno"
then then
ac_save_CPPFLAGS="$CPPFLAGS" ac_save_CPPFLAGS="$CPPFLAGS"
@@ -11898,12 +11989,13 @@ @@ -12066,12 +12157,13 @@
test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no}
test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no}
@ -143,7 +198,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
then then
as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent."
fi fi
@@ -15430,6 +15522,7 @@ @@ -15832,6 +15924,7 @@
wine_fn_config_dll wineoss.drv enable_wineoss_drv wine_fn_config_dll wineoss.drv enable_wineoss_drv
wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po
wine_fn_config_dll wineps16.drv16 enable_win16 wine_fn_config_dll wineps16.drv16 enable_win16
@ -151,10 +206,28 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure
wine_fn_config_dll wineqtdecoder enable_wineqtdecoder wine_fn_config_dll wineqtdecoder enable_wineqtdecoder
wine_fn_config_dll winequartz.drv enable_winequartz_drv wine_fn_config_dll winequartz.drv enable_winequartz_drv
wine_fn_config_dll winex11.drv enable_winex11_drv wine_fn_config_dll winex11.drv enable_winex11_drv
diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac @@ -16588,7 +16681,7 @@
--- wine-1.5.4.old/configure.ac 2012-05-11 21:08:09.000000000 +0300 # report actual input values of CONFIG_FILES etc. instead of their
+++ wine-1.5.4/configure.ac 2012-05-23 12:38:20.969468598 +0300 # values after options handling.
@@ -74,6 +74,7 @@ ac_log="
-This file was extended by Wine $as_me 1.5.16, which was
+This file was extended by Wine $as_me 1.5.15, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16659,7 +16752,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-Wine config.status 1.5.16
+Wine config.status 1.5.15
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff -uNr wine-1.5.16.orig/configure.ac wine-1.5.16/configure.ac
--- wine-1.5.16.orig/configure.ac 2012-10-28 11:24:58.766394415 +0100
+++ wine-1.5.16/configure.ac 2012-10-28 11:32:49.545887232 +0100
@@ -76,6 +76,7 @@
[if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi]) [if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi])
AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]), AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]),
[if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi]) [if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi])
@ -162,7 +235,7 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac
AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)])) AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)]))
AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]), AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]),
[if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi]) [if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi])
@@ -1482,6 +1483,30 @@ @@ -1512,6 +1513,30 @@
[GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.])
fi fi
@ -193,7 +266,7 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac
dnl **** Check for gstreamer **** dnl **** Check for gstreamer ****
if test "x$with_gstreamer" != "xno" if test "x$with_gstreamer" != "xno"
then then
@@ -1688,13 +1713,14 @@ @@ -1718,13 +1743,14 @@
dnl **** Disable unsupported winmm drivers **** dnl **** Disable unsupported winmm drivers ****
test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no}
test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no}
@ -210,7 +283,7 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac
then then
WINE_WARNING([No sound system was found. Windows applications will be silent.]) WINE_WARNING([No sound system was found. Windows applications will be silent.])
fi fi
@@ -2918,6 +2944,7 @@ @@ -3055,6 +3081,7 @@
WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineoss.drv)
WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) WINE_CONFIG_DLL(wineps.drv,,[install-lib,po])
WINE_CONFIG_DLL(wineps16.drv16,enable_win16) WINE_CONFIG_DLL(wineps16.drv16,enable_win16)
@ -218,21 +291,9 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac
WINE_CONFIG_DLL(wineqtdecoder) WINE_CONFIG_DLL(wineqtdecoder)
WINE_CONFIG_DLL(winequartz.drv) WINE_CONFIG_DLL(winequartz.drv)
WINE_CONFIG_DLL(winex11.drv) WINE_CONFIG_DLL(winex11.drv)
diff -uNr wine-1.5.4.old/dlls/mmdevapi/main.c wine-1.5.4/dlls/mmdevapi/main.c diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/Makefile.in wine-1.5.16/dlls/winepulse.drv/Makefile.in
--- wine-1.5.4.old/dlls/mmdevapi/main.c 2012-05-11 21:08:09.000000000 +0300 --- wine-1.5.16.orig/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100
+++ wine-1.5.4/dlls/mmdevapi/main.c 2012-05-23 12:13:41.597012820 +0300 +++ wine-1.5.16/dlls/winepulse.drv/Makefile.in 2012-10-28 11:31:38.175116035 +0100
@@ -111,7 +111,7 @@
{
static const WCHAR drv_value[] = {'A','u','d','i','o',0};
- static WCHAR default_list[] = {'a','l','s','a',',','o','s','s',',',
+ static WCHAR default_list[] = {'p','u','l','s','e',',','a','l','s','a',',','o','s','s',',',
'c','o','r','e','a','u','d','i','o',0};
DriverFuncs driver;
diff -uNr wine-1.5.4.old/dlls/winepulse.drv/Makefile.in wine-1.5.4/dlls/winepulse.drv/Makefile.in
--- wine-1.5.4.old/dlls/winepulse.drv/Makefile.in 1970-01-01 02:00:00.000000000 +0200
+++ wine-1.5.4/dlls/winepulse.drv/Makefile.in 2012-05-23 12:03:21.068645000 +0300
@@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
+MODULE = winepulse.drv +MODULE = winepulse.drv
+IMPORTS = dxguid uuid winmm user32 advapi32 ole32 +IMPORTS = dxguid uuid winmm user32 advapi32 ole32
@ -243,10 +304,10 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/Makefile.in wine-1.5.4/dlls/winepuls
+ mmdevdrv.c + mmdevdrv.c
+ +
+@MAKE_DLL_RULES@ +@MAKE_DLL_RULES@
diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse.drv/mmdevdrv.c diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/mmdevdrv.c wine-1.5.16/dlls/winepulse.drv/mmdevdrv.c
--- wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 02:00:00.000000000 +0200 --- wine-1.5.16.orig/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100
+++ wine-1.5.4/dlls/winepulse.drv/mmdevdrv.c 2012-05-23 12:03:21.069645000 +0300 +++ wine-1.5.16/dlls/winepulse.drv/mmdevdrv.c 2012-10-28 11:31:38.176115962 +0100
@@ -0,0 +1,3101 @@ @@ -0,0 +1,3098 @@
+/* +/*
+ * Copyright 2011-2012 Maarten Lankhorst + * Copyright 2011-2012 Maarten Lankhorst
+ * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers + * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers
@ -331,7 +392,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ 'W','i','n','e','\\','P','u','l','s','e',0}; + 'W','i','n','e','\\','P','u','l','s','e',0};
+const WCHAR pulse_streamW[] = { 'S','t','r','e','a','m','V','o','l',0 }; +const WCHAR pulse_streamW[] = { 'S','t','r','e','a','m','V','o','l',0 };
+ +
+static GUID pulse_render_guid = +static GUID pulse_render_guid =
+{ 0xfd47d9cc, 0x4218, 0x4135, { 0x9c, 0xe2, 0x0c, 0x19, 0x5c, 0x87, 0x40, 0x5b } }; +{ 0xfd47d9cc, 0x4218, 0x4135, { 0x9c, 0xe2, 0x0c, 0x19, 0x5c, 0x87, 0x40, 0x5b } };
+static GUID pulse_capture_guid = +static GUID pulse_capture_guid =
+{ 0x25da76d0, 0x033c, 0x4235, { 0x90, 0x02, 0x19, 0xf4, 0x88, 0x94, 0xac, 0x6f } }; +{ 0x25da76d0, 0x033c, 0x4235, { 0x90, 0x02, 0x19, 0xf4, 0x88, 0x94, 0xac, 0x6f } };
@ -350,6 +411,8 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ } + }
+ DisableThreadLibraryCalls(dll); + DisableThreadLibraryCalls(dll);
+ } else if (reason == DLL_PROCESS_DETACH) { + } else if (reason == DLL_PROCESS_DETACH) {
+ if (pulse_thread)
+ SetThreadPriority(pulse_thread, 0);
+ if (pulse_ctx) { + if (pulse_ctx) {
+ pa_context_disconnect(pulse_ctx); + pa_context_disconnect(pulse_ctx);
+ pa_context_unref(pulse_ctx); + pa_context_unref(pulse_ctx);
@ -423,7 +486,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ pa_channel_map map; + pa_channel_map map;
+ +
+ INT64 clock_lastpos, clock_written; + INT64 clock_lastpos, clock_written;
+ pa_usec_t clock_pulse;
+ +
+ AudioSession *session; + AudioSession *session;
+ AudioSessionWrapper *session_wrapper; + AudioSessionWrapper *session_wrapper;
@ -772,7 +834,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) +static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata)
+{ +{
+ ACImpl *This = userdata; + ACImpl *This = userdata;
+ pa_usec_t time;
+ UINT32 oldpad = This->pad; + UINT32 oldpad = This->pad;
+ +
+ if (bytes < This->bufsize_bytes) + if (bytes < This->bufsize_bytes)
@ -782,13 +843,8 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ +
+ assert(oldpad >= This->pad); + assert(oldpad >= This->pad);
+ +
+ if (0 && This->pad && pa_stream_get_time(This->stream, &time) >= 0)
+ This->clock_pulse = time;
+ else
+ This->clock_pulse = PA_USEC_INVALID;
+
+ This->clock_written += oldpad - This->pad; + This->clock_written += oldpad - This->pad;
+ TRACE("New pad: %u (-%u)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); + TRACE("New pad: %zu (-%zu)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss));
+ +
+ if (This->event) + if (This->event)
+ SetEvent(This->event); + SetEvent(This->event);
@ -796,8 +852,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ +
+static void pulse_underflow_callback(pa_stream *s, void *userdata) +static void pulse_underflow_callback(pa_stream *s, void *userdata)
+{ +{
+ ACImpl *This = userdata;
+ This->clock_pulse = PA_USEC_INVALID;
+ WARN("Underflow\n"); + WARN("Underflow\n");
+} +}
+ +
@ -815,15 +869,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ +
+static void pulse_started_callback(pa_stream *s, void *userdata) +static void pulse_started_callback(pa_stream *s, void *userdata)
+{ +{
+ ACImpl *This = userdata;
+ pa_usec_t time;
+
+ TRACE("(Re)started playing\n"); + TRACE("(Re)started playing\n");
+ assert(This->clock_pulse == PA_USEC_INVALID);
+ if (0 && pa_stream_get_time(This->stream, &time) >= 0)
+ This->clock_pulse = time;
+ if (This->event)
+ SetEvent(This->event);
+} +}
+ +
+static void pulse_rd_loop(ACImpl *This, size_t bytes) +static void pulse_rd_loop(ACImpl *This, size_t bytes)
@ -832,7 +878,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ ACPacket *p, *next; + ACPacket *p, *next;
+ LARGE_INTEGER stamp, freq; + LARGE_INTEGER stamp, freq;
+ BYTE *dst, *src; + BYTE *dst, *src;
+ UINT32 src_len, copy, rem = This->capture_period; + size_t src_len, copy, rem = This->capture_period;
+ if (!(p = (ACPacket*)list_head(&This->packet_free_head))) { + if (!(p = (ACPacket*)list_head(&This->packet_free_head))) {
+ p = (ACPacket*)list_head(&This->packet_filled_head); + p = (ACPacket*)list_head(&This->packet_filled_head);
+ if (!p->discont) { + if (!p->discont) {
@ -884,7 +930,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+static void pulse_rd_drop(ACImpl *This, size_t bytes) +static void pulse_rd_drop(ACImpl *This, size_t bytes)
+{ +{
+ while (bytes >= This->capture_period) { + while (bytes >= This->capture_period) {
+ UINT32 src_len, copy, rem = This->capture_period; + size_t src_len, copy, rem = This->capture_period;
+ while (rem) { + while (rem) {
+ const void *src; + const void *src;
+ pa_stream_peek(This->stream, &src, &src_len); + pa_stream_peek(This->stream, &src, &src_len);
@ -914,7 +960,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+{ +{
+ ACImpl *This = userdata; + ACImpl *This = userdata;
+ +
+ TRACE("Readable total: %u, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); + TRACE("Readable total: %zu, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize);
+ assert(bytes >= This->peek_ofs); + assert(bytes >= This->peek_ofs);
+ bytes -= This->peek_ofs; + bytes -= This->peek_ofs;
+ if (bytes < This->capture_period) + if (bytes < This->capture_period)
@ -1074,7 +1120,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ This->IAudioStreamVolume_iface.lpVtbl = &AudioStreamVolume_Vtbl; + This->IAudioStreamVolume_iface.lpVtbl = &AudioStreamVolume_Vtbl;
+ This->dataflow = dataflow; + This->dataflow = dataflow;
+ This->parent = dev; + This->parent = dev;
+ This->clock_pulse = PA_USEC_INVALID;
+ for (i = 0; i < PA_CHANNELS_MAX; ++i) + for (i = 0; i < PA_CHANNELS_MAX; ++i)
+ This->vol[i] = 1.f; + This->vol[i] = 1.f;
+ IMMDevice_AddRef(This->parent); + IMMDevice_AddRef(This->parent);
@ -1458,9 +1503,25 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ goto exit; + goto exit;
+ +
+ if (mode == AUDCLNT_SHAREMODE_SHARED) { + if (mode == AUDCLNT_SHAREMODE_SHARED) {
+ period = pulse_def_period[This->dataflow == eCapture]; + REFERENCE_TIME def = pulse_def_period[This->dataflow == eCapture];
+ REFERENCE_TIME min = pulse_min_period[This->dataflow == eCapture];
+
+ /* Switch to low latency mode if below 2 default periods,
+ * which is 20 ms by default, this will increase the amount
+ * of interrupts but allows very low latency. In dsound I
+ * managed to get a total latency of ~8ms, which is well below
+ * default
+ */
+ if (duration < 2 * def)
+ period = min;
+ else
+ period = def;
+ if (duration < 2 * period) + if (duration < 2 * period)
+ duration = 2 * period; + duration = 2 * period;
+
+ /* Uh oh, really low latency requested.. */
+ if (duration <= 2 * period)
+ period /= 2;
+ } + }
+ period_bytes = pa_frame_size(&This->ss) * MulDiv(period, This->ss.rate, 10000000); + period_bytes = pa_frame_size(&This->ss) * MulDiv(period, This->ss.rate, 10000000);
+ +
@ -1769,7 +1830,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ pthread_mutex_unlock(&pulse_lock); + pthread_mutex_unlock(&pulse_lock);
+ return AUDCLNT_E_NOT_STOPPED; + return AUDCLNT_E_NOT_STOPPED;
+ } + }
+ This->clock_pulse = PA_USEC_INVALID;
+ +
+ if (pa_stream_is_corked(This->stream)) { + if (pa_stream_is_corked(This->stream)) {
+ o = pa_stream_cork(This->stream, 0, pulse_op_cb, &success); + o = pa_stream_cork(This->stream, 0, pulse_op_cb, &success);
@ -1825,7 +1885,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ } + }
+ if (SUCCEEDED(hr)) { + if (SUCCEEDED(hr)) {
+ This->started = FALSE; + This->started = FALSE;
+ This->clock_pulse = PA_USEC_INVALID;
+ } + }
+ pthread_mutex_unlock(&pulse_lock); + pthread_mutex_unlock(&pulse_lock);
+ return hr; + return hr;
@ -2023,7 +2082,8 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ UINT32 frames, BYTE **data) + UINT32 frames, BYTE **data)
+{ +{
+ ACImpl *This = impl_from_IAudioRenderClient(iface); + ACImpl *This = impl_from_IAudioRenderClient(iface);
+ UINT32 avail, pad, req, bytes = frames * pa_frame_size(&This->ss); + size_t avail, req, bytes = frames * pa_frame_size(&This->ss);
+ UINT32 pad;
+ HRESULT hr = S_OK; + HRESULT hr = S_OK;
+ int ret = -1; + int ret = -1;
+ +
@ -2048,7 +2108,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ avail = This->bufsize_frames - pad; + avail = This->bufsize_frames - pad;
+ if (avail < frames || bytes > This->bufsize_bytes) { + if (avail < frames || bytes > This->bufsize_bytes) {
+ pthread_mutex_unlock(&pulse_lock); + pthread_mutex_unlock(&pulse_lock);
+ WARN("Wanted to write %u, but only %u available\n", frames, avail); + WARN("Wanted to write %u, but only %zu available\n", frames, avail);
+ return AUDCLNT_E_BUFFER_TOO_LARGE; + return AUDCLNT_E_BUFFER_TOO_LARGE;
+ } + }
+ +
@ -2056,7 +2116,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ req = bytes; + req = bytes;
+ ret = pa_stream_begin_write(This->stream, &This->locked_ptr, &req); + ret = pa_stream_begin_write(This->stream, &This->locked_ptr, &req);
+ if (ret < 0 || req < bytes) { + if (ret < 0 || req < bytes) {
+ FIXME("%p Not using pulse locked data: %i %u/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); + FIXME("%p Not using pulse locked data: %i %zu/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames);
+ if (ret >= 0) + if (ret >= 0)
+ pa_stream_cancel_write(This->stream); + pa_stream_cancel_write(This->stream);
+ *data = This->tmp_buffer; + *data = This->tmp_buffer;
@ -2072,6 +2132,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+{ +{
+ ACImpl *This = impl_from_IAudioRenderClient(iface); + ACImpl *This = impl_from_IAudioRenderClient(iface);
+ UINT32 written_bytes = written_frames * pa_frame_size(&This->ss); + UINT32 written_bytes = written_frames * pa_frame_size(&This->ss);
+// UINT32 period;
+ +
+ TRACE("(%p)->(%u, %x)\n", This, written_frames, flags); + TRACE("(%p)->(%u, %x)\n", This, written_frames, flags);
+ +
@ -2104,8 +2165,13 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE); + pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE);
+ This->pad += written_bytes; + This->pad += written_bytes;
+ This->locked_ptr = NULL; + This->locked_ptr = NULL;
+ TRACE("Released %u, pad %u\n", written_frames, This->pad / pa_frame_size(&This->ss)); + TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss));
+ assert(This->pad <= This->bufsize_bytes); + assert(This->pad <= This->bufsize_bytes);
+
+// period = pa_stream_get_buffer_attr(This->stream)->minreq;
+ /* Require a minimum of 3 periods filled, if possible */
+// if (This->event && This->pad + period <= This->bufsize_bytes && This->pad < period * 3)
+// SetEvent(This->event);
+ pthread_mutex_unlock(&pulse_lock); + pthread_mutex_unlock(&pulse_lock);
+ return S_OK; + return S_OK;
+} +}
@ -2312,7 +2378,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ UINT64 *qpctime) + UINT64 *qpctime)
+{ +{
+ ACImpl *This = impl_from_IAudioClock(iface); + ACImpl *This = impl_from_IAudioClock(iface);
+ pa_usec_t time;
+ HRESULT hr; + HRESULT hr;
+ +
+ TRACE("(%p)->(%p, %p)\n", This, pos, qpctime); + TRACE("(%p)->(%p, %p)\n", This, pos, qpctime);
@ -2328,13 +2393,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ } + }
+ +
+ *pos = This->clock_written; + *pos = This->clock_written;
+ if (This->clock_pulse != PA_USEC_INVALID && pa_stream_get_time(This->stream, &time) >= 0) {
+ UINT32 delta = pa_usec_to_bytes(time - This->clock_pulse, &This->ss);
+ if (delta < This->pad)
+ *pos += delta;
+ else
+ *pos += This->pad;
+ }
+ +
+ /* Make time never go backwards */ + /* Make time never go backwards */
+ if (*pos < This->clock_lastpos) + if (*pos < This->clock_lastpos)
@ -3348,9 +3406,9 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse
+ *out = &This->IAudioSessionManager2_iface; + *out = &This->IAudioSessionManager2_iface;
+ return S_OK; + return S_OK;
+} +}
diff -uNr wine-1.5.4.old/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.4/dlls/winepulse.drv/winepulse.drv.spec diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.16/dlls/winepulse.drv/winepulse.drv.spec
--- wine-1.5.4.old/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 02:00:00.000000000 +0200 --- wine-1.5.16.orig/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100
+++ wine-1.5.4/dlls/winepulse.drv/winepulse.drv.spec 2012-05-23 12:03:21.069645000 +0300 +++ wine-1.5.16/dlls/winepulse.drv/winepulse.drv.spec 2012-10-28 11:31:38.176115962 +0100
@@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
+# MMDevAPI driver functions +# MMDevAPI driver functions
+@ stdcall -private GetPriority() AUDDRV_GetPriority +@ stdcall -private GetPriority() AUDDRV_GetPriority

@ -0,0 +1,29 @@
From 8045bdbc879ec70776427f744f30476cc2b469a4 Mon Sep 17 00:00:00 2001
From: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Fri, 26 Oct 2012 19:04:00 +0200
Subject: [PATCH] winmm: Load winealsa if winepulse is found
Fixes midi on winepulse
---
dlls/winmm/lolvldrv.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c
index f387323..3b1be27 100644
--- a/dlls/winmm/lolvldrv.c
+++ b/dlls/winmm/lolvldrv.c
@@ -543,7 +543,10 @@ static void MMDRV_Init(void)
drvA = HeapAlloc(GetProcessHeap(), 0, size);
WideCharToMultiByte(CP_ACP, 0, pv.u.pwszVal, -1, drvA, size, NULL, NULL);
- MMDRV_Install(drvA, drvA, FALSE);
+ if (!strcasecmp(drvA, "winepulse.drv"))
+ MMDRV_Install("winealsa.drv", "winealsa.drv", 0);
+ else
+ MMDRV_Install(drvA, drvA, FALSE);
HeapFree(GetProcessHeap(), 0, drvA);
PropVariantClear(&pv);
--
1.7.11.7

@ -1,9 +1,9 @@
%global no64bit 0 %global no64bit 0
%global winegecko 1.8 %global winegecko 1.8
%global winemono 0.0.4 %global winemono 0.0.8
Name: wine Name: wine
Version: 1.5.15 Version: 1.5.16
Release: 1%{?dist} Release: 1%{?dist}
Summary: A compatibility layer for windows applications Summary: A compatibility layer for windows applications
@ -54,9 +54,12 @@ Source502: wine-README-tahoma
Patch511: wine-cjk.patch Patch511: wine-cjk.patch
# winepulse backend ## winepulse backend
# http://repo.or.cz/w/wine/multimedia.git # http://repo.or.cz/w/wine/multimedia.git
Patch1001: wine-pulse-1.5.4.patch # last change Fri, 26 Oct 2012 17:16:03 +0000
Patch1001: wine-pulse-1.5.16.patch
# use winealsa for midi in the pa backend
Patch1002: wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -210,6 +213,13 @@ Requires: nss-mdns(x86-32)
Requires: gnutls(x86-32) Requires: gnutls(x86-32)
Requires: libXrender(x86-32) Requires: libXrender(x86-32)
Requires: libXcursor(x86-32) Requires: libXcursor(x86-32)
%if 0%{?fedora} >= 18
Requires: openssl-libs(x86-32)
%else
Requires: openssl(x86-32)
%endif
%endif %endif
%ifarch x86_64 %ifarch x86_64
@ -218,6 +228,13 @@ Requires: nss-mdns(x86-64)
Requires: gnutls(x86-64) Requires: gnutls(x86-64)
Requires: libXrender(x86-64) Requires: libXrender(x86-64)
Requires: libXcursor(x86-64) Requires: libXcursor(x86-64)
%if 0%{?fedora} >= 18
Requires: openssl-libs(x86-64)
%else
Requires: openssl(x86-64)
%endif
%endif %endif
%ifarch %{arm} %ifarch %{arm}
@ -226,6 +243,13 @@ Requires: nss-mdns
Requires: gnutls Requires: gnutls
Requires: libXrender Requires: libXrender
Requires: libXcursor Requires: libXcursor
%if 0%{?fedora} >= 18
Requires: openssl-libs
%else
Requires: openssl
%endif
%endif %endif
# old removed packages # old removed packages
@ -474,6 +498,8 @@ with the Wine Windows(TM) emulation libraries.
Summary: Pulseaudio support for wine Summary: Pulseaudio support for wine
Group: System Environment/Libraries Group: System Environment/Libraries
Requires: wine-core = %{version}-%{release} Requires: wine-core = %{version}-%{release}
# midi output
Requires: wine-alsa = %{version}-%{release}
%description pulseaudio %description pulseaudio
This package adds a pulseaudio driver for wine. Please do not report bugs in This package adds a pulseaudio driver for wine. Please do not report bugs in
@ -505,6 +531,7 @@ This package adds an openal driver for wine.
%patch511 -p1 -b.cjk %patch511 -p1 -b.cjk
%patch1001 -p1 -b.winepulse %patch1001 -p1 -b.winepulse
%patch1002 -p1 -b.winepulse-midi
autoreconf autoreconf
@ -1497,6 +1524,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%endif %endif
%changelog %changelog
* Sun Oct 28 2012 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
- 1.5.16-1
- version upgrade (rhbz#870611)
- wine mono 0.8
- update pulse patch
- fix midi in winepulse (rhbz#863129)
- fix dependencies for openssl (rhbz#868576)
* Mon Oct 15 2012 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de> * Mon Oct 15 2012 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
- 1.5.15-1 - 1.5.15-1
- version upgrade - version upgrade

Loading…
Cancel
Save