private void AddTransitions(Shot shot, CompositeManifestInfo compositeManifestInfo) { const double Timescale = 10000000.0; SubClipItem subclipItem = shot.Source as SubClipItem; Item itemForTransition = subclipItem != null ? subclipItem.RelatedItem : shot.Source; if (!(itemForTransition is VideoItem) && !(itemForTransition is AudioItem)) { return; } AssetType assetType = (itemForTransition is VideoItem) ? AssetType.Video : AssetType.Audio; ulong position = (ulong)(shot.TrackAnchor.MarkIn * Timescale); compositeManifestInfo.AddTransition(SmoothStreamingManifestGenerator.Models.TransitionType.FadeIn, assetType, position, shot.InTransition.Duration); position = (ulong)((shot.TrackAnchor.MarkIn + (shot.SourceAnchor.MarkOut - shot.SourceAnchor.MarkIn) - shot.OutTransition.Duration) * Timescale); compositeManifestInfo.AddTransition(SmoothStreamingManifestGenerator.Models.TransitionType.FadeOut, assetType, position, shot.OutTransition.Duration); }
private static void AddTransition(SmoothStreamingManifestGenerator.Models.TransitionType transitionType, AssetType assetType, ulong position, double duration, CompositeManifestInfo compositeManifestInfo) { compositeManifestInfo.AddTransition(transitionType, assetType, position, duration); }