169 |
} named_int_t; |
} named_int_t; |
170 |
|
|
171 |
|
|
172 |
#define NO_AUDIO 5 |
#define NO_AUDIO 7 |
173 |
static const named_int_t audio_type_list[] = { |
static const named_int_t audio_type_list[] = { |
174 |
{ "MP3-CBR", 1000, 48000/1152/6 }, |
{ "MP3-CBR", 1000, 48000/1152/6 }, |
175 |
{ "MP3-VBR", 24, 48000/1152/6 }, |
{ "MP3-VBR", 24, 48000/1152/6 }, |
176 |
{ "OGG", /*?*/1000, 48000*(0.7F/1024 + 0.3F/180) }, |
{ "OGG", /*?*/1000, 48000*(0.7F/1024 + 0.3F/180) }, |
177 |
{ "AC3", 64, 48000/1536/6 }, |
{ "AC3", 64, 48000/1536/6 }, |
178 |
{ "DTS", 21, /*?*/48000/1152/6 }, |
{ "DTS", 21, /*?*/48000/1152/6 }, |
179 |
|
{ "AAC", 21, 48000/1024/6 }, |
180 |
|
{ "HE-AAC", 42, 48000/1024/6 }, |
181 |
{ "(None)", 0, 0 }, |
{ "(None)", 0, 0 }, |
182 |
}; |
}; |
183 |
|
|
200 |
{"quant_type", ®.quant_type, 0}, |
{"quant_type", ®.quant_type, 0}, |
201 |
{"lum_masking", ®.lum_masking, 0}, |
{"lum_masking", ®.lum_masking, 0}, |
202 |
{"interlacing", ®.interlacing, 0}, |
{"interlacing", ®.interlacing, 0}, |
203 |
|
{"tff", ®.tff, 0}, |
204 |
{"qpel", ®.qpel, 0}, |
{"qpel", ®.qpel, 0}, |
205 |
{"gmc", ®.gmc, 0}, |
{"gmc", ®.gmc, 0}, |
206 |
{"reduced_resolution", ®.reduced_resolution, 0}, |
{"reduced_resolution", ®.reduced_resolution, 0}, |
257 |
/* motion */ |
/* motion */ |
258 |
{"motion_search", ®.motion_search, 6}, |
{"motion_search", ®.motion_search, 6}, |
259 |
{"vhq_mode", ®.vhq_mode, 1}, |
{"vhq_mode", ®.vhq_mode, 1}, |
260 |
|
{"vhq_bframe", ®.vhq_bframe, 0}, |
261 |
{"chromame", ®.chromame, 1}, |
{"chromame", ®.chromame, 1}, |
262 |
{"cartoon_mode", ®.cartoon_mode, 0}, |
{"cartoon_mode", ®.cartoon_mode, 0}, |
263 |
{"turbo", ®.turbo, 0}, |
{"turbo", ®.turbo, 0}, |
843 |
EnableDlgWindow(hDlg, IDC_QUANTMATRIX, custom_quant); |
EnableDlgWindow(hDlg, IDC_QUANTMATRIX, custom_quant); |
844 |
EnableDlgWindow(hDlg, IDC_LUMMASK, profiles[profile].flags&PROFILE_ADAPTQUANT); |
EnableDlgWindow(hDlg, IDC_LUMMASK, profiles[profile].flags&PROFILE_ADAPTQUANT); |
845 |
EnableDlgWindow(hDlg, IDC_INTERLACING, profiles[profile].flags&PROFILE_INTERLACE); |
EnableDlgWindow(hDlg, IDC_INTERLACING, profiles[profile].flags&PROFILE_INTERLACE); |
846 |
|
EnableDlgWindow(hDlg, IDC_TFF, IsDlgChecked(hDlg, IDC_INTERLACING)); |
847 |
EnableDlgWindow(hDlg, IDC_QPEL, profiles[profile].flags&PROFILE_QPEL); |
EnableDlgWindow(hDlg, IDC_QPEL, profiles[profile].flags&PROFILE_QPEL); |
848 |
EnableDlgWindow(hDlg, IDC_GMC, profiles[profile].flags&PROFILE_GMC); |
EnableDlgWindow(hDlg, IDC_GMC, profiles[profile].flags&PROFILE_GMC); |
849 |
EnableDlgWindow(hDlg, IDC_REDUCED, profiles[profile].flags&PROFILE_REDUCED); |
EnableDlgWindow(hDlg, IDC_REDUCED, profiles[profile].flags&PROFILE_REDUCED); |
940 |
/* step 2: calculate audio_size (kbytes)*/ |
/* step 2: calculate audio_size (kbytes)*/ |
941 |
if (audio_type!=NO_AUDIO) { |
if (audio_type!=NO_AUDIO) { |
942 |
if (audio_mode==0) { |
if (audio_mode==0) { |
943 |
audio_size = (duration * audio_rate) / 8; |
audio_size = (int)( (1000.0 * duration * audio_rate) / (8.0*1024) ); |
944 |
|
SetDlgItemInt(hDlg, IDC_BITRATE_ASIZE, audio_size, TRUE); |
945 |
|
}else{ |
946 |
|
int tmp_rate = (int)( (audio_size * 8.0 * 1024) / (1000.0 * duration) ); |
947 |
|
SetDlgItemInt(hDlg, IDC_BITRATE_ARATE, tmp_rate, TRUE); |
948 |
} |
} |
949 |
}else{ |
}else{ |
950 |
audio_size = 0; |
audio_size = 0; |
984 |
overhead /= 1024; |
overhead /= 1024; |
985 |
break; |
break; |
986 |
|
|
987 |
case 3 : /* OGM: inaccurate model */ |
case 3 : /* alexnoe formula */ |
988 |
overhead = (int)(0.0039F * (target_size - subtitle_size)); |
overhead = (int)( (target_size - subtitle_size) * (28.0/4224.0 + (1.0/255.0)) ); |
989 |
break; |
break; |
990 |
|
|
991 |
default : /* (none) */ |
default : /* (none) */ |
1057 |
SendDlgItemMessage(hDlg, IDC_QUANTTYPE, CB_SETCURSEL, config->quant_type, 0); |
SendDlgItemMessage(hDlg, IDC_QUANTTYPE, CB_SETCURSEL, config->quant_type, 0); |
1058 |
CheckDlg(hDlg, IDC_LUMMASK, config->lum_masking); |
CheckDlg(hDlg, IDC_LUMMASK, config->lum_masking); |
1059 |
CheckDlg(hDlg, IDC_INTERLACING, config->interlacing); |
CheckDlg(hDlg, IDC_INTERLACING, config->interlacing); |
1060 |
|
CheckDlg(hDlg, IDC_TFF, config->tff); |
1061 |
CheckDlg(hDlg, IDC_QPEL, config->qpel); |
CheckDlg(hDlg, IDC_QPEL, config->qpel); |
1062 |
CheckDlg(hDlg, IDC_GMC, config->gmc); |
CheckDlg(hDlg, IDC_GMC, config->gmc); |
1063 |
CheckDlg(hDlg, IDC_REDUCED, config->reduced_resolution); |
CheckDlg(hDlg, IDC_REDUCED, config->reduced_resolution); |
1142 |
case IDD_MOTION : |
case IDD_MOTION : |
1143 |
SendDlgItemMessage(hDlg, IDC_MOTION, CB_SETCURSEL, config->motion_search, 0); |
SendDlgItemMessage(hDlg, IDC_MOTION, CB_SETCURSEL, config->motion_search, 0); |
1144 |
SendDlgItemMessage(hDlg, IDC_VHQ, CB_SETCURSEL, config->vhq_mode, 0); |
SendDlgItemMessage(hDlg, IDC_VHQ, CB_SETCURSEL, config->vhq_mode, 0); |
1145 |
|
CheckDlg(hDlg, IDC_VHQ_BFRAME, config->vhq_bframe); |
1146 |
CheckDlg(hDlg, IDC_CHROMAME, config->chromame); |
CheckDlg(hDlg, IDC_CHROMAME, config->chromame); |
1147 |
CheckDlg(hDlg, IDC_CARTOON, config->cartoon_mode); |
CheckDlg(hDlg, IDC_CARTOON, config->cartoon_mode); |
1148 |
CheckDlg(hDlg, IDC_TURBO, config->turbo); |
CheckDlg(hDlg, IDC_TURBO, config->turbo); |
1205 |
config->quant_type = SendDlgItemMessage(hDlg, IDC_QUANTTYPE, CB_GETCURSEL, 0, 0); |
config->quant_type = SendDlgItemMessage(hDlg, IDC_QUANTTYPE, CB_GETCURSEL, 0, 0); |
1206 |
config->lum_masking = IsDlgChecked(hDlg, IDC_LUMMASK); |
config->lum_masking = IsDlgChecked(hDlg, IDC_LUMMASK); |
1207 |
config->interlacing = IsDlgChecked(hDlg, IDC_INTERLACING); |
config->interlacing = IsDlgChecked(hDlg, IDC_INTERLACING); |
1208 |
|
config->tff = IsDlgChecked(hDlg, IDC_TFF); |
1209 |
config->qpel = IsDlgChecked(hDlg, IDC_QPEL); |
config->qpel = IsDlgChecked(hDlg, IDC_QPEL); |
1210 |
config->gmc = IsDlgChecked(hDlg, IDC_GMC); |
config->gmc = IsDlgChecked(hDlg, IDC_GMC); |
1211 |
config->reduced_resolution = IsDlgChecked(hDlg, IDC_REDUCED); |
config->reduced_resolution = IsDlgChecked(hDlg, IDC_REDUCED); |
1325 |
case IDD_MOTION : |
case IDD_MOTION : |
1326 |
config->motion_search = SendDlgItemMessage(hDlg, IDC_MOTION, CB_GETCURSEL, 0, 0); |
config->motion_search = SendDlgItemMessage(hDlg, IDC_MOTION, CB_GETCURSEL, 0, 0); |
1327 |
config->vhq_mode = SendDlgItemMessage(hDlg, IDC_VHQ, CB_GETCURSEL, 0, 0); |
config->vhq_mode = SendDlgItemMessage(hDlg, IDC_VHQ, CB_GETCURSEL, 0, 0); |
1328 |
|
config->vhq_bframe = IsDlgButtonChecked(hDlg, IDC_VHQ_BFRAME); |
1329 |
config->chromame = IsDlgChecked(hDlg, IDC_CHROMAME); |
config->chromame = IsDlgChecked(hDlg, IDC_CHROMAME); |
1330 |
config->cartoon_mode = IsDlgChecked(hDlg, IDC_CARTOON); |
config->cartoon_mode = IsDlgChecked(hDlg, IDC_CARTOON); |
1331 |
config->turbo = IsDlgChecked(hDlg, IDC_TURBO); |
config->turbo = IsDlgChecked(hDlg, IDC_TURBO); |
1409 |
{ |
{ |
1410 |
switch (LOWORD(wParam)) |
switch (LOWORD(wParam)) |
1411 |
{ |
{ |
1412 |
|
case IDC_INTERLACING : |
1413 |
|
case IDC_VHQ_BFRAME : |
1414 |
case IDC_BVOP : |
case IDC_BVOP : |
1415 |
case IDC_ZONE_MODE_WEIGHT : |
case IDC_ZONE_MODE_WEIGHT : |
1416 |
case IDC_ZONE_MODE_QUANT : |
case IDC_ZONE_MODE_QUANT : |
1435 |
|
|
1436 |
ofn.hwndOwner = hDlg; |
ofn.hwndOwner = hDlg; |
1437 |
if (LOWORD(wParam)==IDC_BITRATE_SSELECT) { |
if (LOWORD(wParam)==IDC_BITRATE_SSELECT) { |
1438 |
ofn.lpstrFilter = "Subtitle files (*.sub, *.ssa)\0*.sub;*.ssa\0All files (*.*)\0*.*\0\0"; |
ofn.lpstrFilter = "Subtitle files (*.sub, *.ssa, *.txt, *.dat)\0*.sub;*.ssa;*.txt;*.dat\0All files (*.*)\0*.*\0\0"; |
1439 |
}else{ |
}else{ |
1440 |
ofn.lpstrFilter = "Audio files (*.mp3, *.ac3)\0*.mp3; *.ac3\0All files (*.*)\0*.*\0\0"; |
ofn.lpstrFilter = "Audio files (*.mp3, *.ac3, *.aac, *.ogg, *.wav)\0*.mp3; *.ac3; *.aac; *.ogg; *.wav\0All files (*.*)\0*.*\0\0"; |
1441 |
} |
} |
1442 |
|
|
1443 |
ofn.lpstrFile = filename; |
ofn.lpstrFile = filename; |
2027 |
|
|
2028 |
case IDC_DEFAULTS : |
case IDC_DEFAULTS : |
2029 |
config_reg_default(config); |
config_reg_default(config); |
2030 |
|
SendDlgItemMessage(hDlg, IDC_PROFILE, CB_SETCURSEL, config->profile, 0); |
2031 |
|
SendDlgItemMessage(hDlg, IDC_MODE, CB_SETCURSEL, config->mode, 0); |
2032 |
main_mode(hDlg, config); |
main_mode(hDlg, config); |
2033 |
main_upload(hDlg, config); |
main_upload(hDlg, config); |
2034 |
break; |
break; |