I think the best way to deal with that would either be to skip adding the preferred format to the list if it's UNKNOWN, or to add a WG_VIDEO_FORMAT_I420_10LE which is translated to P010 in wg_parser_get_preferred_format
I would prefer to keep adding the preferred option (i.e. translate to P010) as this more closely matches Windows behavior (and who knows, some day we may find an application dependent on it).
But I would like to seek a bit more clarity about what we want (from both yourself and @rbernon).
It sounds like we want to distinguish between the preferred and current formats. So I guess on the unix side, we want to record the format from the decoder and then we would translate that to a supported Windows format GUID and supply that as the _preferred_ format on the DLL side (which up until now has been one-to-one between `GST_VIDEO_FORMAT` and GUID).
I also want to understand the role of the `WG_VIDEO_FORMAT` defines. Initially I thought it might be so we didn't need to include the GUIDs on the unix side, but I see we map directly from `GST_VIDEO_FORMAT` to GUID in `subtype_from_gst_video_format`. So I figured maybe it might be for mapping `GST_VIDEO_FORMAT` to a supported `WG_VIDEO_FORMAT`, so that `WG_VIDEO_FORMAT` could then be mapped one-to-one with a Windows GUID. It was this thought that prompted me to map it in `wg_video_format_from_gst`. But it sounds like we want to maintain a one-to-one relationship between `GST_VIDEO_FORMAT` and `WG_VIDEO_FORMAT`; so now I'm not sure of the `WG_VIDEO_FORMAT` defines purpose.