diff --git a/Avisynth/delogo.h b/Avisynth/delogo.h index cf560c1..832c9de 100644 --- a/Avisynth/delogo.h +++ b/Avisynth/delogo.h @@ -146,13 +146,14 @@ class deLOGO : public GenericVideoFilter { } // ロゴデータ数取得 - unsigned char num; + LOGO_FILE_HEADER lfh; DWORD readed = 0; - SetFilePointer(hfile,LOGO_FILE_HEADER_STR_SIZE,0,FILE_BEGIN); - ReadFile(hfile,&num,1,&readed,NULL); - if(readed!=1){ + SetFilePointer(hfile,0,0,FILE_BEGIN); + ReadFile(hfile,&lfh,sizeof(LOGO_FILE_HEADER),&readed,NULL); + if(readed!=sizeof(LOGO_FILE_HEADER)){ throw "Failed in reading logofile. - ロゴデータの読み込みに失敗しました"; } + unsigned int num = SWAP_ENDIAN(lfh.logonum.l); // 該当ロゴを探す int i; diff --git a/Avisynth/delogo.rc b/Avisynth/delogo.rc index b5c95ad..aedf0b8 100644 --- a/Avisynth/delogo.rc +++ b/Avisynth/delogo.rc @@ -7,8 +7,8 @@ // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,0,4,0 - PRODUCTVERSION 0,0,4,0 + FILEVERSION 0,0,5,0 + PRODUCTVERSION 0,0,5,0 FILEFLAGSMASK 0x3fL FILEFLAGS 0x0L FILEOS VOS__WINDOWS32 @@ -21,12 +21,12 @@ BEGIN BEGIN VALUE "Comments", "YUY2,YV12 対応\0" VALUE "FileDescription", "透過性ロゴ フィルタ Plugin for AviSynth 2.5\0" - VALUE "FileVersion", "0.0.4.0\0" + VALUE "FileVersion", "0.0.5.0\0" VALUE "InternalName", "deLogo\0" VALUE "LegalCopyright", "(C) MakKi\0" VALUE "OriginalFilename", "delogo.dll\0" VALUE "ProductName", "透過性ロゴ フィルタ\0" - VALUE "ProductVersion", "0.04\0" + VALUE "ProductVersion", "0.05\0" END END BLOCK "VarFileInfo" diff --git a/logo.h b/logo.h index 3952080..d595399 100644 --- a/logo.h +++ b/logo.h @@ -1,13 +1,11 @@ /*==================================================================== * ロゴパターン logo.h * -* -* * [ロゴデータファイル構造] * -* "logo file x.xx\n" // ファイルヘッダ文字列:バージョン情報とか(31byte) +* "" // ファイルヘッダ文字列:バージョン情報(28byte) * +---- -* | ファイルに含まれるロゴデータの数(1byte) +* | ファイルに含まれるロゴデータの数(4byte, BigEndian) * +---- * | LOGO_HEADER // データヘッダ * +---- @@ -25,25 +23,24 @@ #ifndef ___LOGO_H #define ___LOGO_H -/* ロゴファイルヘッダ -* 31BYTEの文字列 -* データ数 1BYTE -*/ -#define LOGO_FILE_HEADER_STR "\0\0\0\0\0\0\0\0\0\0\0" -#define LOGO_FILE_HEADER_STR_SIZE 31 +/* ロゴヘッダ文字列 */ +#define LOGO_FILE_HEADER_STR "\0\0\0\0\0" +#define LOGO_FILE_HEADER_STR_SIZE 28 +/*-------------------------------------------------------------------- +* LOGO_FILE_HEADER 構造体 +* ファイルヘッダ. +* バージョン情報と含まれるデータ数 +*-------------------------------------------------------------------*/ typedef struct { - char str[LOGO_FILE_HEADER_STR_SIZE]; - unsigned char logonum; + char str[LOGO_FILE_HEADER_STR_SIZE]; + union{ + unsigned long l; + unsigned char c[4]; + } logonum; } LOGO_FILE_HEADER; - -/* ロゴデータ最大サイズ: -* ロゴデータをプロファイルに保存しないようにしたため、 -* サイズ制限は実質なくなった -*/ -#define LOGO_MAXPIXEL (21840) -#define LOGO_MAXSIZE (0x40000) +#define SWAP_ENDIAN(x) (((x&0xff)<<24)|((x&0xff00)<<8)|((x&0xff0000)>>8)|((x&0xff000000)>>24)) /* 不透明度最大値 */ #define LOGO_MAX_DP 1000 diff --git a/readme.txt b/readme.txt index 208d34a..495e24c 100644 --- a/readme.txt +++ b/readme.txt @@ -1,5 +1,5 @@ ----------------------------------------------------------------------- - 透過性ロゴ フィルタ for AviSynth 2.5 ver 0.04 by MakKi + 透過性ロゴ フィルタ for AviSynth 2.5 ver 0.05 by MakKi ----------------------------------------------------------------------- 【機能】 @@ -67,6 +67,7 @@ 【更新履歴】 + 2008/01/07 ver 0.05 ・ロゴファイルの最大データ数拡張に対応 2007/06/06 ver 0.04 ・depthが効かない場合があるバグを修正 ・yc_y,yc_u,yc_vの効きが弱いバグを修正 2007/03/21 ver 0.03 ・全部書き直し