Commit 0250e84b authored by Anton Baskanov's avatar Anton Baskanov Committed by Alexandre Julliard

winegstreamer: Support MPEG-1 audio in wg_transform.

parent 0d956959
......@@ -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:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment