Skip to content

Commit 8c7a5d4

Browse files
committed
2003-10-21
1 parent 9e790bd commit 8c7a5d4

9 files changed

+88
-40
lines changed

delogo.rc

+3-3
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ FONT 9, "
7474
// VERSION INFO
7575
//
7676
VS_VIRSION_INFO VERSIONINFO
77-
FILEVERSION 0,0,7,0
77+
FILEVERSION 0,0,7,1
7878
PRODUCTVERSION 0,0,7
7979
FILEFLAGSMASK 0x3FL
8080
FILEFLAGS 0x0L
@@ -88,12 +88,12 @@ VS_VIRSION_INFO VERSIONINFO
8888
{
8989
// VALUE "Comments", "���S�T���v���񋟎ҕ�W��\0"
9090
VALUE "FileDescription", "���ߐ����S �t�B���^ Plugin for AviUtl 0.98\0"
91-
VALUE "FileVersion", "0.0.7.0\0"
91+
VALUE "FileVersion", "0.0.7.1\0"
9292
VALUE "InternalName", "deLogo\0"
9393
VALUE "LegalCopyright", "(C) MakKi\0"
9494
VALUE "OriginalFilename", "delogo.aup\0"
9595
VALUE "ProductName", "���ߐ����S �t�B���^\0"
96-
VALUE "ProductVersion", "0.07\0"
96+
VALUE "ProductVersion", "0.07a\0"
9797
}
9898
}
9999
BLOCK "VarFileInfo"

filter.c

+9-7
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,12 @@
4949
* ロゴ名編集で同名にせっていできないようにした。(0.06a)
5050
* 08/01: フェードの不透明度計算式を見直し
5151
* 08/02: 実数演算を止め、無駄な演算を削除して高速化。
52-
* 上に伴い深度のデフォルト値を変更。
53-
* 細かな修正
54-
* 09/05: 細かな修正
55-
* 09/27: filter.hをAviUtl0.99SDKのものに差し替え。(0.07)
52+
* 上に伴い深度のデフォルト値を変更。
53+
* 細かな修正
54+
* 09/05: 細かな修正
55+
* 09/27: filter.hをAviUtl0.99SDKのものに差し替え。(0.07)
56+
* 10/20: SSE2使用のrgb2ycがバグもちなので、自前でRGB->YCbCrするようにした。
57+
* 位置X/Yの最大・最小値を拡張した。(0.07a)
5658
*
5759
*********************************************************************/
5860

@@ -156,15 +158,15 @@ BOOL func_proc_add_logo(FILTER *fp,FILTER_PROC_INFO *fpip,LOGO_HEADER *lgh,int);
156158
// FILTER_DLL構造体
157159
//----------------------------
158160
char filter_name[] = LOGO_FILTER_NAME;
159-
char filter_info[] = LOGO_FILTER_NAME" ver 0.07 by MakKi";
161+
char filter_info[] = LOGO_FILTER_NAME" ver 0.07a by MakKi";
160162
#define track_N 10
161163
#if track_N
162164
TCHAR *track_name[] = { "位置 X", "位置 Y",
163165
"深度", "Y", "Cb", "Cr",
164166
"開始", "FadeIn", "FadeOut", "終了" }; // トラックバーの名前
165167
int track_default[] = { 0, 0, 128, 0, 0, 0, 0, 0, 0, 0 }; // トラックバーの初期値
166-
int track_s[] = { -200, -200, 0, -100, -100, -100, 0, 0, 0, 0 }; // トラックバーの下限値
167-
int track_e[] = { 200, 200, 256, 100, 100, 100, 256, 256, 256, 256 }; // トラックバーの上限値
168+
int track_s[] = { -500, -500, 0, -100, -100, -100, 0, 0, 0, 0 }; // トラックバーの下限値
169+
int track_e[] = { 500, 500, 256, 100, 100, 100, 256, 256, 256, 256 }; // トラックバーの上限値
168170
#endif
169171
#define check_N 2
170172
#if check_N

