I hate to say it, but I don't think I find this patch particularly convincing. The diffstat isn't favorable, for one, and it's hard to immediately tell why, but I think e.g. wg_format_is_uncompressed() and wg_format_is_wmv() are one reason, and their existence is a little disturbing since it doesn't particularly feel like an improvement over the separate major types.
I also don't like that wg_format_is_uncompressed() exists alongside wg_format_is_compressed() but isn't its inverse [though I can also kind of see why].
I also note that we're not really doing anything to actually factor *out* any logic, which is particularly evident when looking at e.g. amt_to_wg_format_video_*(). Not sure if that was intended to be left to later patches, but well, that was the main point of this series.
What I would recommend doing—and I know this is going to require more work—is to start with the probably more clearly desirable transformation, i.e. merging the structure fields together. That could even be done one patch at a time, i.e. merge u.audio_mpeg1 into u.audio, then u.audio_mpeg4 into u.audio, etc. Then, after that, we can consider turning major types into minor types.