Skip to content

Commit

Permalink
2008-01-07
Browse files Browse the repository at this point in the history
  • Loading branch information
makiuchi-d committed Sep 13, 2015
1 parent 95a3542 commit 4acad88
Show file tree
Hide file tree
Showing 10 changed files with 105 additions and 67 deletions.
8 changes: 4 additions & 4 deletions delogo.rc
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,8 @@ FONT 9, "
// VERSION INFO
//
VS_VIRSION_INFO VERSIONINFO
FILEVERSION 0,0,9,1
PRODUCTVERSION 0,0,9
FILEVERSION 0,1,1,0
PRODUCTVERSION 0,1,1
FILEFLAGSMASK 0x3FL
FILEFLAGS 0x0L
FILEOS VOS__WINDOWS32
Expand All @@ -129,12 +129,12 @@ VS_VIRSION_INFO VERSIONINFO
{
// VALUE "Comments", "���S�T���v���񋟎ҕ�W��\0"
VALUE "FileDescription", "���ߐ����S �t�B���^ Plugin for AviUtl 0.98�ȍ~\0"
VALUE "FileVersion", "0.0.9.1\0"
VALUE "FileVersion", "0.1.1.0\0"
VALUE "InternalName", "deLogo\0"
VALUE "LegalCopyright", "(C) MakKi\0"
VALUE "OriginalFilename", "delogo.aup\0"
VALUE "ProductName", "���ߐ����S �t�B���^\0"
VALUE "ProductVersion", "0.09a\0"
VALUE "ProductVersion", "0.11\0"
}
}
BLOCK "VarFileInfo"
Expand Down
51 changes: 40 additions & 11 deletions filter.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*********************************************************************
* 透過性ロゴ(BSマークとか)除去フィルタ
* ver 0.10
* ver 0.11
*
* 2003
* 02/01: 製作開始
Expand Down Expand Up @@ -66,6 +66,10 @@
* 04/18: フィルタ名、パラメタ名を変更できるようにした。(0.09a)
* 2007
* 11/07: プロファイルの境界をフェードの基点にできるようにした。(0.10)
* 2008
* 01/07: ロゴのサイズ制限を撤廃
* 開始・終了パラメタの範囲変更(負の値も許可)
* ロゴファイルのデータ数を拡張(1byte -> 4byte)
*
*********************************************************************/

Expand Down Expand Up @@ -141,6 +145,9 @@ FILTER_DIALOG dialog;
LOGO_HEADER** logodata = NULL;
unsigned int logodata_n = 0;

void *adjdata = NULL; // 位置調節後ロゴデータ用バッファ
unsigned int adjdata_size = 0;

char ex_data[LOGO_MAX_NAME]; // 拡張データ領域

static UINT WM_SEND_LOGO_DATA =0; // ロゴ受信メッセージ
Expand Down Expand Up @@ -173,15 +180,21 @@ BOOL func_proc_add_logo(FILTER *fp,FILTER_PROC_INFO *fpip,LOGO_HEADER *lgh,int);
// FILTER_DLL構造体
//----------------------------
char filter_name[] = LOGO_FILTER_NAME;
char filter_info[] = LOGO_FILTER_NAME" ver 0.10 by MakKi";
char filter_info[] = LOGO_FILTER_NAME" ver 0.11 by MakKi";
#define track_N 10
#if track_N
TCHAR *track_name[] = { "位置 X", "位置 Y",
"深度", "Y", "Cb", "Cr",
"開始", "FadeIn", "FadeOut", "終了" }; // トラックバーの名前
int track_default[] = { 0, 0, 128, 0, 0, 0, 0, 0, 0, 0 }; // トラックバーの初期値
int track_s[] = { LOGO_XY_MIN, LOGO_XY_MIN, 0, -100, -100, -100, 0, 0, 0, 0 }; // トラックバーの下限値
int track_e[] = { LOGO_XY_MAX, LOGO_XY_MAX, 256, 100, 100, 100, LOGO_STED_MAX, LOGO_FADE_MAX, LOGO_FADE_MAX, LOGO_STED_MAX }; // トラックバーの上限値
int track_default[] = { 0, 0,
128, 0, 0, 0,
0, 0, 0, 0, 0 }; // トラックバーの初期値
int track_s[] = { LOGO_XY_MIN, LOGO_XY_MIN,
0, -100, -100, -100,
LOGO_STED_MIN, 0, 0, LOGO_STED_MIN }; // トラックバーの下限値
int track_e[] = { LOGO_XY_MAX, LOGO_XY_MAX,
256, 100, 100, 100,
LOGO_STED_MAX, LOGO_FADE_MAX, LOGO_FADE_MAX, LOGO_STED_MAX }; // トラックバーの上限値
#endif
#define check_N 3
#if check_N
Expand Down Expand Up @@ -321,6 +334,10 @@ BOOL func_exit( FILTER *fp )
logodata = NULL;
}

