Log in

View Full Version : "vidc." or "VIDC." ?


Mick
11th December 2013, 16:35
Hi everybody,
i currently write a new Inf-File for a Codec (VfW) and some Codecs use for example "vidc.YUY2" while other use "VIDC.YUY2" for the Registry and System.ini File. Does this matter or is it just a cosmetic Issue or does it affect the functionality ? Vista/7/8 for example use "vidc" and "VIDC", that's why I'm asking. Thanks for your Help :)

Cheers, Mick.

raffriff42
11th December 2013, 21:31
Microsoft says "VIDC." (http://msdn.microsoft.com/en-us/library/windows/desktop/dd798700%28v=vs.85%29.aspx)

It's a FourCC (https://en.wikipedia.org/wiki/FourCC), therefore supposedly case-sensitive. Doubt if it matters in the context of registries and INI files, but fourcc parsing is case sensitive in Virtualdub, to cite (https://github.com/fishman/virtualdub/blob/master/VirtualDub/source/AVIReadHandler.cpp#L1224) one example.

EDIT at first I thought it might be a MIME type (https://en.wikipedia.org/wiki/Mime_type) or a ProgID (https://en.wikipedia.org/wiki/ProgID), but not so AFAICT.

Mick
12th December 2013, 21:24
Hi raffriff42,
many thanx for your reply. I figured that "vidc" is uppercase but was not sure about it. But this also means, that "Huffyuv" for example besides other Codecs use the wrong "vidc" in their Inf-Files. This poses another Question: In Win Vista/7/8 there are Entires like "VIDC.YUY2" and under the Key WoW64 again, but lowercase, "vidc.yuy2", defining the same Codec (msyuv.dll). I do know that there are differences between some Uppercase and Lowercase Definitions, but does this matter ? Could it result into a Error because the FourCC is Lowercase ?

It must have some effect because when i set "YUY2" for example to "yuy2", VirtualDub (1.9.11) uses Xvid (1.2.2) instead of msyuv.dll. Changing it back to Uppercase ("YUY2") VirtualDub uses the msyuv.dll, same effect with "UYVY", also handled by the same dll-File. Or, ist this a Bug in VirtualDub ?

Cheers, Mick.

raffriff42
13th December 2013, 01:35
Ugh, please disregard my misinformed post above, with apologies. I don't have a clue :(

filler56789
13th December 2013, 12:57
Just my wild guess...

vidc => compressor, OR "FourCC Description Code"

VIDC => decompressor, OR "FourCC Used Codec"

clsid
13th December 2013, 17:48
The values are case INsensitive.

The order in which the entries were added matter for the order in which the codecs are used. Oldest one first. At least that is the (undocumented) behavior I noticed. Of course only when there is no direct FourCC match.

Mick
27th October 2014, 21:43
@All
I know this is a old one, but i just thought i share my news about this Matter with you all.

@raffriff42
No Problem :) I've been around Computers a long time and don't know everything either ;)

@filler56789
Quote:
"Just my wild guess...
vidc => compressor, OR "FourCC Description Code"
VIDC => decompressor, OR "FourCC Used Codec" "
Quote end

Not bad and pretty good Guess from you, but it's the other way around. According to the Guys at Microsoft, the "vidc.yuy2" would be the FourCC Description Code for the Decompressor and "VIDC.YUY2" the FourCC used Codec for the Compression.

In the HKLM,Drivers32 Section, DirectX uses "VIDC" and in the "SysWoW64" Section "vidc" including lowercase FourCC's. Active Movie also uses all Codec FourCC's in lowercase, only for the System.ini in the sections "Drivers32" and in the Registry they are uppercase. Further, they are also uppercase for the ICM Descriptions. (HKLM,System,CurrentControlSet,MediaResources,ICM)

So, maybe this was helpful for others too and thanks for your replies. Oh, and sorry that it took so long but i forgot about this Post here at the Forum.

Cheers

Mick

clsid
27th October 2014, 21:56
You are wrong. It does not matter if you use lowercase or uppercase.

VFW codecs can be (and if fact usually are) both a compressor and a decompressor in one binary.

Mick
27th October 2014, 22:45
@clsid
Well then the Guys at Microsoft are wrong, not me. :) That's what they told me on the Phone and yes, i spoke with the right Persons, not any "newbies" because i know these Guys now for a very long time. Anyway, after altering the "vidc" and "VIDC" in the right places, the Problems disappeared with the Codec, so there must be a difference. As you might know, Microsoft is full of secrets ;)

And you are right, most Codecs are Compressors/Decompressors but in the Source Code you find many Times that for decompression "vidc" is used and on other Places "VIDC", both with a uppercase FourCC (YUY2 for example) for the same Codec. Thanks for your reply.

Cheers

Mick

foxyshadis
27th October 2014, 23:51
In those cases, that's because badly-written codecs or applications will incorrectly use case-sensitive comparisons when loading the registry, so changing the case is merely working around a bug. The standard has always been to make them upper-case, but bad coding practices are more common than good, unfortunately.

clsid
28th October 2014, 00:46
Yes, they are fucking idiots.

It must have some effect because when i set "YUY2" for example to "yuy2", VirtualDub (1.9.11) uses Xvid (1.2.2) instead of msyuv.dll. Changing it back to Uppercase ("YUY2") VirtualDub uses the msyuv.dll, same effect with "UYVY", also handled by the same dll-File. Or, ist this a Bug in VirtualDub ?The codecs are enumerated in order of creation/modification time of the Registry entry. Renaming an entry will put that codec on the end of the list. That is the actual behavior you experienced. The case does not matter.