From: Brendan McGrath bmcgrath@codeweavers.com
Windows doesn't support I420 10LE, but uses P010 instead, thus GST_VIDEO_FORMAT_I420_10LE is ultimately converted to GST_VIDEO_FORMAT_P010_10LE. --- dlls/winegstreamer/mfplat.c | 1 + dlls/winegstreamer/quartz_parser.c | 1 + dlls/winegstreamer/unixlib.h | 1 + dlls/winegstreamer/wg_format.c | 5 +++++ 4 files changed, 8 insertions(+)
diff --git a/dlls/winegstreamer/mfplat.c b/dlls/winegstreamer/mfplat.c index fd2c6995d8c..3cddfc2f7dd 100644 --- a/dlls/winegstreamer/mfplat.c +++ b/dlls/winegstreamer/mfplat.c @@ -181,6 +181,7 @@ video_formats[] = {&MFVideoFormat_ABGR32, WG_VIDEO_FORMAT_RGBA}, {&MFVideoFormat_AYUV, WG_VIDEO_FORMAT_AYUV}, {&MFVideoFormat_I420, WG_VIDEO_FORMAT_I420}, + {&MFVideoFormat_P010, WG_VIDEO_FORMAT_P010_10LE}, {&MFVideoFormat_IYUV, WG_VIDEO_FORMAT_I420}, {&MFVideoFormat_NV12, WG_VIDEO_FORMAT_NV12}, {&MFVideoFormat_UYVY, WG_VIDEO_FORMAT_UYVY}, diff --git a/dlls/winegstreamer/quartz_parser.c b/dlls/winegstreamer/quartz_parser.c index 19b104d55df..a53a5e2504a 100644 --- a/dlls/winegstreamer/quartz_parser.c +++ b/dlls/winegstreamer/quartz_parser.c @@ -497,6 +497,7 @@ static const GUID *wg_video_format_get_mediasubtype(enum wg_video_format format) case WG_VIDEO_FORMAT_WMV3: return &MEDIASUBTYPE_WMV3; case WG_VIDEO_FORMAT_WMVA: return &MEDIASUBTYPE_WMVA; case WG_VIDEO_FORMAT_WVC1: return &MEDIASUBTYPE_WVC1; + case WG_VIDEO_FORMAT_P010_10LE: return &MEDIASUBTYPE_P010; }
assert(0); diff --git a/dlls/winegstreamer/unixlib.h b/dlls/winegstreamer/unixlib.h index 83e38849fa9..89e577517be 100644 --- a/dlls/winegstreamer/unixlib.h +++ b/dlls/winegstreamer/unixlib.h @@ -108,6 +108,7 @@ enum wg_video_format WG_VIDEO_FORMAT_YUY2, WG_VIDEO_FORMAT_YV12, WG_VIDEO_FORMAT_YVYU, + WG_VIDEO_FORMAT_P010_10LE,
WG_VIDEO_FORMAT_WMV1, WG_VIDEO_FORMAT_WMV2, diff --git a/dlls/winegstreamer/wg_format.c b/dlls/winegstreamer/wg_format.c index 12fee8c4923..aecc8d80dce 100644 --- a/dlls/winegstreamer/wg_format.c +++ b/dlls/winegstreamer/wg_format.c @@ -151,6 +151,10 @@ static enum wg_video_format wg_video_format_from_gst(GstVideoFormat format) return WG_VIDEO_FORMAT_AYUV; case GST_VIDEO_FORMAT_I420: return WG_VIDEO_FORMAT_I420; + case GST_VIDEO_FORMAT_I420_10LE: + return WG_VIDEO_FORMAT_P010_10LE; + case GST_VIDEO_FORMAT_P010_10LE: + return WG_VIDEO_FORMAT_P010_10LE; case GST_VIDEO_FORMAT_NV12: return WG_VIDEO_FORMAT_NV12; case GST_VIDEO_FORMAT_UYVY: @@ -771,6 +775,7 @@ static GstVideoFormat wg_video_format_to_gst(enum wg_video_format format) case WG_VIDEO_FORMAT_YUY2: return GST_VIDEO_FORMAT_YUY2; case WG_VIDEO_FORMAT_YV12: return GST_VIDEO_FORMAT_YV12; case WG_VIDEO_FORMAT_YVYU: return GST_VIDEO_FORMAT_YVYU; + case WG_VIDEO_FORMAT_P010_10LE: return GST_VIDEO_FORMAT_P010_10LE; default: return GST_VIDEO_FORMAT_UNKNOWN; } }