free(adjdata);
adjdata = NULL;
adjdata_size = 0;

return TRUE;
}

Expand All @@ -329,24 +346,35 @@ BOOL func_exit( FILTER *fp )
*===================================================================*/
BOOL func_proc(FILTER *fp,FILTER_PROC_INFO *fpip)
{
static char adjdata[LOGO_MAXSIZE];
unsigned int size;
int num;
int fade;

// ロゴ検索
num = find_logo(fp->ex_data_ptr);
if(num<0) return FALSE;

size = sizeof(LOGO_HEADER)
+ (logodata[num]->h+1) * (logodata[num]->w+1) * sizeof(LOGO_PIXEL);
if(size > adjdata_size){
adjdata = realloc(adjdata,size);
adjdata_size = size;
}
if(adjdata==NULL){ //確保失敗
adjdata_size = 0;
return FALSE;
}

fade = calc_fade(fp,fpip);

if(fp->track[LOGO_X]%4 || fp->track[LOGO_Y]%4){
// 位置調整が4の倍数でないとき、1/4ピクセル単位調整
if(!create_adj_exdata(fp,(void *)adjdata,logodata[num]))
return FALSE;
}
else {
else{
// 4の倍数のときはx,yのみ書き換え
memcpy(adjdata,logodata[num],LOGO_DATASIZE(logodata[num]));
memcpy(adjdata,logodata[num],size);
((LOGO_HEADER *)adjdata)->x += fp->track[LOGO_X] / 4;
((LOGO_HEADER *)adjdata)->y += fp->track[LOGO_Y] / 4;
}
Expand Down Expand Up @@ -708,7 +736,7 @@ static void on_wm_filter_exit(FILTER* fp)
n++;
}

lfh.logonum = n;
lfh.logonum.l = SWAP_ENDIAN(n);
SetFilePointer(hFile,0, 0, FILE_BEGIN); // 先頭へ
dw = 0;
WriteFile(hFile,&lfh,sizeof(lfh),&dw,NULL);
Expand Down Expand Up @@ -1044,7 +1072,7 @@ static void read_logo_pack(char *fname,FILTER *fp)
void* data;
int i;
int same;
// char message[255];
int logonum;

// ファイルオープン
hFile = CreateFile(fname,GENERIC_READ, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
Expand All @@ -1064,8 +1092,9 @@ static void read_logo_pack(char *fname,FILTER *fp)

logodata_n = 0; // 書き込みデータカウンタ
logodata = NULL;
logonum = SWAP_ENDIAN(lfh.logonum.l);

for(i=0;i<lfh.logonum;i++){
for(i=0;i<logonum;i++){

// LOGO_HEADER 読み込み
readed = 0;
Expand Down
35 changes: 16 additions & 19 deletions logo.h
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
/*====================================================================
* ロゴパターン logo.h
*
*
*
* [ロゴデータファイル構造]
*
* "logo file x.xx\n" // ファイルヘッダ文字列:バージョン情報とか(31byte)
* "<logo file x.xx>" // ファイルヘッダ文字列:バージョン情報(28byte)
* +----
* | ファイルに含まれるロゴデータの数(1byte)
* | ファイルに含まれるロゴデータの数(4byte, BigEndian)
* +----
* | LOGO_HEADER // データヘッダ
* +----
Expand All @@ -25,25 +23,24 @@
#ifndef ___LOGO_H
#define ___LOGO_H

/* ロゴファイルヘッダ
* 31BYTEの文字列
* データ数 1BYTE
*/
#define LOGO_FILE_HEADER_STR "<logo data file ver0.1>\0\0\0\0\0\0\0\0\0\0\0"
#define LOGO_FILE_HEADER_STR_SIZE 31
/* ロゴヘッダ文字列 */
#define LOGO_FILE_HEADER_STR "<logo data file ver0.1>\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
Expand Down
3 changes: 2 additions & 1 deletion logodef.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#define LOGO_FADE_MAX 256
#define LOGO_XY_MAX 500
#define LOGO_XY_MIN -500
#define LOGO_STED_MAX 4096
#define LOGO_STED_MAX 256
#define LOGO_STED_MIN -256

#endif
15 changes: 10 additions & 5 deletions logoscan/filter.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*********************************************************************
* ロゴ解析プラグイン ver 0.06b
* ロゴ解析プラグイン ver 0.07
*
* 2003
* 04/06: とりあえず完成。
Expand Down Expand Up @@ -44,10 +44,15 @@
* ログファイルのデフォルト名をソースファイル名からつくるようにした。(0.06a)
* 10/23: 有効フレームリスト保存ダイアログでキャンセルすると落ちるバグ修正。
* 妙な記述があったのを修正。(何で動いてたんだろ…
* 2008
* 01/07: ロゴサイズ制限撤廃
* ロゴファイルのデータ数拡張に伴う修正
*
*********************************************************************/
/* TODO:
* ・拡大ツール機能(気まぐれバロンさんのアイディア)
* ・セーブ中は何もしないようにする
* ・結果ダイアログで開始・終了・フェードを書き込めるようにする
*
* MEMO:
* ・背景値計算改善策①:メディアン化してから平均とか
Expand Down Expand Up @@ -99,7 +104,7 @@ void SetScanPixel(FILTER*,ScanPixel*&,int,int,int,int,void*,char*);
// FILTER_DLL構造体
//----------------------------
char filter_name[] = "ロゴ解析";
char filter_info[] = "ロゴ解析プラグイン ver 0.06b by MakKi";
char filter_info[] = "ロゴ解析プラグイン ver 0.07 by MakKi";

#define track_N 5
#if track_N
Expand Down Expand Up @@ -436,9 +441,9 @@ void ScanLogoData(FILTER* fp,void* editp)
fp->exfunc->get_select_frame(editp,&start,&end);
if(end-start<1) throw "画像の枚数が足りません";

if((fp->track[tLOGOW]+1)*(fp->track[tLOGOH]+1) > LOGO_MAXPIXEL)
// h*wがロゴデータ上限より大きい時
throw "ロゴ領域が広すぎます";
// if((fp->track[tLOGOW]+1)*(fp->track[tLOGOH]+1) > LOGO_MAXPIXEL)
// // h*wがロゴデータ上限より大きい時
// throw "ロゴ領域が広すぎます";

// 画像サイズ
if(!fp->exfunc->get_frame_size(editp,&w,&h))
Expand Down
9 changes: 4 additions & 5 deletions logoscan/logoscan.rc
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ FONT 9, "
// VERSION INFO
//
VS_VIRSION_INFO VERSIONINFO
FILEVERSION 0,0,6,2
PRODUCTVERSION 0,0,6
FILEVERSION 0,0,7,0
PRODUCTVERSION 0,0,7
FILEFLAGSMASK 0x3FL
FILEFLAGS 0x0L
FILEOS VOS__WINDOWS32
Expand All @@ -89,14 +89,13 @@ VS_VIRSION_INFO VERSIONINFO
{
BLOCK "041103A4"
{
// VALUE "Comments", "beta version\0"
VALUE "FileDescription", "���S��� Plugin for AviUtl 0.98d\0"
VALUE "FileVersion", "0.06b\0"
VALUE "FileVersion", "0.07\0"
VALUE "InternalName", "LogoScan\0"
VALUE "LegalCopyright", "(C) MakKi\0"
VALUE "OriginalFilename", "logoscan.aup\0"
VALUE "ProductName", "���S��� �v���O�C��\0"
VALUE "ProductVersion", "0.06b\0"
VALUE "ProductVersion", "0.07\0"
}
}
BLOCK "VarFileInfo"
Expand Down
5 changes: 3 additions & 2 deletions logoscan/readme.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------
���S��� �v���O�C�� ver 0.06b by MakKi
���S��� �v���O�C�� ver 0.07 by MakKi
-----------------------------------------------------------------------

�y�@�\�z
Expand Down Expand Up @@ -52,7 +52,8 @@
http://mksoft.hp.infoseek.co.jp/

�y�X�V�����z

2008/01/07 ver 0.07 �E���S�T�C�Y�̐�����P�p
�E���S�t�@�C���̍ő�f�[�^���g���ɑΉ�
2003/10/26 ver 0.06b �E�t���[�����X�g�ۑ��_�C�A���O�ŃL�����Z������Ɨ�����o�O�C���B
2003/10/21 ver 0.06a �E���O��RGB->YCbCr����悤�ɂ����B(SSE2�ł̕s��΍�)
�E�L���t���[�����X�g��ۑ��̃`�F�b�N�������Ă��Ȃ��������Ȃ��o�O�C���B
Expand Down
27 changes: 11 additions & 16 deletions logoscan/resultdlg.c
Original file line number Diff line number Diff line change
Expand Up @@ -257,8 +257,8 @@ static void ExportLogoData(char *fname,void *data,HWND hdlg)
HANDLE hFile;
DWORD dw;
DWORD size;
char c =1;
int s =0;
LOGO_FILE_HEADER lfh;

// ファイルを開く
hFile = CreateFile(fname,GENERIC_WRITE,0,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
Expand All @@ -267,31 +267,26 @@ static void ExportLogoData(char *fname,void *data,HWND hdlg)
}
SetFilePointer(hFile,0, 0, FILE_BEGIN); // 先頭へ

ZeroMemory(&lfh,sizeof(LOGO_FILE_HEADER));
strcpy(lfh.str,LOGO_FILE_HEADER_STR);
lfh.logonum.l = SWAP_ENDIAN(1);

// ヘッダ書き込み
dw = 0;
WriteFile(hFile,LOGO_FILE_HEADER,31,&dw,NULL);
if(dw!=31){ // 書き込み失敗
WriteFile(hFile,&lfh,sizeof(LOGO_FILE_HEADER),&dw,NULL);
if(dw!=sizeof(LOGO_FILE_HEADER)){ // 書き込み失敗
MessageBox(hdlg,"ロゴデータ保存に失敗しました(1)",filter_name,MB_OK|MB_ICONERROR);
s=1;
}
else{ // 成功
// データ数書き込み(必ず1)
// データ書き込み
size = LOGO_DATASIZE(data); // データサイズ取得
dw = 0;
WriteFile(hFile,&c,1,&dw,NULL);
if(dw!=1){ // 書き込み失敗
WriteFile(hFile,data,size,&dw,NULL);
if(dw!=size){
MessageBox(hdlg,"ロゴデータ保存に失敗しました(2)",filter_name,MB_OK|MB_ICONERROR);
s=1;
}
else{ // 成功
// データ書き込み
size = LOGO_DATASIZE(data); // データサイズ取得
dw = 0;
WriteFile(hFile,data,size,&dw,NULL);
if(dw!=size){
MessageBox(hdlg,"ロゴデータ保存に失敗しました(3)",filter_name,MB_OK|MB_ICONERROR);
s=1;
}
}
}

CloseHandle(hFile);
Expand Down
Loading

0 comments on commit 4acad88

Please sign in to comment.