From: Thong Thai thong.thai@amd.com
Signed-off-by: Thong Thai thong.thai@amd.com --- dlls/winegstreamer/unixlib.c | 2 +- dlls/winegstreamer/wg_transform.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/dlls/winegstreamer/unixlib.c b/dlls/winegstreamer/unixlib.c index 513ece95a90..e4702b2abbb 100644 --- a/dlls/winegstreamer/unixlib.c +++ b/dlls/winegstreamer/unixlib.c @@ -84,7 +84,7 @@ GstElement *find_element(GstElementFactoryListType type, GstCaps *src_caps, GstC GList *tmp, *transforms; const gchar *name;
- if (!(transforms = gst_element_factory_list_get_elements(type, GST_RANK_MARGINAL))) + if (!(transforms = gst_element_factory_list_get_elements(type, GST_RANK_NONE))) goto done;
if (src_caps) diff --git a/dlls/winegstreamer/wg_transform.c b/dlls/winegstreamer/wg_transform.c index e2b14527a20..f31f5286c36 100644 --- a/dlls/winegstreamer/wg_transform.c +++ b/dlls/winegstreamer/wg_transform.c @@ -355,6 +355,24 @@ NTSTATUS wg_transform_create(void *args) switch (input_format.major_type) { case WG_MAJOR_TYPE_VIDEO_H264: + GstElement *hw_element = find_element(GST_ELEMENT_FACTORY_TYPE_HARDWARE, src_caps, raw_caps); + if (hw_element) { + if (!(element = create_element("h264parse", "base")) + || !append_element(transform->container, element, &first, &last)) + { + free(hw_element); + gst_caps_unref(raw_caps); + goto out; + } + if (!(element = hw_element) + || !append_element(transform->container, element, &first, &last)) + { + free(hw_element); + gst_caps_unref(raw_caps); + goto out; + } + break; + } case WG_MAJOR_TYPE_AUDIO_MPEG1: case WG_MAJOR_TYPE_AUDIO_MPEG4: case WG_MAJOR_TYPE_AUDIO_WMA: