2014-6-8 11:06 /
VA简直自恋,一个EffectVideo也能如此折腾。


struct OMVDataPackage
{
        DWORD DataPackID;
        DWORD DataPackType;
        DWORD DataPackSize;
        DWORD DataPackStartOffset;
        DWORD DataPackRelated;
        DWORD DataPackFirstFrameID;
};


struct OMVFrameInfo
{
        DWORD FrameID;
        DWORD SavedPackID; //哪一个Package
        DWORD SavedPackIndex; //Package中的哪一个
        DWORD FrameTime;
        DWORD UnknownID;
        DWORD UnknownID2;
        DWORD FrameStartTime;
        DWORD FrameEndTime;
};


//0 - 0x2b
struct OMVHeader
{
        DWORD PackageIndexOffset;//Rewrite体验版啥的貌似直接记录的是标准ogv开始的位置
        WORD  Version;//
        //.......一堆Unknown的,也没法知道其作用
        DWORD UsingOMVEncoding; //这个是Header中我最关心的东西,为2的时候,数据就是标准的,为1的时候,数据用了“1/3加密”
};


struct OMVInfo
{
        DWORD VideoWidth;
        DWORD VideoHeigth;
        DWORD FrameTime;//感觉这里记录了 ,接下来的FrameInfo里记录它干啥 【谜
        DWORD OGVStreamID;
        DWORD PackageCount;
        DWORD FrameCount;
};


在OMVInfo 和 Package 之间还有一段作用未知的数据 。反正现在能机智地提取OMV了
最后,这些神烦的index完毕后,就是ogv了。