Rémi Bernon : mf: Increase min_buffer_size to MF_MT_AUDIO_AVG_BYTES_PER_SECOND.
Alexandre Julliard
julliard at winehq.org
Tue Aug 2 14:53:35 CDT 2022
Module: wine
Branch: master
Commit: 6d64e40776886a264465a9a90e5f7c81797904cf
URL: https://gitlab.winehq.org/wine/wine/-/commit/6d64e40776886a264465a9a90e5f7c81797904cf
Author: Rémi Bernon <rbernon at codeweavers.com>
Date: Mon Jun 27 14:12:43 2022 +0200
mf: Increase min_buffer_size to MF_MT_AUDIO_AVG_BYTES_PER_SECOND.
When it is specified. The Resampler transform exposes the block
alignment in its output stream info cbSize, and the session then
otherwise reads data one audio frame at a time.
---
dlls/mf/session.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dlls/mf/session.c b/dlls/mf/session.c
index a78e7cfc473..87fe77a730f 100644
--- a/dlls/mf/session.c
+++ b/dlls/mf/session.c
@@ -1438,6 +1438,7 @@ static HRESULT session_set_transform_stream_info(struct topo_node *node)
struct transform_stream *streams;
unsigned int block_alignment;
IMFMediaType *media_type;
+ UINT32 bytes_per_second;
GUID major = { 0 };
HRESULT hr;
@@ -1479,6 +1480,8 @@ static HRESULT session_set_transform_stream_info(struct topo_node *node)
&& SUCCEEDED(IMFMediaType_GetUINT32(media_type, &MF_MT_AUDIO_BLOCK_ALIGNMENT, &block_alignment)))
{
streams[i].min_buffer_size = block_alignment;
+ if (SUCCEEDED(IMFMediaType_GetUINT32(media_type, &MF_MT_AUDIO_AVG_BYTES_PER_SECOND, &bytes_per_second)))
+ streams[i].min_buffer_size = max(streams[i].min_buffer_size, bytes_per_second);
}
IMFMediaType_Release(media_type);
}
More information about the wine-cvs
mailing list