logoscan/filter.cpp

+21-6
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@
3838
* 10/14: キャッシュ幅・高さを元に戻した。
3939
* 10/18: 有効フレームをマーク・ログファイル出力できるようにした。
4040
* VirtualAllocをやめてmallocを使うようにした。(0.06)
41+
* 10/20: VirtualAllocにもどした。
42+
* exfunc->rgb2ycをやめて、自前でRGB->YCbCr
43+
* 有効フレームリストを保存のチェックが入っていない時動かないバグ修正
44+
* ログファイルのデフォルト名をソースファイル名からつくるようにした。(0.06a)
4145
*
4246
*********************************************************************/
4347
/* TODO:
@@ -52,6 +56,8 @@
5256
*
5357
* ・SSE2処理時に落ちる:get_ycp_filtering_cache_exがぁゃιぃ。とりあえず幅高さを8の倍数に。
5458
* →だめぽ。VirtualAllocかなぁ。とりあえず試してみる。
59+
* AviUtl本家の掲示板にrgb2ycが動かないとの報告が?!こいつだったのか。
60+
* →自前で変換。
5561
*
5662
*/
5763
#include <windows.h>
@@ -91,7 +97,7 @@ void SetScanPixel(FILTER*,ScanPixel*&,int,int,int,int,void*,char*);
9197
// FILTER_DLL構造体
9298
//----------------------------
9399
char filter_name[] = "ロゴ解析";
94-
char filter_info[] = "ロゴ解析プラグイン ver 0.06 by MakKi";
100+
char filter_info[] = "ロゴ解析プラグイン ver 0.06a by MakKi";
95101

96102
#define track_N 5
97103
#if track_N
@@ -446,7 +452,14 @@ void ScanLogoData(FILTER* fp,void* editp)
446452
fp->exfunc->set_ycp_filtering_cache_size(fp,w,h,1,NULL);
447453

448454
if(fp->check[cLIST]){ // リスト保存時ファイル名取得
449-
fp->exfunc->dlg_get_save_name(list,LIST_FILTER,"*.txt");
455+
// ロゴ名の初期値
456+
GetWindowText(GetWindow(fp->hwnd,GW_OWNER),list,MAX_PATH); // タイトルバー文字列取得
457+
for(int i=1;list[i];i++)
458+
if(list[i]=='.') list[i] = '\0'; // 2文字目以降の'.'を終端にする(拡張子を削除)
459+
wsprintf(list,"%s_scan.txt",list); // デフォルトロゴ名作成
460+
461+
if(!fp->exfunc->dlg_get_save_name(list,LIST_FILTER,list))
462+
*list = '\0'; // キャンセル時
450463
}
451464

