| 29 | } |
| 30 | |
| 31 | static inline TCodecID CodecID(const ICodec* c) { |
| 32 | const TStringBuf name = c->Name(); |
| 33 | |
| 34 | union { |
| 35 | ui16 Parts[2]; |
| 36 | ui32 Data; |
| 37 | } x; |
| 38 | |
| 39 | x.Data = MurmurHash<ui32>(name.data(), name.size()); |
| 40 | |
| 41 | return x.Parts[1] ^ x.Parts[0]; |
| 42 | } |
| 43 | |
| 44 | inline const ICodec* Find(TCodecID id) const { |
| 45 | TByID::const_iterator it = ByID.find(id); |