// long books, single mode: default 32bit FFmpeg may run out of memory public void SetFFmpegPrefer64Bit(IConvSettings settings) { if (settings.ConvMode != EConvMode.single) { return; } if (!settings.FFMpegDirectory.IsNullOrWhiteSpace()) { return; } TimeSpan durationFFmpeg64Bit = DurationFFmpeg64Bit; if (settings.FFmpeg64bitHours > 0) { durationFFmpeg64Bit = TimeSpan.FromHours(settings.FFmpeg64bitHours); } if (Duration < durationFFmpeg64Bit) { return; } FFmpegPrefer64Bit = ApplEnv.Is64BitOperatingSystem; Log(3, this, () => $"\"{Book.SortingTitle.Shorten ()}\" {nameof(FFmpegPrefer64Bit)}={FFmpegPrefer64Bit}"); }
public bool IsTrancodeConversion(IConvSettings settings) { bool isMp3 = IsMp3Stream; bool wantMp3 = settings.ConvFormat == EConvFormat.mp3; bool isTranscode = isMp3 != wantMp3; var(abr, _) = settings.ApplicableBitRate(AaxFileItem.AvgBitRate); bool changeBitRate = abr != 0; isTranscode |= changeBitRate; return(isTranscode); }
public void CreateCueSheet(IConvSettings settings) { Log(3, this, () => this.ToString()); // do not trust the settings range check. Enforce track length between 3 and 15 min. int trackDurMins = Math.Max(3, Math.Min(15, (int)settings.TrkDurMins)); // expects all chapters in individual files, each starting at time 0 // tracks per chapter foreach (var chapter in Chapters) { chapter.CreateCueSheet(this, trackDurMins, settings.ConvMode == EConvMode.splitTime); } }
public void SetMetaChapters(IConvSettings settings) { switch (settings.ConvMode) { case EConvMode.chapters: case EConvMode.splitChapters: setMetaChaptersSingle(); break; case EConvMode.splitTime: setMetaChaptersMulti(); break; } }
public void CreateCueSheet(IConvSettings settings) { Log(3, this, () => this.ToString()); // Do not trust the settings range check. Enforce track length between 3 and 15/90 min. var(_, _, trackDurMins) = settings.TrkDurMins.TrackDuration(settings.ConvMode); // expects all chapters in individual files, each starting at time 0 // tracks per chapter foreach (var chapter in Chapters) { chapter.CreateCueSheet(this, trackDurMins, settings.ConvMode == EConvMode.splitTime); } }
public static bool UseEmbeddedChapterTimes(this IConvSettings settings) => settings.PreferEmbeddedChapterTimes == EPreferEmbeddedChapterTimes.ifSilent && settings.NamedChapters != ENamedChapters.no;
public DegreeOfParallelism(IConvSettings settings) { _settings = settings; }