Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fsync: Fix checking if futex_waitv is available. #256

Open
wants to merge 301 commits into
base: bleeding-edge
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
301 commits
Select commit Hold shift + click to select a range
f04fa2f
mfplat/tests: Add tests for MFInitMediaTypeFromMFVideoFormat.
rbernon Mar 19, 2024
712af78
mfplat/mediatype: Implement MFInitMediaTypeFromMFVideoFormat.
rbernon Mar 11, 2024
94c7eee
mfplat/tests: Add some broken results for Win7.
rbernon Mar 20, 2024
75d8696
mfplat/tests: Test initializing mediatype from AAC WAVEFORMATEXTENSIBLE.
rbernon Mar 7, 2024
235774b
mfplat/tests: Check how AAC attributes are copied from user data.
rbernon Mar 20, 2024
5547d5f
mfplat/mediatype: Check format pointers and sizes in MFInitMediaTypeF…
rbernon Mar 12, 2024
94b4683
mfplat/mediatype: Support audio major type in MFInitMediaTypeFromAMMe…
rbernon Mar 11, 2024
ceabceb
mfplat/mediatype: Force WAVEFORMATEXTENSIBLE in MFCreateWaveFormatExF…
rbernon Mar 12, 2024
e3e5088
mfplat/mediatype: Implement MFCreateMediaTypeFromRepresentation.
rbernon Mar 5, 2024
5dbac07
mfplat/mediatype: Use MFCreateWaveFormatExFromMFMediaType in init_am_…
rbernon Mar 11, 2024
6515aa1
mf/tests: Check that pan scan and geometric apertures are set.
rbernon Mar 25, 2024
b37c592
evr/tests: Split create_d3d_sample to a separate helper.
rbernon Mar 25, 2024
6d0b2bc
evr/tests: Split check_presenter_output to a separate helper.
rbernon Mar 25, 2024
44a41f2
evr/tests: Add more video mixer input media type aperture tests.
rbernon Mar 25, 2024
0cb9fe1
evr/mixer: Respect input media type MF_MT_GEOMETRIC_APERTURE.
rbernon Mar 13, 2024
b11b7e9
mf/session: Avoid leaking samples in transform_node_deliver_samples.
rbernon Mar 13, 2024
d44d7c0
mfplat: Append MFVIDEOFORMAT user data after the structure padding.
rbernon Mar 21, 2024
470417a
mfmediaengine/tests: Test that effects allow converters between them.
rbernon Apr 8, 2024
56dd79c
mfmediaengine: Allow decoder / converter to be resolved between topol…
rbernon Apr 3, 2024
89eb2df
mfplat: Fix MFCreateMFVideoFormatFromMFMediaType videoInfo.VideoFlags…
rbernon May 7, 2024
149ee54
mfplat: Use IMFMediaType_GetBlobSize instead of IMFMediaType_GetBlob.
rbernon May 7, 2024
bce45ac
mfplat: Introduce a new init_video_info_header helper.
rbernon May 7, 2024
87e6f70
mfplat: Use media_type_get_uint32 in more places.
rbernon May 9, 2024
b4fa580
mfplat: Factor AM_MEDIA_TYPE video format allocation.
rbernon May 9, 2024
27a5995
mfplat: Set AM_MEDIA_TYPE bTemporalCompression and bFixedSizeSamples.
rbernon May 9, 2024
8d1bc0f
mfplat: Implement FORMAT_MPEGVideo for MFInitAMMediaTypeFromMFMediaType.
rbernon May 9, 2024
7b5343d
mfplat: Implement FORMAT_MPEG2Video for MFInitAMMediaTypeFromMFMediaT…
rbernon May 9, 2024
62664c1
mfplat: Implement MFInitMediaTypeFromMPEG1VideoInfo.
rbernon May 6, 2024
73433f5
mfplat: Implement MFInitMediaTypeFromMPEG2VideoInfo.
rbernon May 6, 2024
29da157
mfplat: Implement MFCreateVideoMediaType.
rbernon May 6, 2024
34320d3
include: Add MFTOPOLOGY_DXVA_MODE enum definition.
rbernon Apr 8, 2024
dde4061
Revert "HACK: winegstreamer: Register the video processor MFT as a de…
rbernon Feb 20, 2024
8627f8e
Revert "winegstreamer: Register more VIDEO_EFFECT DMO classes."
rbernon Feb 20, 2024
2953c5a
Revert "winegstreamer: Expose the generic video decoder transform."
rbernon Feb 20, 2024
f41d912
Revert "winegstreamer: Ignore input / output fps mismatch in video_pr…
rbernon Feb 20, 2024
db451c7
Revert "winegstreamer: Introduce a generic audio decoder transform."
rbernon Mar 1, 2024
1a30cde
Revert "winegstreamer: Rename aac_decoder to audio_decoder."
rbernon Mar 1, 2024
4e2ffe6
Revert "winegstreamer: Translate generic audio / video encoded media …
rbernon Mar 1, 2024
b65c5f0
Revert "winegstreamer: Skip encoded formats in format_is_compressed."
rbernon Mar 1, 2024
3c62039
Revert "winegstreamer: Support generic audio / video encoded format."
rbernon Mar 1, 2024
58a17bb
Revert "winegstreamer: Call gst_audio_info_from_caps for all audio fo…
rbernon Mar 1, 2024
64a6cb2
Revert "winegstreamer: Rename struct h264_decoder to struct video_dec…
rbernon Feb 20, 2024
832d2cb
Revert "winegstreamer: Use the H264 decoder to implement the IV50 dec…
rbernon Feb 20, 2024
5c63d62
Revert "ir50_32: Use the proper hr value for stream format change."
rbernon Feb 20, 2024
bd2a365
Revert "winegstreamer: Use MFCalculateImageSize to compute output inf…
rbernon Feb 20, 2024
9ef3679
Revert "winegstreamer: Use GUID arrays for H264 decoder media types."
rbernon Feb 20, 2024
c9e4885
Revert "winegstreamer: Remove unnecessary create_output_media_type ch…
rbernon Feb 20, 2024
bf0ddfe
Revert "winegstreamer: Use MFCreateVideoMediaTypeFromSubtype in GetOu…
rbernon Feb 20, 2024
3df783a
Revert "winegstreamer: Use MFCreateVideoMediaTypeFromSubtype in GetIn…
rbernon Feb 20, 2024
c85f464
Revert "HACK: winegstreamer/wma_decoder: Support XMAudio2 input forma…
rbernon Apr 30, 2024
ed6b456
Revert "HACK: winegstreamer/wmv_decoder: Implement WMVDecMediaObject …
rbernon Apr 30, 2024
aa1c941
Revert "HACK: winegstreamer/wma_decoder: Allow WMA decoder DMO to pas…
rbernon May 27, 2024
9a8424a
Revert "HACK: winegstreamer/media_source: Don't flip RGB for Media Fo…
rbernon May 27, 2024
1861e4f
winegstreamer: Use MFCreateVideoMediaTypeFromSubtype in GetInputAvail…
rbernon Jan 23, 2024
bb0808b
winegstreamer: Use MFCreateVideoMediaTypeFromSubtype in GetOutputAvai…
rbernon Jan 23, 2024
ac4f847
winegstreamer: Remove unnecessary create_output_media_type checks.
rbernon Jan 23, 2024
598d8a1
winegstreamer: Use GUID arrays for H264 decoder media types.
rbernon Jan 23, 2024
c6b4e30
winegstreamer: Complete H264 current output type reported attributes.
rbernon Feb 17, 2024
6ad7eec
winegstreamer: Use MFCalculateImageSize to compute output info size.
rbernon Feb 20, 2024
7d0dc31
ir50_32: Use the proper hr value for stream format change.
rbernon Nov 16, 2023
e0b5657
winegstreamer: Use the H264 decoder to implement the IV50 decoder.
rbernon Jan 23, 2024
5fcd3f7
winegstreamer: Rename struct h264_decoder to struct video_decoder.
rbernon Jan 23, 2024
9da89c4
winegstreamer: Introduce a new set_sample_flags_from_buffer helper.
rbernon Feb 16, 2024
22dc905
winegstreamer: Introduce a new sample_needs_buffer_copy helper.
rbernon Feb 16, 2024
9ed241f
winegstreamer: Split read_transform_output_data in two helpers.
rbernon Feb 16, 2024
7d87ce8
winegstreamer: Pass optional GstVideoInfo to read_transform_output_vi…
rbernon Apr 9, 2024
80440a2
winegstreamer: Destroy wg_transform in video_decoder/transform_SetInp…
Apr 4, 2024
4883e97
winegstreamer: Release sink caps in the error path.
rbernon Feb 16, 2024
8d03ffa
winegstreamer: Append an optional parser before decoders.
rbernon Mar 7, 2024
023303e
winegstreamer: Create the transform parsed caps from wg_format.
rbernon Mar 26, 2024
f68f462
winegstreamer: Fallback to input caps only when no parser was found.
rbernon Mar 26, 2024
b097415
winegstreamer: Merge audio_mpeg1 into audio field.
ziqingh Apr 2, 2024
f385c1a
winegstreamer: Merge audio_mpeg4 into audio field.
ziqingh Apr 2, 2024
cc7d513
winegstreamer: Merge audio_wma into audio field.
ziqingh Apr 2, 2024
0872965
mf/tests: Test AvgTimePerFrame for WMV decoder DMO.
ziqingh Mar 6, 2024
69e867c
winegstreamer: Set AvgTimePerFrame in GetOutputType() for WMV decoder.
ziqingh Mar 5, 2024
50fb6c0
winegstreamer: Merge video_cinepak into video field.
ziqingh Apr 3, 2024
d310870
winegstreamer: Merge video_h264 into video field.
ziqingh Apr 3, 2024
bf52d95
winegstreamer: Merge video_wmv into video field.
ziqingh Apr 3, 2024
8fe79f2
winegstreamer: Merge video_indeo into video field.
ziqingh Apr 3, 2024
7531c8a
winegstreamer: Merge video_mpeg1 into video field.
ziqingh Apr 3, 2024
deebbd7
winegstreamer: Set other aperture attributes on video media types.
rbernon Apr 26, 2024
5fb39e4
winegstreamer: Always set aperture attributes on video decoder output…
rbernon Apr 26, 2024
6b6ab63
winegstreamer: Introduce a new wg_transform_create_quartz helper.
rbernon Mar 5, 2024
f60aade
winegstreamer: Use DMO_MEDIA_TYPE in the WMV decoder.
rbernon Apr 26, 2024
c4916ad
winegstreamer: Implement mf_media_type_to_wg_format_video_wmv.
ziqingh Apr 12, 2024
5369e68
winegstreamer/video_decoder: Set input/output infos in h264_decoder_c…
ziqingh Apr 12, 2024
25e9e48
winegstreamer/video_decoder: Change decoder attributes.
ziqingh Apr 24, 2024
f0fe5ab
winegstreamer/video_decoder: Add wg_transform_attrs member.
ziqingh Apr 15, 2024
4889d59
winegstreamer/video_decoder: Support aggregation.
ziqingh Apr 17, 2024
f3fb05c
winegstreamer/video_decoder: Use video_decoder to implement wmv decoder.
ziqingh Apr 11, 2024
4ab9718
mf/tests: Use a separate field for buffer_desc image size and compare…
rbernon Apr 12, 2024
9f365f6
evr/tests: Sync compare_rgb32 / dump_rgb32 helpers with mf tests.
rbernon Apr 24, 2024
6560b03
mfmediaengine/tests: Sync compare_rgb32 / dump_rgb32 helpers with mf …
rbernon Apr 24, 2024
72e113d
winegstreamer/video_processor: Allow clearing input / output types.
rbernon Apr 12, 2024
be714c5
mf/tests: Move the video processor input bitmap names to the test list.
rbernon Apr 25, 2024
d76a36d
mf/tests: Add more video processor tests with aperture changes.
rbernon Apr 25, 2024
535052e
mf/session: Introduce new (allocate|release)_output_samples helpers.
rbernon Apr 2, 2024
cb56544
mf/session: Get session topo_node from their IMFTopologyNode directly.
rbernon Apr 2, 2024
62dae26
mf/session: Introduce new session_get_topo_node_output helper.
rbernon Apr 2, 2024
3635888
mf/session: Introduce new session_get_topo_node_input helper.
rbernon Apr 2, 2024
8f96596
mf/session: Wrap samples in IMFMediaEvent list instead of IMFSample l…
rbernon Apr 2, 2024
1063957
mf/session: Handle transform format changes and update downstream med…
rbernon Apr 2, 2024
42f5449
winegstreamer: Introduce a new wg_transform_create_mf helper.
rbernon Mar 5, 2024
ffb7622
winegstreamer: Introduce a new check_audio_transform_support helper.
rbernon Mar 5, 2024
19a71ba
winegstreamer: Introduce a new check_video_transform_support helper.
rbernon Apr 30, 2024
e33b7c7
winegstreamer: Recognize MFAudioFormat_MPEG and MFAudioFormat_MP3.
baskanov May 10, 2024
e721c95
winegstreamer/video_decoder: Make output_plane_align specific to h264.
ziqingh May 8, 2024
c5f6d12
Revert "mfreadwrite/reader: Consider the transform output attributes …
rbernon Jan 29, 2024
2d41e6c
Revert "mfreadwrite/reader: Setup the sample allocator in ReadSample."
rbernon Jan 29, 2024
9861985
Revert "HACK: mfreadwrite/reader: Add a passthrough transform."
rbernon Jan 29, 2024
d78239b
Revert "mfplat: Add MFVideoFormat_ABGR32 format information."
rbernon May 13, 2024
b026e78
Revert "winegstreamer/wg_format: Add WG_VIDEO_FORMAT_RGBA format."
rbernon May 13, 2024
f640ecd
Revert "HACK: winegstreamer: Detect h264 use and create a tag file."
rbernon Jun 28, 2024
f0ad716
Revert "HACK: winegstreamer/wg_transform: Check if the decoder accept…
rbernon Jun 28, 2024
2e2371e
Revert "HACK: winegstreamer: Don't add unnecessary and slow? videofli…
rbernon Jun 28, 2024
f2af563
Revert "HACK: winegstreamer/wg_transform: Don't add unnecessary and s…
rbernon Jun 28, 2024
b0d7033
mfreadwrite/reader: Introduce source_reader_queue_sample helper.
rbernon Jan 23, 2024
de00a1f
mfreadwrite/reader: Pass the transform to source_reader_pull_stream_s…
rbernon Jan 23, 2024
2897ba6
mfreadwrite/reader: Introduce a new source_reader_allocate_stream_sam…
rbernon Jan 23, 2024
6a6477e
mfreadwrite/reader: Introduce new source_reader_(drain|flush)_transfo…
rbernon Jan 23, 2024
210dd73
mfreadwrite/reader: Repeat pushing / pulling samples while it succeeds.
rbernon Jan 23, 2024
9fd67c9
mfreadwrite/reader: Split source_reader_create_decoder_for_stream hel…
rbernon Jan 24, 2024
b12f7cf
mf/topology_loader: Only propagate some media type attributes.
rbernon Mar 1, 2024
1f50c33
mfreadwrite/reader: Call SetOutputType directly on the decoder transf…
rbernon Feb 28, 2024
cb94e31
mfreadwrite/reader: Keep the stream transforms in a list.
rbernon Jan 24, 2024
f5a6ec5
mfreadwrite/reader: Create and append a converter transform.
rbernon Feb 28, 2024
8dbe155
mfreadwrite/reader: Implement IMFSourceReaderEx_GetTransformForStream.
rbernon Jan 29, 2024
adb81ee
mfreadwrite/reader: Adjust min_buffer_size to be 1s of audio data.
rbernon Jan 29, 2024
0c7be2f
mfreadwrite/reader: Handle MF_E_TRANSFORM_STREAM_CHANGE results.
rbernon Jan 29, 2024
d4d6b76
mfreadwrite/reader: Use MFTEnumEx to enumerate stream transforms.
rbernon Mar 27, 2024
ebbd3c2
mfreadwrite/reader: Make the GetTransformForStream category parameter…
rbernon Mar 27, 2024
a19fded
mfreadwrite/tests: Test the source reader stream change events.
rbernon Mar 25, 2024
de1d2d3
mfreadwrite/tests: Test the D3D awareness of source reader transforms.
rbernon Mar 27, 2024
65a3006
mfreadwrite: Fix a memory leak (Coverity).
zzhiyi Mar 11, 2024
5326f8a
mfreadwrite/reader: Avoid accessing an invalid stream index.
rbernon Mar 27, 2024
299a052
mfreadwrite/reader: Keep the output subtypes when propagating media t…
rbernon Mar 27, 2024
b8f39ca
mfreadwrite: Store result of object activation in stream transform.
Apr 18, 2024
4961529
mfreadwrite/tests: Do not accept MFVideoFormat_RGB32 in the test tran…
rbernon Apr 3, 2024
1e3ffbd
mfreadwrite/tests: Avoid using MFCreateMediaBufferFromMediaType.
rbernon Apr 3, 2024
e8f6d4e
mfreadwrite/tests: Shutdown the test stream event queues on source sh…
rbernon Apr 4, 2024
e8f1a50
mfreadwrite/reader: Avoid leaking the stream transform service MFT.
rbernon Apr 4, 2024
04277b6
mfreadwrite/tests: Add some source reader D3D11 awareness tests.
rbernon Apr 4, 2024
71a1161
mf/tests: Test video processor D3D11 awareness.
rbernon Apr 10, 2024
e914c55
winegstreamer/video_processor: Implement D3D awareness.
rbernon Apr 2, 2024
9004f86
mfreadwrite/reader: Pass the device manager to the stream transforms.
rbernon Apr 4, 2024
68b833f
mfplat: Add MFVideoFormat_ABGR32 format information.
rbernon Nov 22, 2023
a616add
mf/tests: Add video processor tests with MFVideoFormat_ABGR32 format.
rbernon Apr 25, 2024
3cd9510
mfreadwrite/tests: Add tests with MFVideoFormat_ABGR32 output format.
rbernon Apr 11, 2024
15c4166
winegstreamer: Support MFVideoFormat_ABGR32 output in the video proce…
rbernon May 10, 2024
f599798
mfreadwrite/reader: Fixup MFVideoFormat_ABGR32 subtype to enumerate t…
rbernon May 17, 2024
89d0170
winegstreamer: Use DMO_MEDIA_TYPE in the WMA decoder.
rbernon Apr 24, 2024
7148b61
winegstreamer: Implement WMA DMO Get(Input|Output)CurrentType.
rbernon May 24, 2024
22b30d8
winegstreamer: Use a GstCaps for wg_parser current_format.
rbernon Apr 30, 2024
e95b790
winegstreamer: Use a GstCaps instead of preferred_format.
rbernon Apr 30, 2024
97be1c0
winegstreamer: Rename get_preferred_format to get_current_format.
rbernon May 10, 2024
3bd0334
winegstreamer: Use a GstCaps for wg_parser_stream codec format.
rbernon Apr 30, 2024
5d4a01a
winegstreamer: Allow to clear video decoder input/output types.
rbernon May 6, 2024
8ec17fa
winegstreamer: Enforce default stride value in the video decoder.
rbernon May 6, 2024
2c41f17
winegstreamer: Enforce default stride presence in the video processor.
rbernon May 6, 2024
3088759
winegstreamer: Rename allow_size_change to allow_format_change.
rbernon Jun 3, 2024
0baaca7
winegstreamer: Only report format changes when frontend supports it.
rbernon May 6, 2024
e7fdcda
winegstreamer: Use a caps to store the desired output format.
rbernon Jun 3, 2024
3f4184b
winegstreamer: Request the new transform output format explicitly.
rbernon Mar 11, 2024
614a695
winegstreamer: Recalculate alignment and bytes per second, instead of…
Alcaro Jun 19, 2024
c2c7e6c
mf/tests: Clobber the alignment and bytes per second, to test if the …
Alcaro Jun 19, 2024
f843fdb
winegstreamer: Translate GstCaps directly to MFVIDEOFORMAT / WAVEFORM…
rbernon May 10, 2024
5632497
winegstreamer: Translate MFVIDEOFORMAT / WAVEFORMATEX directly to Gst…
rbernon May 7, 2024
c604c42
winegstreamer: Create transforms from MFVIDEOFORMAT / WAVEFORMATEX.
rbernon May 6, 2024
4137f38
winegstreamer: Register more VIDEO_EFFECT DMO classes.
rbernon Dec 7, 2023
8831871
HACK: winegstreamer: Register the video processor MFT as a decoder.
rbernon Dec 7, 2023
dcad9ad
HACK: winegstreamer/wmv_decoder: Implement WMVDecMediaObject pass-thr…
rbernon Nov 21, 2023
95e364b
HACK: winegstreamer/wma_decoder: Support XMAudio2 input format in WMA…
rbernon Nov 21, 2023
b6ad921
HACK: winegstreamer/wma_decoder: Allow WMA decoder DMO to pass-throug…
rbernon Aug 2, 2022
56a8cb9
winegstreamer: Translate unknown GstCaps to generic MFVIDEOFORMAT / W…
rbernon May 4, 2024
231f861
winegstreamer: Only use pool and set buffer meta for raw video frames.
rbernon Jul 2, 2024
dc4628a
winegstreamer: Use a new wg_video_buffer_pool class to add buffer meta.
rbernon Jul 2, 2024
faf157e
winegstreamer: Keep the input caps on the transform.
rbernon Mar 12, 2024
03a5266
winegstreamer: Use video info stride in buffer meta rather than video…
rbernon Mar 12, 2024
974a730
winegstreamer: Respect video format padding for input buffers too.
rbernon Jul 2, 2024
c6efb77
HACK: winegstreamer/wg_transform: Check if the decoder accepted our c…
rbernon Feb 22, 2022
c8cfa60
HACK: winegstreamer: Detect h264 use and create a tag file.
ivyl Nov 3, 2022
f4c6857
winegstreamer/new_media_source: Use GST_PTR_FORMAT more consistently.
rbernon Mar 5, 2024
96a42ca
winegstreamer/new_media_source: Use push_event more consistently.
rbernon Mar 5, 2024
d7aa8e1
winegstreamer/new_media_source: Set read offsets on pushed buffers.
rbernon Mar 5, 2024
0d9d6f9
winegstreamer/new_media_source: Set EOS segment start before pushing …
rbernon Mar 5, 2024
9561d6e
winegstreamer/new_media_source: Push new stream start even after EOS.
rbernon Mar 5, 2024
2384aa2
winegstreamer/new_media_source: Keep the GstStreams on the wg_source …
rbernon Mar 5, 2024
470bf13
winegstreamer/new_media_source: Use wg_media_type to get wg_source st…
rbernon Mar 12, 2024
18ecf2f
winegstreamer/new_media_source: Ignore empty wg_source buffers.
rbernon Mar 13, 2024
55dcc19
winegstreamer/new_media_source: Push stream and segment events direct…
rbernon Mar 13, 2024
855f395
winegstreamer/new_media_source: Add support for asynchronous wg_sourc…
rbernon Apr 2, 2024
afb91e4
winegstreamer: Rename aac_decoder to audio_decoder.
rbernon Nov 17, 2023
fe21991
winegstreamer: Introduce a generic audio decoder transform.
rbernon Jul 28, 2023
4a6dd89
winegstreamer: Expose the generic video decoder transform.
rbernon Jan 23, 2024
85c286e
mfreadwrite/reader: Rely on the video processor sample allocator.
rbernon Mar 4, 2024
fd82a68
mfplat/tests: Add more tests for MFCreateMediaBufferFromMediaType.
rbernon Apr 3, 2024
4a8f347
mfplat: Implement MFCreateMediaBufferFromMediaType for video formats.
rbernon Apr 3, 2024
4bca37b
mfreadwrite/reader: Use MFCreateMediaBufferFromMediaType to allocate …
rbernon Mar 4, 2024
d7a0465
mfreadwrite/reader: Request MF_LOW_LATENCY on stream transforms.
rbernon Apr 3, 2024
67a068f
mfreadwrite/reader: Shutdown the queue when public ref is released.
rbernon May 13, 2024
b3de2f7
mf/session: Don't update transform output type if not needed.
rbernon May 15, 2024
057f593
mf/session: Implement D3D device manager propagation.
rbernon May 13, 2024
27efe2f
mf/session: Keep previously allocated sample with the transform streams.
rbernon Apr 2, 2024
ba81b78
winegstreamer: Support hardware buffer conversion with D3D11 video pr…
rbernon May 10, 2024
5b99a17
winegstreamer/media-converter: Push segment event before data in push…
rbernon May 15, 2024
be8d19a
winegstreamer/new_media_source: Use proton demuxer for unsupported fo…
rbernon Mar 29, 2024
43dc445
HACK: winegstreamer/wg_source: Check if stream caps can be decoded or…
rbernon May 15, 2024
f39c9d2
HACK: mfplat: Enable the new media source for all games.
rbernon Jan 23, 2024
de91931
winegstreamer: Expose a single audio media type from the media source.
rbernon Apr 30, 2024
a730e09
winegstreamer: Expose a single video media type from the media source.
rbernon Apr 30, 2024
f51e993
winegstreamer: Remove now unnecessary stream descriptor media type ar…
rbernon Apr 30, 2024
bf8a82c
winegstreamer/media_source: Use media type major type when selecting …
rbernon Mar 29, 2024
33fb12f
winegstreamer/media_source: Translate media types directly in the med…
rbernon May 10, 2024
a9096cc
winegstreamer/wg_parser: Stop auto-plugging on demuxer element pads.
rbernon Mar 29, 2024
ab578b8
winegstreamer/media_source: Output compressed samples from uridecodebin.
rbernon Mar 29, 2024
128e030
winegstreamer/new_media_source: Send EOS when reading past the end of…
rbernon May 21, 2024
f88bfbf
mfreadwrite/reader: Make a copy of the output type in SetCurrentMedia…
rbernon May 21, 2024
6d8fb96
mfreadwrite/reader: Set MF_MT_AUDIO_BITS_PER_SAMPLE attribute when mi…
rbernon May 21, 2024
5b89b22
mfreadwrite/reader: Send MFT_MESSAGE_NOTIFY_START_OF_STREAM on start …
rbernon May 22, 2024
5c9bf77
winegstreamer: Implement drain and flush for the audio decoder.
rbernon May 22, 2024
d74d968
winegstreamer: Generate timestamps relative to the first input sample.
rbernon May 22, 2024
fa463d5
winegstreamer/new_media_source: Snap seek to the previous keyframe.
rbernon May 22, 2024
c529a9d
winegstreamer/audio_decoder: Fill output block align and bytes per se…
rbernon Jun 19, 2024
2a1ea69
mfmediaengine: Ignore MEEndOfPresentation for the video frame sink.
rbernon Jun 26, 2024
9e28492
mfmediaengine: Implement D3D-aware video frame sink.
rbernon Jun 26, 2024
a609b66
winegstreamer: Continue autoplugging after protonvideoconverter eleme…
rbernon Jul 2, 2024
65c8ec0
winegstreamer/wg_parser: HACK: Return untranscoded codec format for t…
ziqingh May 7, 2024
9269e1f
winegstreamer/video_decoder: HACK: Try use I420 input if failed to cr…
ziqingh Apr 30, 2024
98b8f9d
winegstreamer: Check and use embedded caps in codec data.
rbernon Jul 9, 2024
96dc38a
winegstreamer: Use H264 GUID when converting caps to video format.
rbernon Jul 9, 2024
4c9b4ad
winegstreamer/media-converter: Avoid leaking lock when dumping is int…
rbernon Jul 9, 2024
8ce06ad
winegstreamer/video_decoder: Register the generic video decoder with …
rbernon Jul 9, 2024
f60fb2e
winegstreamer/new_media_source: Flush queued samples on flush-stop.
rbernon Jul 9, 2024
868104d
mfplat: Flush D3D11 context after CopySubresourceRegion on unmap.
rbernon Jul 16, 2024
add4e83
winegstreamer: Remove 'au' alignment for h264.
Jul 18, 2024
a5090ea
winegstreamer: Use "avc" H264 stream format when "codec_data" is prov…
rbernon Aug 12, 2024
5f18014
mfreadwrite: Always try inserting a converter for non-video streams.
rbernon Aug 12, 2024
e701f26
mmdevapi: Support getting IAudioClockAdjustment interface.
Etaash-mathamsetty Jul 5, 2024
bc73118
winegstreamer: Avoid using the aperture for padding with the H264 dec…
rbernon Aug 13, 2024
84c56e5
winegstreamer/resampler: Use WAVEFORMATEX for input/output media types.
rbernon Aug 16, 2024
f3697ea
winegstreamer/resampler: Recalculate resampler nBlockAlign and avgByt…
rbernon Aug 16, 2024
c1885c7
Revert "HACK: mmdevapi: Disable getting IAudioClockAdjustment via Get…
rbernon Sep 5, 2024
de88957
Revert "mmdevapi: Support getting IAudioClockAdjustment interface."
rbernon Sep 5, 2024
07194e8
ntdll: Allow sending to port 0 on UDP socket to succeed.
Sep 5, 2024
edb8528
winegstreamer: Allow application to drain queue.
Sep 3, 2024
bda0dc2
include: Add TCP_KEEPCNT and TCP_KEEPINTVL definitions.
w-flo Feb 29, 2024
c797df3
ws2_32/tests: Test TCP_KEEP{ALIVE,CNT,INTVL} options.
w-flo Feb 29, 2024
243b2b4
ws2_32: Implement TCP_KEEP{ALIVE,CNT,INTVL} options.
w-flo Feb 29, 2024
b6335b4
fsync: Fix checking if futex_waitv is available.
mati7337 Sep 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,6 @@ P: Zebediah Figura <[email protected]>
F: dlls/mf/tests/transform.c
F: dlls/winegstreamer/aac_decoder.c
F: dlls/winegstreamer/color_convert.c
F: dlls/winegstreamer/h264_decoder.c
F: dlls/winegstreamer/media_source.c
F: dlls/winegstreamer/mfplat.c
F: dlls/winegstreamer/resampler.c
Expand Down
2 changes: 1 addition & 1 deletion dlls/evr/evr.spec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
@ stub MFConvertToFP16Array
@ stdcall -import MFCopyImage(ptr long ptr long long long)
@ stdcall -import MFCreateDXSurfaceBuffer(ptr ptr long ptr)
@ stub MFCreateVideoMediaType
@ stdcall -import MFCreateVideoMediaType(ptr ptr)
@ stub MFCreateVideoMediaTypeFromBitMapInfoHeader
@ stdcall -import MFCreateVideoMediaTypeFromSubtype(ptr ptr)
@ stub MFCreateVideoMediaTypeFromVideoInfoHeader2
Expand Down
52 changes: 30 additions & 22 deletions dlls/evr/mixer.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ struct input_stream
IMFMediaType *media_type;
MFVideoNormalizedRect rect;
unsigned int zorder;
SIZE frame_size;
MFVideoArea aperture;
IMFSample *sample;
unsigned int sample_requested : 1;
};
Expand Down Expand Up @@ -102,7 +102,6 @@ struct video_mixer
COLORREF rgba;
DXVA2_AYUVSample16 ayuv;
} bkgnd_color;
MFVideoArea aperture;
LONGLONG lower_bound;
LONGLONG upper_bound;
CRITICAL_SECTION cs;
Expand Down Expand Up @@ -763,7 +762,7 @@ static HRESULT video_mixer_collect_output_types(struct video_mixer *mixer, const

if (count && !(flags & MFT_SET_TYPE_TEST_ONLY))
{
UINT32 fixed_samples, interlace_mode;
UINT32 fixed_samples, interlace_mode, width = video_desc->SampleWidth, height = video_desc->SampleHeight;
MFVideoArea aperture;
UINT64 par;

Expand All @@ -775,12 +774,18 @@ static HRESULT video_mixer_collect_output_types(struct video_mixer *mixer, const

memcpy(&subtype, &MFVideoFormat_Base, sizeof(subtype));
memset(&aperture, 0, sizeof(aperture));
if (FAILED(IMFMediaType_GetBlob(media_type, &MF_MT_GEOMETRIC_APERTURE, (UINT8 *)&aperture,
if (SUCCEEDED(IMFMediaType_GetBlob(media_type, &MF_MT_GEOMETRIC_APERTURE, (UINT8 *)&aperture,
sizeof(aperture), NULL)))
{
aperture.Area.cx = video_desc->SampleWidth;
aperture.Area.cy = video_desc->SampleHeight;
width = aperture.OffsetX.value + aperture.Area.cx;
height = aperture.OffsetX.value + aperture.Area.cy;
}
else
{
aperture.Area.cx = width;
aperture.Area.cy = height;
}

interlace_mode = video_mixer_get_interlace_mode_from_video_desc(video_desc);
mf_get_attribute_uint64(media_type, &MF_MT_PIXEL_ASPECT_RATIO, &par, (UINT64)1 << 32 | 1);
mf_get_attribute_uint32(media_type, &MF_MT_FIXED_SIZE_SAMPLES, &fixed_samples, 1);
Expand All @@ -795,7 +800,7 @@ static HRESULT video_mixer_collect_output_types(struct video_mixer *mixer, const
MFCreateMediaType(&rt_media_type);
IMFMediaType_CopyAllItems(media_type, (IMFAttributes *)rt_media_type);
IMFMediaType_SetGUID(rt_media_type, &MF_MT_SUBTYPE, &subtype);
IMFMediaType_SetUINT64(rt_media_type, &MF_MT_FRAME_SIZE, (UINT64)aperture.Area.cx << 32 | aperture.Area.cy);
IMFMediaType_SetUINT64(rt_media_type, &MF_MT_FRAME_SIZE, (UINT64)width << 32 | height);
IMFMediaType_SetBlob(rt_media_type, &MF_MT_GEOMETRIC_APERTURE, (const UINT8 *)&aperture, sizeof(aperture));
IMFMediaType_SetBlob(rt_media_type, &MF_MT_MINIMUM_DISPLAY_APERTURE, (const UINT8 *)&aperture, sizeof(aperture));
IMFMediaType_SetUINT32(rt_media_type, &MF_MT_INTERLACE_MODE, interlace_mode);
Expand Down Expand Up @@ -884,8 +889,15 @@ static HRESULT WINAPI video_mixer_transform_SetInputType(IMFTransform *iface, DW
if (mixer->inputs[0].media_type)
IMFMediaType_Release(mixer->inputs[0].media_type);
mixer->inputs[0].media_type = media_type;
mixer->inputs[0].frame_size.cx = video_desc.SampleWidth;
mixer->inputs[0].frame_size.cy = video_desc.SampleHeight;

if (FAILED(IMFMediaType_GetBlob(media_type, &MF_MT_GEOMETRIC_APERTURE,
(BYTE *)&mixer->inputs[0].aperture, sizeof(mixer->inputs[0].aperture), NULL)))
{
memset(&mixer->inputs[0].aperture, 0, sizeof(mixer->inputs[0].aperture));
mixer->inputs[0].aperture.Area.cx = video_desc.SampleWidth;
mixer->inputs[0].aperture.Area.cy = video_desc.SampleHeight;
}

IMFMediaType_AddRef(mixer->inputs[0].media_type);
}
CoTaskMemFree(guids);
Expand Down Expand Up @@ -962,11 +974,6 @@ static HRESULT WINAPI video_mixer_transform_SetOutputType(IMFTransform *iface, D
if (SUCCEEDED(hr = IDirectXVideoProcessorService_CreateVideoProcessor(service, &mixer->output.rt_formats[i].device,
&video_desc, rt_format, MAX_MIXER_INPUT_SUBSTREAMS, &mixer->processor)))
{
if (FAILED(IMFMediaType_GetBlob(type, &MF_MT_GEOMETRIC_APERTURE, (UINT8 *)&mixer->aperture,
sizeof(mixer->aperture), NULL)))
{
memset(&mixer->aperture, 0, sizeof(mixer->aperture));
}
if (mixer->output.media_type)
IMFMediaType_Release(mixer->output.media_type);
mixer->output.media_type = type;
Expand Down Expand Up @@ -1297,9 +1304,9 @@ static void video_mixer_render(struct video_mixer *mixer, IDirect3DSurface9 *rt)
DXVA2_VideoProcessBltParams params = { 0 };
MFVideoNormalizedRect zoom_rect;
struct input_stream *stream;
MFVideoArea aperture;
HRESULT hr = S_OK;
unsigned int i;
RECT dst;

if (FAILED(IMFAttributes_GetBlob(mixer->attributes, &VIDEO_ZOOM_RECT, (UINT8 *)&zoom_rect,
sizeof(zoom_rect), NULL)))
Expand All @@ -1308,8 +1315,11 @@ static void video_mixer_render(struct video_mixer *mixer, IDirect3DSurface9 *rt)
zoom_rect.right = zoom_rect.bottom = 1.0f;
}

SetRect(&dst, 0, 0, mixer->aperture.Area.cx, mixer->aperture.Area.cy);
OffsetRect(&dst, mixer->aperture.OffsetX.value, mixer->aperture.OffsetY.value);
if (FAILED(IMFMediaType_GetBlob(mixer->output.media_type, &MF_MT_GEOMETRIC_APERTURE,
(UINT8 *)&aperture, sizeof(aperture), NULL)))
aperture = mixer->inputs[0].aperture;
SetRect(&params.TargetRect, 0, 0, aperture.Area.cx, aperture.Area.cy);
OffsetRect(&params.TargetRect, aperture.OffsetX.value, aperture.OffsetY.value);

for (i = 0; i < mixer->input_count; ++i)
{
Expand All @@ -1326,8 +1336,9 @@ static void video_mixer_render(struct video_mixer *mixer, IDirect3DSurface9 *rt)

/* Full input frame corrected to full destination rectangle. */

video_mixer_scale_rect(&sample->SrcRect, stream->frame_size.cx, stream->frame_size.cy, &zoom_rect);
CopyRect(&sample->DstRect, &dst);
video_mixer_scale_rect(&sample->SrcRect, stream->aperture.Area.cx, stream->aperture.Area.cy, &zoom_rect);
OffsetRect(&sample->SrcRect, stream->aperture.OffsetX.value, stream->aperture.OffsetY.value);
CopyRect(&sample->DstRect, &params.TargetRect);
video_mixer_correct_aspect_ratio(&sample->SrcRect, &sample->DstRect);

if (video_mixer_rect_needs_scaling(&stream->rect))
Expand All @@ -1340,9 +1351,6 @@ static void video_mixer_render(struct video_mixer *mixer, IDirect3DSurface9 *rt)

if (SUCCEEDED(hr))
{
SetRect(&params.TargetRect, 0, 0, mixer->aperture.Area.cx, mixer->aperture.Area.cy);
OffsetRect(&params.TargetRect, mixer->aperture.OffsetX.value, mixer->aperture.OffsetY.value);

params.BackgroundColor = mixer->bkgnd_color.ayuv;
params.Alpha = DXVA2_Fixed32OpaqueAlpha();

Expand Down
24 changes: 14 additions & 10 deletions dlls/evr/presenter.c
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,6 @@ static HRESULT video_presenter_configure_output_type(struct video_presenter *pre
static HRESULT video_presenter_invalidate_media_type(struct video_presenter *presenter)
{
IMFMediaType *media_type, *candidate_type;
MFVideoArea aperture = {{ 0 }};
unsigned int idx = 0;
RECT rect;
HRESULT hr;
Expand All @@ -374,18 +373,23 @@ static HRESULT video_presenter_invalidate_media_type(struct video_presenter *pre

video_presenter_get_native_video_size(presenter);

rect = presenter->dst_rect;
if (rect.left == 0 && rect.right == 0 && rect.bottom == 0 && rect.top == 0)
while (SUCCEEDED(hr = IMFTransform_GetOutputAvailableType(presenter->mixer, 0, idx++, &candidate_type)))
{
rect.right = presenter->native_size.cx;
rect.bottom = presenter->native_size.cy;
}
MFVideoArea aperture = {{ 0 }};

aperture.Area.cx = rect.right - rect.left;
aperture.Area.cy = rect.bottom - rect.top;
rect = presenter->dst_rect;
if (!IsRectEmpty(&rect))
{
aperture.Area.cx = rect.right - rect.left;
aperture.Area.cy = rect.bottom - rect.top;
}
else if (FAILED(IMFMediaType_GetBlob(candidate_type, &MF_MT_GEOMETRIC_APERTURE, (UINT8 *)&aperture,
sizeof(aperture), NULL)))
{
aperture.Area.cx = presenter->native_size.cx;
aperture.Area.cy = presenter->native_size.cy;
}

while (SUCCEEDED(hr = IMFTransform_GetOutputAvailableType(presenter->mixer, 0, idx++, &candidate_type)))
{
/* FIXME: check that d3d device supports this format */

if (FAILED(hr = IMFMediaType_CopyAllItems(candidate_type, (IMFAttributes *)media_type)))
Expand Down
Loading