mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-15 05:57:27 +00:00
winegstreamer: Support MPEG-1 audio in wg_transform.
Signed-off-by: Anton Baskanov <baskanov@gmail.com> Signed-off-by: Zebediah Figura <zfigura@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
0d956959fa
commit
0250e84bf1
|
@ -331,6 +331,22 @@ static void wg_channel_mask_to_gst(GstAudioChannelPosition *positions, uint32_t
|
|||
}
|
||||
}
|
||||
|
||||
static GstCaps *wg_format_to_caps_mpeg1_audio(const struct wg_format *format)
|
||||
{
|
||||
GstCaps *caps;
|
||||
|
||||
if (!(caps = gst_caps_new_empty_simple("audio/mpeg")))
|
||||
return NULL;
|
||||
|
||||
gst_caps_set_simple(caps, "mpegversion", G_TYPE_INT, 1, NULL);
|
||||
gst_caps_set_simple(caps, "layer", G_TYPE_INT, format->u.mpeg1_audio.layer, NULL);
|
||||
gst_caps_set_simple(caps, "rate", G_TYPE_INT, format->u.mpeg1_audio.rate, NULL);
|
||||
gst_caps_set_simple(caps, "channels", G_TYPE_INT, format->u.mpeg1_audio.channels, NULL);
|
||||
gst_caps_set_simple(caps, "parsed", G_TYPE_BOOLEAN, TRUE, NULL);
|
||||
|
||||
return caps;
|
||||
}
|
||||
|
||||
static GstCaps *wg_format_to_caps_audio(const struct wg_format *format)
|
||||
{
|
||||
GstAudioChannelPosition positions[32];
|
||||
|
@ -495,7 +511,7 @@ GstCaps *wg_format_to_caps(const struct wg_format *format)
|
|||
case WG_MAJOR_TYPE_UNKNOWN:
|
||||
return gst_caps_new_any();
|
||||
case WG_MAJOR_TYPE_MPEG1_AUDIO:
|
||||
return NULL;
|
||||
return wg_format_to_caps_mpeg1_audio(format);
|
||||
case WG_MAJOR_TYPE_WMA:
|
||||
return wg_format_to_caps_wma(format);
|
||||
case WG_MAJOR_TYPE_H264:
|
||||
|
|
|
@ -227,6 +227,7 @@ NTSTATUS wg_transform_create(void *args)
|
|||
|| !transform_append_element(transform, element, &first, &last))
|
||||
goto out;
|
||||
/* fallthrough */
|
||||
case WG_MAJOR_TYPE_MPEG1_AUDIO:
|
||||
case WG_MAJOR_TYPE_WMA:
|
||||
if (!(element = transform_find_element(GST_ELEMENT_FACTORY_TYPE_DECODER, src_caps, raw_caps))
|
||||
|| !transform_append_element(transform, element, &first, &last))
|
||||
|
@ -236,7 +237,6 @@ NTSTATUS wg_transform_create(void *args)
|
|||
}
|
||||
break;
|
||||
|
||||
case WG_MAJOR_TYPE_MPEG1_AUDIO:
|
||||
case WG_MAJOR_TYPE_AUDIO:
|
||||
case WG_MAJOR_TYPE_VIDEO:
|
||||
case WG_MAJOR_TYPE_UNKNOWN:
|
||||
|
|
Loading…
Reference in a new issue