104 |
/* MPEG-4 PROFILES/LEVELS ============================================================== */ |
/* MPEG-4 PROFILES/LEVELS ============================================================== */ |
105 |
/* ===================================================================================== */ |
/* ===================================================================================== */ |
106 |
|
|
107 |
|
#define DXN_PROFILES |
108 |
|
|
109 |
/* default vbv_occupancy is (64/170)*vbv_buffer_size */ |
/* default vbv_occupancy is (64/170)*vbv_buffer_size */ |
110 |
|
|
203 |
{"tff", ®.tff, 0}, |
{"tff", ®.tff, 0}, |
204 |
{"qpel", ®.qpel, 0}, |
{"qpel", ®.qpel, 0}, |
205 |
{"gmc", ®.gmc, 0}, |
{"gmc", ®.gmc, 0}, |
|
{"reduced_resolution", ®.reduced_resolution, 0}, |
|
206 |
{"use_bvop", ®.use_bvop, 1}, |
{"use_bvop", ®.use_bvop, 1}, |
207 |
{"max_bframes", ®.max_bframes, 2}, |
{"max_bframes", ®.max_bframes, 2}, |
208 |
{"bquant_ratio", ®.bquant_ratio, 150}, /* 100-base float */ |
{"bquant_ratio", ®.bquant_ratio, 150}, /* 100-base float */ |
209 |
{"bquant_offset", ®.bquant_offset, 100}, /* 100-base float */ |
{"bquant_offset", ®.bquant_offset, 100}, /* 100-base float */ |
210 |
{"packed", ®.packed, 1}, |
{"packed", ®.packed, 1}, |
|
{"closed_gov", ®.closed_gov, 1}, |
|
211 |
|
|
212 |
/* aspect ratio */ |
/* aspect ratio */ |
213 |
{"ar_mode", ®.ar_mode, 0}, |
{"ar_mode", ®.ar_mode, 0}, |
257 |
{"vhq_mode", ®.vhq_mode, 1}, |
{"vhq_mode", ®.vhq_mode, 1}, |
258 |
{"vhq_bframe", ®.vhq_bframe, 0}, |
{"vhq_bframe", ®.vhq_bframe, 0}, |
259 |
{"chromame", ®.chromame, 1}, |
{"chromame", ®.chromame, 1}, |
|
{"cartoon_mode", ®.cartoon_mode, 0}, |
|
260 |
{"turbo", ®.turbo, 0}, |
{"turbo", ®.turbo, 0}, |
261 |
{"max_key_interval", ®.max_key_interval, 300}, |
{"max_key_interval", ®.max_key_interval, 300}, |
262 |
{"frame_drop_ratio", ®.frame_drop_ratio, 0}, |
{"frame_drop_ratio", ®.frame_drop_ratio, 0}, |
268 |
{"max_pquant", ®.max_pquant, 31}, |
{"max_pquant", ®.max_pquant, 31}, |
269 |
{"min_bquant", ®.min_bquant, 1}, |
{"min_bquant", ®.min_bquant, 1}, |
270 |
{"max_bquant", ®.max_bquant, 31}, |
{"max_bquant", ®.max_bquant, 31}, |
271 |
{"trellis_quant", ®.trellis_quant, 0}, |
{"trellis_quant", ®.trellis_quant, 1}, |
272 |
|
|
273 |
/* debug */ |
/* debug */ |
274 |
{"fourcc_used", ®.fourcc_used, 0}, |
{"fourcc_used", ®.fourcc_used, 0}, |
287 |
}; |
}; |
288 |
|
|
289 |
static const REG_STR reg_strs[] = { |
static const REG_STR reg_strs[] = { |
290 |
{"profile", reg.profile_name, "AS @ L5"}, |
{"profile", reg.profile_name, "(unrestricted)"}, |
291 |
{"stats", reg.stats, CONFIG_2PASS_FILE}, |
{"stats", reg.stats, CONFIG_2PASS_FILE}, |
292 |
}; |
}; |
293 |
|
|
302 |
{"zone%i_greyscale", &stmp.greyscale, 0}, |
{"zone%i_greyscale", &stmp.greyscale, 0}, |
303 |
{"zone%i_chroma_opt", &stmp.chroma_opt, 0}, |
{"zone%i_chroma_opt", &stmp.chroma_opt, 0}, |
304 |
{"zone%i_bvop_threshold", &stmp.bvop_threshold, 0}, |
{"zone%i_bvop_threshold", &stmp.bvop_threshold, 0}, |
305 |
|
{"zone%i_cartoon_mode", &stmp.cartoon_mode, 0}, |
306 |
}; |
}; |
307 |
|
|
308 |
static const BYTE default_qmatrix_intra[] = { |
static const BYTE default_qmatrix_intra[] = { |
844 |
EnableDlgWindow(hDlg, IDC_TFF, IsDlgChecked(hDlg, IDC_INTERLACING)); |
EnableDlgWindow(hDlg, IDC_TFF, IsDlgChecked(hDlg, IDC_INTERLACING)); |
845 |
EnableDlgWindow(hDlg, IDC_QPEL, profiles[profile].flags&PROFILE_QPEL); |
EnableDlgWindow(hDlg, IDC_QPEL, profiles[profile].flags&PROFILE_QPEL); |
846 |
EnableDlgWindow(hDlg, IDC_GMC, profiles[profile].flags&PROFILE_GMC); |
EnableDlgWindow(hDlg, IDC_GMC, profiles[profile].flags&PROFILE_GMC); |
|
EnableDlgWindow(hDlg, IDC_REDUCED, profiles[profile].flags&PROFILE_REDUCED); |
|
847 |
|
|
848 |
bvops = (profiles[profile].flags&PROFILE_BVOP) && IsDlgChecked(hDlg, IDC_BVOP); |
bvops = (profiles[profile].flags&PROFILE_BVOP) && IsDlgChecked(hDlg, IDC_BVOP); |
849 |
EnableDlgWindow(hDlg, IDC_MAXBFRAMES, bvops); |
EnableDlgWindow(hDlg, IDC_MAXBFRAMES, bvops); |
853 |
EnableDlgWindow(hDlg, IDC_BQUANTRATIO_S, bvops); |
EnableDlgWindow(hDlg, IDC_BQUANTRATIO_S, bvops); |
854 |
EnableDlgWindow(hDlg, IDC_BQUANTOFFSET_S, bvops); |
EnableDlgWindow(hDlg, IDC_BQUANTOFFSET_S, bvops); |
855 |
EnableDlgWindow(hDlg, IDC_PACKED, bvops); |
EnableDlgWindow(hDlg, IDC_PACKED, bvops); |
|
EnableDlgWindow(hDlg, IDC_CLOSEDGOV, bvops); |
|
856 |
break; |
break; |
857 |
|
|
858 |
case IDD_AR: |
case IDD_AR: |
936 |
/* step 2: calculate audio_size (kbytes)*/ |
/* step 2: calculate audio_size (kbytes)*/ |
937 |
if (audio_type!=NO_AUDIO) { |
if (audio_type!=NO_AUDIO) { |
938 |
if (audio_mode==0) { |
if (audio_mode==0) { |
939 |
audio_size = (int)( (1000.0 * duration * audio_rate) / (8.0*1024) ); |
int new_audio_size = (int)( (1000.0 * duration * audio_rate) / (8.0*1024) ); |
940 |
SetDlgItemInt(hDlg, IDC_BITRATE_ASIZE, audio_size, TRUE); |
|
941 |
|
/* this check is needed to avoid a loop */ |
942 |
|
if (new_audio_size!=audio_size) { |
943 |
|
audio_size = new_audio_size; |
944 |
|
SetDlgItemInt(hDlg, IDC_BITRATE_ASIZE, new_audio_size, TRUE); |
945 |
|
} |
946 |
}else{ |
}else{ |
947 |
int tmp_rate = (int)( (audio_size * 8.0 * 1024) / (1000.0 * duration) ); |
int tmp_rate = (int)( (audio_size * 8.0 * 1024) / (1000.0 * duration) ); |
948 |
SetDlgItemInt(hDlg, IDC_BITRATE_ARATE, tmp_rate, TRUE); |
SetDlgItemInt(hDlg, IDC_BITRATE_ARATE, tmp_rate, TRUE); |
1001 |
if (vsize > 0) { |
if (vsize > 0) { |
1002 |
SetDlgItemInt(hDlg, IDC_BITRATE_VSIZE, vsize, TRUE); |
SetDlgItemInt(hDlg, IDC_BITRATE_VSIZE, vsize, TRUE); |
1003 |
/* convert from kbytes to kbits-per-second */ |
/* convert from kbytes to kbits-per-second */ |
1004 |
SetDlgItemInt(hDlg, IDC_BITRATE_VRATE, (vsize * 8 * 128) / (duration * 125), TRUE); |
SetDlgItemInt(hDlg, IDC_BITRATE_VRATE, (int)(((__int64)vsize * 8 * 128) / (duration * 125)), TRUE); |
1005 |
}else{ |
}else{ |
1006 |
SetDlgItemText(hDlg, IDC_BITRATE_VSIZE, "Overflow"); |
SetDlgItemText(hDlg, IDC_BITRATE_VSIZE, "Overflow"); |
1007 |
SetDlgItemText(hDlg, IDC_BITRATE_VRATE, "Overflow"); |
SetDlgItemText(hDlg, IDC_BITRATE_VRATE, "Overflow"); |
1061 |
CheckDlg(hDlg, IDC_TFF, config->tff); |
CheckDlg(hDlg, IDC_TFF, config->tff); |
1062 |
CheckDlg(hDlg, IDC_QPEL, config->qpel); |
CheckDlg(hDlg, IDC_QPEL, config->qpel); |
1063 |
CheckDlg(hDlg, IDC_GMC, config->gmc); |
CheckDlg(hDlg, IDC_GMC, config->gmc); |
|
CheckDlg(hDlg, IDC_REDUCED, config->reduced_resolution); |
|
1064 |
CheckDlg(hDlg, IDC_BVOP, config->use_bvop); |
CheckDlg(hDlg, IDC_BVOP, config->use_bvop); |
1065 |
|
|
1066 |
SetDlgItemInt(hDlg, IDC_MAXBFRAMES, config->max_bframes, FALSE); |
SetDlgItemInt(hDlg, IDC_MAXBFRAMES, config->max_bframes, FALSE); |
1067 |
set_dlgitem_float(hDlg, IDC_BQUANTRATIO, config->bquant_ratio); |
set_dlgitem_float(hDlg, IDC_BQUANTRATIO, config->bquant_ratio); |
1068 |
set_dlgitem_float(hDlg, IDC_BQUANTOFFSET, config->bquant_offset); |
set_dlgitem_float(hDlg, IDC_BQUANTOFFSET, config->bquant_offset); |
1069 |
CheckDlg(hDlg, IDC_PACKED, config->packed); |
CheckDlg(hDlg, IDC_PACKED, config->packed); |
|
CheckDlg(hDlg, IDC_CLOSEDGOV, config->closed_gov); |
|
1070 |
|
|
1071 |
break; |
break; |
1072 |
case IDD_AR: |
case IDD_AR: |
1135 |
CheckDlgButton(hDlg, IDC_ZONE_GREYSCALE, config->zones[config->cur_zone].greyscale); |
CheckDlgButton(hDlg, IDC_ZONE_GREYSCALE, config->zones[config->cur_zone].greyscale); |
1136 |
CheckDlgButton(hDlg, IDC_ZONE_CHROMAOPT, config->zones[config->cur_zone].chroma_opt); |
CheckDlgButton(hDlg, IDC_ZONE_CHROMAOPT, config->zones[config->cur_zone].chroma_opt); |
1137 |
|
|
1138 |
|
CheckDlg(hDlg, IDC_CARTOON, config->zones[config->cur_zone].cartoon_mode); |
1139 |
|
|
1140 |
SetDlgItemInt(hDlg, IDC_ZONE_BVOPTHRESHOLD, config->zones[config->cur_zone].bvop_threshold, TRUE); |
SetDlgItemInt(hDlg, IDC_ZONE_BVOPTHRESHOLD, config->zones[config->cur_zone].bvop_threshold, TRUE); |
1141 |
break; |
break; |
1142 |
|
|
1145 |
SendDlgItemMessage(hDlg, IDC_VHQ, CB_SETCURSEL, config->vhq_mode, 0); |
SendDlgItemMessage(hDlg, IDC_VHQ, CB_SETCURSEL, config->vhq_mode, 0); |
1146 |
CheckDlg(hDlg, IDC_VHQ_BFRAME, config->vhq_bframe); |
CheckDlg(hDlg, IDC_VHQ_BFRAME, config->vhq_bframe); |
1147 |
CheckDlg(hDlg, IDC_CHROMAME, config->chromame); |
CheckDlg(hDlg, IDC_CHROMAME, config->chromame); |
|
CheckDlg(hDlg, IDC_CARTOON, config->cartoon_mode); |
|
1148 |
CheckDlg(hDlg, IDC_TURBO, config->turbo); |
CheckDlg(hDlg, IDC_TURBO, config->turbo); |
1149 |
SetDlgItemInt(hDlg, IDC_FRAMEDROP, config->frame_drop_ratio, FALSE); |
SetDlgItemInt(hDlg, IDC_FRAMEDROP, config->frame_drop_ratio, FALSE); |
1150 |
SetDlgItemInt(hDlg, IDC_MAXKEY, config->max_key_interval, FALSE); |
SetDlgItemInt(hDlg, IDC_MAXKEY, config->max_key_interval, FALSE); |
1208 |
config->tff = IsDlgChecked(hDlg, IDC_TFF); |
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); |
|
config->reduced_resolution = IsDlgChecked(hDlg, IDC_REDUCED); |
|
1211 |
|
|
1212 |
config->use_bvop = IsDlgChecked(hDlg, IDC_BVOP); |
config->use_bvop = IsDlgChecked(hDlg, IDC_BVOP); |
1213 |
config->max_bframes = config_get_uint(hDlg, IDC_MAXBFRAMES, config->max_bframes); |
config->max_bframes = config_get_uint(hDlg, IDC_MAXBFRAMES, config->max_bframes); |
1214 |
config->bquant_ratio = get_dlgitem_float(hDlg, IDC_BQUANTRATIO, config->bquant_ratio); |
config->bquant_ratio = get_dlgitem_float(hDlg, IDC_BQUANTRATIO, config->bquant_ratio); |
1215 |
config->bquant_offset = get_dlgitem_float(hDlg, IDC_BQUANTOFFSET, config->bquant_offset); |
config->bquant_offset = get_dlgitem_float(hDlg, IDC_BQUANTOFFSET, config->bquant_offset); |
1216 |
config->packed = IsDlgChecked(hDlg, IDC_PACKED); |
config->packed = IsDlgChecked(hDlg, IDC_PACKED); |
|
config->closed_gov = IsDlgChecked(hDlg, IDC_CLOSEDGOV); |
|
1217 |
break; |
break; |
1218 |
|
|
1219 |
case IDD_AR: |
case IDD_AR: |
1318 |
config->zones[config->cur_zone].chroma_opt = IsDlgButtonChecked(hDlg, IDC_ZONE_CHROMAOPT); |
config->zones[config->cur_zone].chroma_opt = IsDlgButtonChecked(hDlg, IDC_ZONE_CHROMAOPT); |
1319 |
|
|
1320 |
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].bvop_threshold = config_get_int(hDlg, IDC_ZONE_BVOPTHRESHOLD, config->zones[config->cur_zone].bvop_threshold); |
1321 |
|
config->zones[config->cur_zone].cartoon_mode = IsDlgChecked(hDlg, IDC_CARTOON); |
1322 |
break; |
break; |
1323 |
|
|
1324 |
case IDD_MOTION : |
case IDD_MOTION : |
1326 |
config->vhq_mode = SendDlgItemMessage(hDlg, IDC_VHQ, CB_GETCURSEL, 0, 0); |
config->vhq_mode = SendDlgItemMessage(hDlg, IDC_VHQ, CB_GETCURSEL, 0, 0); |
1327 |
config->vhq_bframe = IsDlgButtonChecked(hDlg, IDC_VHQ_BFRAME); |
config->vhq_bframe = IsDlgButtonChecked(hDlg, IDC_VHQ_BFRAME); |
1328 |
config->chromame = IsDlgChecked(hDlg, IDC_CHROMAME); |
config->chromame = IsDlgChecked(hDlg, IDC_CHROMAME); |
|
config->cartoon_mode = IsDlgChecked(hDlg, IDC_CARTOON); |
|
1329 |
config->turbo = IsDlgChecked(hDlg, IDC_TURBO); |
config->turbo = IsDlgChecked(hDlg, IDC_TURBO); |
1330 |
|
|
1331 |
config->frame_drop_ratio = config_get_uint(hDlg, IDC_FRAMEDROP, config->frame_drop_ratio); |
config->frame_drop_ratio = config_get_uint(hDlg, IDC_FRAMEDROP, config->frame_drop_ratio); |
1705 |
strcat(tmp, "G "); |
strcat(tmp, "G "); |
1706 |
|
|
1707 |
if (s->chroma_opt) |
if (s->chroma_opt) |
1708 |
|
strcat(tmp, "O "); |
1709 |
|
|
1710 |
|
if (s->chroma_opt) |
1711 |
strcat(tmp, "C "); |
strcat(tmp, "C "); |
1712 |
|
|
1713 |
ListView_SetItemText(hDlg, i, 2, tmp); |
ListView_SetItemText(hDlg, i, 2, tmp); |