public CompressionLevelService(
     CompressionLevelInferrer metadataPreservedService,
     CompressionLevelInferrer metadataDiscardedService)
 {
     this.metadataPreservedService = metadataPreservedService;
     this.metadataDiscardedService = metadataDiscardedService;
 }
Esempio n. 2
0
        private static CompressionLevelService BuildComponents(FileInfo flacExe)
        {
            var processRunner = new ExternalProcess.ProcessRunner(processTimeoutSec);

            IAudioFileEncoder encoder_MetadataPreserved = new FileRecoder(flacExe, processRunner);

            IAudioFileEncoder encoder_MetadataDiscarded = new AudioFileEncoder(
                new FileDecoder(flacExe, processRunner),
                new StreamEncoder(flacExe, processRunner));

            IFileInfoSizeGetter fileSize = new FileInfoSizeGetter();

            var service_MetadataPreserved = new CompressionLevelInferrer(
                new CompressedSizeService(encoder_MetadataPreserved),
                fileSize,
                minCompressionLevel,
                maxCompressionLevel);

            var service_MetadataDiscarded = new CompressionLevelInferrer(
                new CompressedSizeService(encoder_MetadataDiscarded),
                fileSize,
                minCompressionLevel,
                maxCompressionLevel);

            return(new CompressionLevelService(service_MetadataPreserved, service_MetadataDiscarded));
        }
Esempio n. 3
0
 private void CreateTarget(int minCompressionLevel, int maxCompressionLevel)
 {
     target = new CompressionLevelInferrer(
         encoder.Object,
         fileSizeGetter.Object,
         minCompressionLevel,
         maxCompressionLevel);
 }
        public Range <int> InferCompressionLevel(FileInfo sourceFile, int targetCompressionLevel, MetadataMode metadataMode)
        {
            CompressionLevelInferrer service = PickEncoder(metadataMode);

            return(service.InferCompressionLevel(sourceFile, targetCompressionLevel));
        }