mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-31 19:49:50 +00:00
winegstreamer: Always check the return value from mf_media_type_from_wg_format().
mf_media_type_from_wg_format() may return NULL. Fix Airborne Kingdom crash at start because WG_AUDIO_FORMAT_UNKNOWN is passed to mf_media_type_from_wg_format(). Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
This commit is contained in:
parent
4244b4b138
commit
6f8990b431
1 changed files with 10 additions and 3 deletions
|
@ -879,6 +879,12 @@ static HRESULT media_stream_init_desc(struct media_stream *stream)
|
|||
IMFMediaType *base_type = mf_media_type_from_wg_format(&format);
|
||||
GUID base_subtype;
|
||||
|
||||
if (!base_type)
|
||||
{
|
||||
hr = MF_E_INVALIDMEDIATYPE;
|
||||
goto done;
|
||||
}
|
||||
|
||||
IMFMediaType_GetGUID(base_type, &MF_MT_SUBTYPE, &base_subtype);
|
||||
|
||||
stream_types[0] = base_type;
|
||||
|
@ -911,8 +917,8 @@ static HRESULT media_stream_init_desc(struct media_stream *stream)
|
|||
WG_AUDIO_FORMAT_F32LE,
|
||||
};
|
||||
|
||||
stream_types[0] = mf_media_type_from_wg_format(&format);
|
||||
type_count = 1;
|
||||
if ((stream_types[0] = mf_media_type_from_wg_format(&format)))
|
||||
type_count = 1;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(audio_types); i++)
|
||||
{
|
||||
|
@ -921,7 +927,8 @@ static HRESULT media_stream_init_desc(struct media_stream *stream)
|
|||
continue;
|
||||
new_format = format;
|
||||
new_format.u.audio.format = audio_types[i];
|
||||
stream_types[type_count++] = mf_media_type_from_wg_format(&new_format);
|
||||
if ((stream_types[type_count] = mf_media_type_from_wg_format(&new_format)))
|
||||
type_count++;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue