private IResult TransformMedia( Stream original, IFormatInfo outputFormat, string path, IMediaTransformer mediaTransformer )
{
Stream stream;
var transformResult = mediaTransformer.TransformStream( original, out stream );
original.Dispose();
if ( transformResult == MediaTransformResult.Success )
{
IAddToCacheResult cacheResult;
if ( MediaCache.TryAddToCache( path, stream, outputFormat, out cacheResult ) )
{
return new CopyToOutputStreamResult( cacheResult.LastModified, cacheResult.ETag, stream.Length, stream );
}
}
return new CopyToOutputStreamResult( null, null, stream.Length, stream );
}