Отмена генерации не ошибка, длинная тишина набирается повторами
Отмену вставок просили мы сами, когда правка сделала работу ненужной, а журнал сообщал «Не удалось подготовить вставки: Отменено» — неправда там, где всё шло по плану. Теперь отмена докладывается как отмена и сразу планирует пересборку предпросмотра, а не ждёт таймера. Вчерашнее дробление дыр не дошло до звуковых дорожек: они уплощаются отдельной функцией. Кусок тишины в три минуты ссылался на минутный файл, и плеер жаловался «uses 192.5 seconds, but file has only 60». Теперь длинная тишина набирается повторами, а одинаковые файлы не заказываются дважды. Проверено живьём на материале 2688x1512: отмена ловится, обе строки в журнале верные, предупреждений о коротких файлах ноль. Проверка 15 в flattest следит за дроблением тишины.
This commit is contained in:
parent
8258de7145
commit
00af5e1eec
4 changed files with 88 additions and 26 deletions
|
|
@ -971,6 +971,39 @@ begin
|
|||
end;
|
||||
WriteLn;
|
||||
|
||||
{ --- 15. Длинная тишина тоже набирается повторами --- }
|
||||
WriteLn(' 15. Дыра на звуковой дорожке');
|
||||
Proj := MakeProject(1, Media);
|
||||
try
|
||||
Proj.Master := Media.Info;
|
||||
Proj.EnsureAudioTracks;
|
||||
{ Два звуковых клипа с промежутком в семьдесят секунд: он разложится
|
||||
на минуту и десять секунд, то есть на два разных файла. }
|
||||
Clip := Proj.AddClip(Proj.Tracks[1], Media, 0, 5, 0);
|
||||
Clip.Kind := ckAudio;
|
||||
Clip := Proj.AddClip(Proj.Tracks[1], Media, 10, 5, 75);
|
||||
Clip.Kind := ckAudio;
|
||||
|
||||
FlattenAudioTrack(Proj, Proj.Tracks[1], 80, Segs, Missing);
|
||||
DumpSegments(Segs);
|
||||
|
||||
N := 0;
|
||||
for I := 0 to High(Segs) do
|
||||
if Segs[I].Kind = skBlack then
|
||||
begin
|
||||
Inc(N);
|
||||
Check(Segs[I].Duration <= 60.0005,
|
||||
'кусок тишины не длиннее минуты: ' + SecondsToStr(Segs[I].Duration));
|
||||
end;
|
||||
Check(N = 2, 'тишина разложена на два куска: ' + IntToStr(N));
|
||||
Check(Length(Missing) = 2,
|
||||
'заказаны две длины, минутная и пятнадцатисекундная: ' +
|
||||
IntToStr(Length(Missing)));
|
||||
finally
|
||||
Proj.Free;
|
||||
end;
|
||||
WriteLn;
|
||||
|
||||
WriteLn;
|
||||
if FailCount = 0 then
|
||||
begin
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue