I support the idea of adding generic video and audio decoders. On native, we can also install new decoders. Except for the default decoder classes that native Windows have, we can treat the gstreamer genric decoders as plugin add-ons.
For the decoders that native windows have, we use the spcific formats. Otherwise, we use the opaque formats and make the generic decoders to handle it.
So the generic decoders are guarantees. We try to find specific decoder first, and fall back to the generic decoders if we fail to find a valid specific decoder.
Also, is there a reason that we need to handle audio and video major types separately? Couldn't we just use the existing WG_MAJOR_TYPE_UNKNOWN and have done? It'd mean a lot less work, which would make it much easier to justify a change like this.
Also, if the caps are unknown, why expose attributes like channels, rate, width, height, FPS?
It looks like the similar situation in !5369