1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| procedure TFormEncode.btAddX264Click(Sender: TObject);
var
filename, default_fname, stats_file: string;
begin
if not CollectAudioSettings then
exit;
// get default settings if new doesn't exist
if rbPass0.Checked then // 1st Pass
begin
filename := ChangeFileExt(AVIOutputF, ScFirstpassSettings);
if not FileExists(filename) then
begin
default_fname := WorkDir + ScDefaultX264FirstpassSettings;
if FileExists(default_fname) and (not rbPassSingle.Checked) then
begin
RestoreRegFile(default_fname);
with TNewRegistry.Create do
begin
OpenKey(REG_X264_KEY, true);
WriteInteger(regX264_encoding_type, 2);
WriteInteger(regX264_pass_number, 1);
stats_file := ChangeFileExt(EncoderLogFile, '.stats');
WriteString(regX264_statsfile, stats_file);
CloseKey;
Free;
end;
BackupRegFile(HKEY_CURRENT_USER, REG_X264_KEY, filename);
end
else
begin
MessageDlg(SFirstPassSettingsAreNotSetAndDef, mtError, [mbOK], 0);
exit;
end;
end;
end;
if rbPass0.Checked then // Second Pass
begin
filename := ChangeFileExt(AVIOutputF, ScSecondpassSettings);
if not FileExists(filename) then
begin
default_fname := WorkDir + ScDefaultX264SecondpassSettings;
if FileExists(default_fname) then
begin
RestoreRegFile(default_fname);
with TNewRegistry.Create do
begin
OpenKey(REG_X264_KEY, true);
WriteInteger(regX264_encoding_type, 2);
WriteInteger(regX264_pass_number, 2);
WriteInteger(regX264_passbitrate, round(ResCalc.VideoBitrate*1.024));
stats_file := ChangeFileExt(EncoderLogFile, '.stats');
WriteString(regX264_statsfile, stats_file);
CloseKey;
Free;
end;
BackupRegFile(HKEY_CURRENT_USER, REG_X264_KEY, filename);
end
else
begin
MessageDlg(SSecondPassSettingsAreNotSetAndDe, mtError, [mbOK], 0);
exit;
end;
end;
end;
EncodeX264;
end; |
Partager