public MetaBlock?NextMetaBlock() { if (transformedQueue.Count == 0) { transformedState = original.State; // update state to match start of the next meta-block var metaBlock = original.NextMetaBlock(); if (metaBlock != null) { var(transformedMetaBlocks, newTransformedState) = BrotliEncodePipeline.ApplyTransformerChain(transformedState, metaBlock, compressionParameters, transformers); foreach (var transformedMetaBlock in transformedMetaBlocks) { transformedQueue.Enqueue(transformedMetaBlock); } transformedState = newTransformedState; } } return(transformedQueue.TryDequeue(out var next) ? next : null); }
private void OpenFileWithPipeline(BrotliDictionary dictionary, BrotliEncodePipeline pipeline) { OpenFileWith("Open File to Encode", fileName => fileGenerated.EncodeFile(fileName, pipeline, dictionary)); }