452465
// ScanPixelを設定する+解析・ロゴデータ作成
@@ -520,11 +533,13 @@ void SetScanPixel(FILTER* fp,ScanPixel*& sp,int w,int h,int s,int e,void* editp,
520533
param.errstr = NULL;
521534
param.mark = fp->check[cMARK];
522535

523-
param.list = fopen(list,"w");
524-
if(param.list==NULL){
525-
throw "フレームリストファイルの作成に失敗しました";
536+
if(*list){
537+
param.list = fopen(list,"w");
538+
if(param.list==NULL){
539+
throw "フレームリストファイルの作成に失敗しました";
540+
}
541+
fprintf(param.list,"<Frame List>\n");
526542
}
527-
fprintf(param.list,"<Frame List>\n");
528543

529544
DialogBoxParam(fp->dll_hinst,"ABORT_DLG",GetWindow(fp->hwnd,GW_OWNER),AbortDlgProc,(LPARAM)&param);
530545

logoscan/logoscan.rc

+3-3
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ FONT 9, "
7777
// VERSION INFO
7878
//
7979
VS_VIRSION_INFO VERSIONINFO
80-
FILEVERSION 0,0,6,0
80+
FILEVERSION 0,0,6,1
8181
PRODUCTVERSION 0,0,6
8282
FILEFLAGSMASK 0x3FL
8383
FILEFLAGS 0x0L
@@ -91,12 +91,12 @@ VS_VIRSION_INFO VERSIONINFO
9191
{
9292
// VALUE "Comments", "beta version\0"
9393
VALUE "FileDescription", "���S��� Plugin for AviUtl 0.98d\0"
94-
VALUE "FileVersion", "0.06\0"
94+
VALUE "FileVersion", "0.06a\0"
9595
VALUE "InternalName", "LogoScan\0"
9696
VALUE "LegalCopyright", "(C) MakKi\0"
9797
VALUE "OriginalFilename", "logoscan.aup\0"
9898
VALUE "ProductName", "���S��� �v���O�C��\0"
99-
VALUE "ProductVersion", "0.06\0"
99+
VALUE "ProductVersion", "0.06a\0"
100100
}
101101
}
102102
BLOCK "VarFileInfo"

logoscan/readme.txt

+3
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@
5353

5454
�y�X�V�����z
5555

56+
2003/10/21 ver 0.06a �E���O��RGB->YCbCr����悤�ɂ����B(SSE2�ł̕s��΍�)
57+
�E�L���t���[�����X�g��ۑ��̃`�F�b�N�������Ă��Ȃ��������Ȃ��o�O�C���B
58+
�E���O�t�@�C���̃f�t�H���g�����\�[�X�t�@�C��������‚���悤�ɂ����B
5659
2003/10/19 ver 0.06 �E�L���t���[�����}�[�N����O�t�@�C���o�͂ł���悤�ɂ����B
5760
2003/10/01 ver 0.05 �E��͏I�����Ƀr�[�v��‚炷�悤�ɂ����B
5861
�E���̑��ׂ��ȏC���Ƃ�����Ƃ����������B

logoscan/resultdlg.c

+16-4
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ static void idc_save(HWND hdlg);
4141
static void ExportLogoData(char *fname,void *data,HWND hdlg);
4242
static void SendLogoData(HWND hdlg);
4343
static PIXEL_YC* get_bgyc(HWND hdlg);
44+
static void RGBtoYCbCr(PIXEL_YC *ycp,const PIXEL *rgb);
4445

4546

4647
/*====================================================================
@@ -61,7 +62,7 @@ BOOL CALLBACK ResultDlgProc(HWND hdlg,UINT msg,WPARAM wParam,LPARAM lParam)
6162
switch(LOWORD(wParam)){
6263
case IDCANCEL:
6364
case IDC_CLOSE: // 閉じるボタン
64-
if(pix) free(pix); // VirtualFree(pix,0,MEM_RELEASE);
65+
if(pix) VirtualFree(pix,0,MEM_RELEASE);
6566
pix = NULL;
6667
EndDialog(hdlg,LOWORD(wParam));
6768
break;
@@ -156,8 +157,7 @@ static void DispLogo(HWND hdlg)
156157
bmi.bmiHeader.biCompression = BI_RGB;
157158

158159
// メモリ再確保
159-
// pix = VirtualAlloc(pix,bmi.bmiHeader.biWidth*bmi.bmiHeader.biHeight*sizeof(PIXEL),MEM_COMMIT,PAGE_READWRITE);
160-
pix = realloc(pix,bmi.bmiHeader.biWidth*bmi.bmiHeader.biHeight*sizeof(PIXEL));
160+
pix = VirtualAlloc(pix,bmi.bmiHeader.biWidth*bmi.bmiHeader.biHeight*sizeof(PIXEL),MEM_COMMIT,PAGE_READWRITE);
161161
if(pix==NULL){
162162
MessageBox(hdlg,"メモリが確保できませんでした\nDispLogo()",filter_name,MB_OK|MB_ICONERROR);
163163
return; // 何もしない
@@ -358,7 +358,19 @@ static PIXEL_YC* get_bgyc(HWND hdlg)
358358
SetDlgItemInt(hdlg,IDC_RED ,p.r,FALSE);
359359

360360
// RGB -> YCbCr
361-
dlgfp->exfunc->rgb2yc(&bgyc,&p,1);
361+
RGBtoYCbCr(&bgyc,&p);
362362

363363
return &bgyc;
364364
}
365+
366+
/*--------------------------------------------------------------------
367+
* RGBtoYCbCr()
368+
*-------------------------------------------------------------------*/
369+
static void RGBtoYCbCr(PIXEL_YC *ycp,const PIXEL *rgb)
370+
{
371+
ycp->y = 0.2989*4096/256*rgb->r + 0.5866*4096/256*rgb->g + 0.1145*4096/256*rgb->b +0.5;
372+
ycp->cb = -0.1687*4096/256*rgb->r - 0.3312*4096/256*rgb->g + 0.5000*4096/256*rgb->b +0.5;
373+
ycp->cr = 0.5000*4096/256*rgb->r - 0.4183*4096/256*rgb->g - 0.0816*4096/256*rgb->b +0.5;
374+
}
375+
376+

optdlg.c

+27-13
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ static void CopyLBtoCB(HWND list,HWND combo);
3737
static void CopyCBtoLB(HWND combo,HWND list);
3838
static void DispLogo(HWND hdlg);
3939
static void set_bgyc(HWND hdlg);
40+
static void RGBtoYCbCr(PIXEL_YC *ycp,const PIXEL *rgb);
4041

4142

4243
//----------------------------
@@ -49,10 +50,10 @@ HWND hoptdlg;
4950
PIXEL_YC bgyc; // 背景色
5051

5152
const PIXEL_YC yc_black = { 0, 0, 0 }; // 黒
52-
const PIXEL_YC yc_white = { 4080, 0, 0 }; // 白
53-
const PIXEL_YC yc_red = { 1220, -688, 2040 }; // 赤
54-
const PIXEL_YC yc_green = { 2393,-1351,-1707 }; // 緑
55-
const PIXEL_YC yc_blue = { 467, 2040, -333 }; // 青
53+
//const PIXEL_YC yc_white = { 4080, 0, 0 }; // 白
54+
//const PIXEL_YC yc_red = { 1220, -688, 2040 }; // 赤
55+
//const PIXEL_YC yc_green = { 2393,-1351,-1707 }; // 緑
56+
//const PIXEL_YC yc_blue = { 467, 2040, -333 }; // 青
5657

5758
void **add_list;
5859
void **del_list;
@@ -152,21 +153,24 @@ static void Wm_initdialog(HWND hdlg)
152153

153154
// コンボボックスからアイテムをコピー
154155
CopyCBtoLB(hdlg,hcb_logo);
155-
156-
// 背景色に黒を選択
157-
SendDlgItemMessage(hdlg,IDC_BLACK,BM_SETCHECK,(WPARAM)BST_CHECKED,0);
158-
bgyc = yc_black;
159-
160-
// 一番上のリストアイテムを選択
161-
SendDlgItemMessage(hdlg,IDC_LIST,LB_SETCURSEL,0,0);
162-
163156
// RGBエディット・スピンのレンジ設定
164157
SendDlgItemMessage(hdlg,IDC_RED, EM_SETLIMITTEXT, 3,0);
165158
SendDlgItemMessage(hdlg,IDC_GREEN, EM_SETLIMITTEXT, 3,0);
166159
SendDlgItemMessage(hdlg,IDC_BLUE, EM_SETLIMITTEXT, 3,0);
167160
SendDlgItemMessage(hdlg,IDC_SPINR, UDM_SETRANGE, 0, 255);
168161
SendDlgItemMessage(hdlg,IDC_SPING, UDM_SETRANGE, 0, 255);
169162
SendDlgItemMessage(hdlg,IDC_SPINB, UDM_SETRANGE, 0, 255);
163+
164+
// 背景色に黒を選択
165+
// SendDlgItemMessage(hdlg,IDC_BLACK,BM_SETCHECK,(WPARAM)BST_CHECKED,0);
166+
SetDlgItemInt(hdlg,IDC_RED, 0,FALSE);
167+
SetDlgItemInt(hdlg,IDC_GREEN,0,FALSE);
168+
SetDlgItemInt(hdlg,IDC_BLUE, 0,FALSE);
169+
bgyc = yc_black;
170+
171+
// 一番上のリストアイテムを選択
172+
SendDlgItemMessage(hdlg,IDC_LIST,LB_SETCURSEL,0,0);
173+
170174
}
171175

172176

@@ -765,7 +769,17 @@ static void set_bgyc(HWND hdlg)
765769
SetDlgItemInt(hdlg,IDC_RED ,p.r,FALSE);
766770

767771
// RGB -> YCbCr
768-
optfp->exfunc->rgb2yc(&bgyc,&p,1);
772+
RGBtoYCbCr(&bgyc,&p);
773+
}
774+
775+
/*--------------------------------------------------------------------
776+
* RGBtoYCbCr()
777+
*-------------------------------------------------------------------*/
778+
static void RGBtoYCbCr(PIXEL_YC *ycp,const PIXEL *rgb)
779+
{
780+
ycp->y = 0.2989*4096/256*rgb->r + 0.5866*4096/256*rgb->g + 0.1145*4096/256*rgb->b +0.5;
781+
ycp->cb = -0.1687*4096/256*rgb->r - 0.3312*4096/256*rgb->g + 0.5000*4096/256*rgb->b +0.5;
782+
ycp->cr = 0.5000*4096/256*rgb->r - 0.4183*4096/256*rgb->g - 0.0816*4096/256*rgb->b +0.5;
769783
}
770784

771785
//*/

readme.txt

+5-3
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,15 @@
107107

108108
�y�X�V�����z
109109

110-
2003/10/01 ver 0.07 �E�t�F�[�h�̕s�����x�v�Z���̌������B
111-
�E������ƍ������A�ׂ��ȏC���B
110+
2003/10/21 ver 0.07a�E���O��RGB->YCbCr����悤�ɂ����B(SSE2�ł̕s��΍�)
111+
�E�ʒuX/Y�̍ő奍ŏ��l���g�������B
112+
2003/10/01 ver 0.07 �E�t�F�[�h�̕s�����x�v�Z���̌�����
113+
�E������ƍ������A�ׂ��ȏC��
112114
2003/07/03 ver 0.06a�E���S�f�[�^����M�ł��Ȃ��ꍇ���������̂��C��
113115
�E���S���ҏW�œ����ɐݒ�ł��Ȃ��悤�ɂ���
114116
2003/06/30 ver 0.06 �E�t�F�[�h�C��/�A�E�g�ł���悤�ɂ���
115117
2003/06/12 ver 0.05 �E����������������
116-
�E�v���r���[�̔w�i�F��RGB�Ŏw��ł���悤�ɂ���
118+
�E�v���r���[�̔w�i�F��RGB�Ŏw��ł���悤�ɂ���
117119
2003/05/17 ver 0.04 �E���S�̖��̂�ҏW�ł���悤�ɂ���
118120
2003/05/10 ver 0.03 �E���S��̓v���O�C������̃f�[�^����M�ł��Ă��Ȃ������o�O���C��
119121
2003/05/08 ver 0.02 �E���S�f�[�^���v���t�@�C��,�v���W�F�N�g�Ɋ֘A�t�����Ă��Ȃ������o�O���C��

resource.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#define IDC_DOWN 4108
1010
#define IDC_PANEL 4109
1111
#define IDC_GROUP 4110
12-
#define IDC_BLACK 4111
12+
//#define IDC_BLACK 4111
1313
#define IDC_RED 4112
1414
#define IDC_GREEN 4113
1515
#define IDC_BLUE 4114

0 commit comments

Comments
 (0)