--- trunk/xvidcore/vfw/src/config.c 2004/11/22 10:40:03 1562 +++ trunk/xvidcore/vfw/src/config.c 2005/01/09 20:26:42 1589 @@ -259,7 +259,6 @@ {"vhq_mode", ®.vhq_mode, 1}, {"vhq_bframe", ®.vhq_bframe, 0}, {"chromame", ®.chromame, 1}, - {"cartoon_mode", ®.cartoon_mode, 0}, {"turbo", ®.turbo, 0}, {"max_key_interval", ®.max_key_interval, 300}, {"frame_drop_ratio", ®.frame_drop_ratio, 0}, @@ -305,6 +304,7 @@ {"zone%i_greyscale", &stmp.greyscale, 0}, {"zone%i_chroma_opt", &stmp.chroma_opt, 0}, {"zone%i_bvop_threshold", &stmp.bvop_threshold, 0}, + {"zone%i_cartoon_mode", &stmp.cartoon_mode, 0}, }; static const BYTE default_qmatrix_intra[] = { @@ -940,8 +940,11 @@ /* step 2: calculate audio_size (kbytes)*/ if (audio_type!=NO_AUDIO) { if (audio_mode==0) { - audio_size = (int)( (1000.0 * duration * audio_rate) / (8.0*1024) ); - SetDlgItemInt(hDlg, IDC_BITRATE_ASIZE, audio_size, TRUE); + int new_audio_size = (int)( (1000.0 * duration * audio_rate) / (8.0*1024) ); + + /* this check is needed to avoid a loop */ + if (new_audio_size!=audio_size) + SetDlgItemInt(hDlg, IDC_BITRATE_ASIZE, new_audio_size, TRUE); }else{ int tmp_rate = (int)( (audio_size * 8.0 * 1024) / (1000.0 * duration) ); SetDlgItemInt(hDlg, IDC_BITRATE_ARATE, tmp_rate, TRUE); @@ -1136,6 +1139,8 @@ CheckDlgButton(hDlg, IDC_ZONE_GREYSCALE, config->zones[config->cur_zone].greyscale); CheckDlgButton(hDlg, IDC_ZONE_CHROMAOPT, config->zones[config->cur_zone].chroma_opt); + CheckDlg(hDlg, IDC_CARTOON, config->zones[config->cur_zone].cartoon_mode); + SetDlgItemInt(hDlg, IDC_ZONE_BVOPTHRESHOLD, config->zones[config->cur_zone].bvop_threshold, TRUE); break; @@ -1144,7 +1149,6 @@ SendDlgItemMessage(hDlg, IDC_VHQ, CB_SETCURSEL, config->vhq_mode, 0); CheckDlg(hDlg, IDC_VHQ_BFRAME, config->vhq_bframe); CheckDlg(hDlg, IDC_CHROMAME, config->chromame); - CheckDlg(hDlg, IDC_CARTOON, config->cartoon_mode); CheckDlg(hDlg, IDC_TURBO, config->turbo); SetDlgItemInt(hDlg, IDC_FRAMEDROP, config->frame_drop_ratio, FALSE); SetDlgItemInt(hDlg, IDC_MAXKEY, config->max_key_interval, FALSE); @@ -1320,6 +1324,7 @@ config->zones[config->cur_zone].chroma_opt = IsDlgButtonChecked(hDlg, IDC_ZONE_CHROMAOPT); config->zones[config->cur_zone].bvop_threshold = config_get_int(hDlg, IDC_ZONE_BVOPTHRESHOLD, config->zones[config->cur_zone].bvop_threshold); + config->zones[config->cur_zone].cartoon_mode = IsDlgChecked(hDlg, IDC_CARTOON); break; case IDD_MOTION : @@ -1327,7 +1332,6 @@ config->vhq_mode = SendDlgItemMessage(hDlg, IDC_VHQ, CB_GETCURSEL, 0, 0); config->vhq_bframe = IsDlgButtonChecked(hDlg, IDC_VHQ_BFRAME); config->chromame = IsDlgChecked(hDlg, IDC_CHROMAME); - config->cartoon_mode = IsDlgChecked(hDlg, IDC_CARTOON); config->turbo = IsDlgChecked(hDlg, IDC_TURBO); config->frame_drop_ratio = config_get_uint(hDlg, IDC_FRAMEDROP, config->frame_drop_ratio);