mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-18 09:26:17 +00:00
winegstreamer: Implement MPEG-1 audio to IMFMediaType conversion.
This commit is contained in:
parent
6013852094
commit
8f4bb2e9f9
|
@ -586,6 +586,28 @@ static IMFMediaType *mf_media_type_from_wg_format_video(const struct wg_format *
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static IMFMediaType *mf_media_type_from_wg_format_audio_mpeg1(const struct wg_format *format)
|
||||
{
|
||||
IMFMediaType *type;
|
||||
|
||||
if (FAILED(MFCreateMediaType(&type)))
|
||||
return NULL;
|
||||
|
||||
if (format->u.audio.layer != 3)
|
||||
FIXME("Unhandled layer %#x.\n", format->u.audio.layer);
|
||||
|
||||
IMFMediaType_SetGUID(type, &MF_MT_MAJOR_TYPE, &MFMediaType_Audio);
|
||||
IMFMediaType_SetGUID(type, &MF_MT_SUBTYPE, &MFAudioFormat_MP3);
|
||||
IMFMediaType_SetGUID(type, &MF_MT_AM_FORMAT_TYPE, &FORMAT_WaveFormatEx);
|
||||
IMFMediaType_SetUINT32(type, &MF_MT_AUDIO_NUM_CHANNELS, format->u.audio.channels);
|
||||
IMFMediaType_SetUINT32(type, &MF_MT_AUDIO_CHANNEL_MASK, format->u.audio.channel_mask);
|
||||
IMFMediaType_SetUINT32(type, &MF_MT_AUDIO_PREFER_WAVEFORMATEX, TRUE);
|
||||
IMFMediaType_SetUINT32(type, &MF_MT_FIXED_SIZE_SAMPLES, TRUE);
|
||||
IMFMediaType_SetUINT32(type, &MF_MT_ALL_SAMPLES_INDEPENDENT, TRUE);
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
static IMFMediaType *mf_media_type_from_wg_format_audio_mpeg4(const struct wg_format *format)
|
||||
{
|
||||
IMFMediaType *type;
|
||||
|
@ -697,7 +719,6 @@ IMFMediaType *mf_media_type_from_wg_format(const struct wg_format *format)
|
|||
{
|
||||
switch (format->major_type)
|
||||
{
|
||||
case WG_MAJOR_TYPE_AUDIO_MPEG1:
|
||||
case WG_MAJOR_TYPE_VIDEO_CINEPAK:
|
||||
case WG_MAJOR_TYPE_VIDEO_INDEO:
|
||||
case WG_MAJOR_TYPE_VIDEO_MPEG1:
|
||||
|
@ -715,6 +736,9 @@ IMFMediaType *mf_media_type_from_wg_format(const struct wg_format *format)
|
|||
case WG_MAJOR_TYPE_VIDEO_H264:
|
||||
return mf_media_type_from_wg_format_h264(format);
|
||||
|
||||
case WG_MAJOR_TYPE_AUDIO_MPEG1:
|
||||
return mf_media_type_from_wg_format_audio_mpeg1(format);
|
||||
|
||||
case WG_MAJOR_TYPE_AUDIO_MPEG4:
|
||||
return mf_media_type_from_wg_format_audio_mpeg4(format);
|
||||
|
||||
|
|
Loading…
Reference in a new issue