This commit replaces the SampleGrabberSink with a dedicated Video Sink,
referred to as the Simple Video Renderer (SVR).
This brings it more inline with Windows and provides the benefit of
having direct access to the IMFSample, removing the need to copy the
sample data.
--
v7: mfmediaengine: Fallback to sample copy if scaling is required.
mfmediaengine: Implement D3D-aware video frame sink.
mfmediaengine: Implement SVR.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5924
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v2: windowscodecs: Implement CreateMetadataReader().
windowscodecs/metadata: Add a helper to iterate over components.
windowscodecs/tests: Add a basic test for CreateComponentEnumerator().
windowscodecs/tests: Add some tests for CreateMetadataReader().
windowscodecs/tests: Use string literals in the metadata tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6954
The tests indicate that for dmo_wrapper_sink_Receive:
(1) If ProcessOutput succeeds, including S_FALSE, it continue processing.
(2) If ProcessOutput fails, it returns S_OK.
(3) If downstream Receive fails or return S_FALSE, it returns downstream hr.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6957
--
v3: mshtml: Get rid of unused HTMLElement_toString_dispids.
mshtml: Expose respective props from StyleSheetPrototype.
mshtml: Don't expose toString from styles in IE9+ modes.
mshtml: Don't expose the *Expression methods from styles in IE9+ modes.
mshtml: Don't expose the clip* props from style declaration or properties
mshtml: Don't expose 'behavior' prop from styles in IE11 mode.
mshtml: Move 'filter' prop to MSCSSPropertiesPrototype in IE9 mode.
mshtml: Prefer builtins for style aliases that have the same name.
mshtml: Expose respective props from MSCSSPropertiesPrototype.
mshtml/tests: Add more tests for the style aliased prop names.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6952
--
v2: msvcrt: Call _wfindnext64 in _findnext64 function.
msvcrt: Call _wfindfirst64 in _findfirst64 function.
msvcrt: Call _wfindnext32 in _findnext32 function.
msvcrt: Call _wfindfirst32 in _findfirst32 function.
include: Cleanup corecrt_io.h file and use it in io.h.
msvcrt: Prepare _searchenv_s() for utf-8 encoded filename.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6962
--
v2: mshtml: Get rid of unused HTMLElement_toString_dispids.
mshtml: Expose respective props from StyleSheetPrototype.
mshtml: Don't expose toString from styles in IE9+ modes.
mshtml: Don't expose the *Expression methods from styles in IE9+ modes.
mshtml: Don't expose the clip* props from style declaration or properties
mshtml: Don't expose 'behavior' prop from styles in IE11 mode.
mshtml: Expose respective props from MSCSSPropertiesPrototype.
mshtml/tests: Add more tests for the style aliased prop names.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6952
This is a heavily simplified version of Michael Müller's staging patch
(the staging version got broken by the PE/Unix split)
I rebased that staging patch but I thought it was too big for what it
does (so I did this instead)
As for automatically changing the status, SM_MEDIACENTER would require
Windows version checks (which are never used in Wine) and SM_TABLETPC
would likely require touchscreen/tablet detection (rbernon is working
on some touch stuff so that could be useful)
--
v3: win32u: Enable the media center metric by default.
win32u: Add registry key for changing tablet status.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5234
Continuation of !5704 for cases not covered by CI. As far as I can tell, these variables have been unused in all versions of Bison, but older versions of Clang (or other compilers) didn’t detect this, likely skipping the analysis due to the size or complexity of the generated code. When Clang started emitting warnings, upstream Bison partially addressed the issue by [marking the variables as unused](https://git.savannah.gnu.org/cgit/bison.git/commit/?id=a166d5450e3f…. However, these markings remain ineffective in Clang MSVC mode due to hardcoded assumptions. My attempts to address this issue upstream in Bison have not received a response.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6958
--
v6: winegstreamer: Send media source shutdown notification via IMFMediaShutdownNotify.
mf: Introduce IMFMediaShutdownNotify for notification of media source shutdown.
mf: Handle media source Start() failure due to source shutdown.
mf: Handle media source event subscription failure due to source shutdown.
mf: Handle media source BeginGetEvent() failure due to shutdown.
mf: Handle media source EndGetEvent() failure due to shutdown.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6800
This serie is a first attempt to provide a solution to bug 57308 [1](https://bugs.winehq.org/show_bug.cgi?id=57308).
Basically, Arch distro is looking for Wine support in distributing debug information for Wine PE modules separated from image.
A quick overview of distro (Debian, Fedora, Arch) situation i (I may have missed a couple of items), but:
- no distro ship separate debug information for PE modules (they do it for ELF ones though)
- at best, they ship unstripped PE modules.
IMO, we need to help them pave the way to what should be the best expected situation (in Wine and wrt distros) to support separate debug information for PE images.
First, I believe we need to use a (solid) key to bind the stripped image and the file holding the debug information. In ELF format, this is typically done by inserting a .note.gnu.build-id section (in both stripped image and debug information file) which contains the key. This key is used to either search in fixed location (eg /usr/lib/.debug), or as key to download the debug information from a remote server (debuginfod). The key is generally made of a hash of (some sections of) the image file. This allows (esp. in the case of downloading the debug information from a debugger) to discriminate between several versions of the same module.
I think we should target this kind of solution instead of storing the debug information alongside the module (usually done as ntdll.dll.debug). This wouldn't let debuggers download the expected debug info upon request.
Fortunately, gcc and clang provide a build-id option (when generating PE images) which stores this key in the PE image.
What this serie does:
- fixes & improves dbghelp in the support of the build-id information from gcc/mingw & clang,
- improves Wine's configure script so that clang can be used to generate dwarf debug information and build-id information in PE builds,
- adds a couple of additional search locations for debug information files,
It takes the following assumptions for the storage:
- debug information files for PE images are stored in same hierarchy as debug information files for ELF images (eg /usr/lib/.debug)
- naming of such files is done as ELF, ie by using the hex string generated from the binary blob of the key. This is _NOT_ the usual way how the GUID will be printed (because the first 3 integers of the GUID are stored in little-endian format). (Note: I had to make a choice here. I don't have strong arguments one way or the other, but we need to agree on the convention here).
What distro should do to support separate debug info:
- configure Wine with --enable-build-id
- adapt at least the packaging tool to extract the key out of unstripped image \[2\],
- if binutils isn't compiled with PE support (this is apparently the Arch case), adapt the scripts to use x86_64-objcopy instead of objcopy (and friends).
I marked this MR as draft for now, as:
- I still need to polish some items (like the default location for looking up debug information files),
- wait for feedback on this proposal (it does make a couple of assumptions that need sharing IMO),
Further steps:
- the steps above are mainly targetted to have a solution for packaged download of debug information files,
- this should be integrated in debuginfod (server side: ingestion of PE files and client side: ensure gdb, lldb are compatible; implement debuginfod in winedbg).
Feed back welcomed!
\[2\]:
The least invasive readelf replacement (assuming binutils is compiled with PE support). (otherwise, use x86_64-objdump)
```
BUILDID=`objdump -p "$INPUT" | sed -n "/RSDS signature / {s/.*signature //; s/ age.*//p; q;}"`
BUILDID=${BUILDID:6:2}${BUILDID:4:2}${BUILDID:2:2}${BUILDID:0:2}${BUILDID:10:2}${BUILDID:8:2}${BUILDID:14:2}${BUILDID:12:2}${BUILDID:16}
```
Additional note: gcc/mingw puts the desired debug entry inside a dedicated section (.buildid), while clangs keeps it in .rdata (as msvc does). So, this invalidates any attempt to get information from the .buildid section (as stated in bug report).
--
v4: dbghelp: Search debug info with buildid for RSDS debug entry w/o filenames.
dbghelp: Extend search for buildid in system directories.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6715