private bool IsVideoDirectPlaySupported(DirectPlayProfile profile, MediaSourceInfo item, MediaStream videoStream, MediaStream audioStream) { // Only plain video files can be direct played if (item.VideoType != VideoType.VideoFile) { return(false); } if (profile.Container.Length > 0) { // Check container type string mediaContainer = item.Container ?? string.Empty; bool any = false; foreach (string i in profile.GetContainers()) { if (StringHelper.EqualsIgnoreCase(i, mediaContainer)) { any = true; break; } } if (!any) { return(false); } } // Check video codec List <string> videoCodecs = profile.GetVideoCodecs(); if (videoCodecs.Count > 0) { string videoCodec = videoStream == null ? null : videoStream.Codec; if (string.IsNullOrEmpty(videoCodec) || !ListHelper.ContainsIgnoreCase(videoCodecs, videoCodec)) { return(false); } } List <string> audioCodecs = profile.GetAudioCodecs(); if (audioCodecs.Count > 0) { // Check audio codecs string audioCodec = audioStream == null ? null : audioStream.Codec; if (string.IsNullOrEmpty(audioCodec) || !ListHelper.ContainsIgnoreCase(audioCodecs, audioCodec)) { return(false); } } return(true); }
private bool IsVideoDirectPlaySupported(DirectPlayProfile profile, MediaSourceInfo item, MediaStream videoStream, MediaStream audioStream) { // Only plain video files can be direct played if (item.VideoType != VideoType.VideoFile) { return(false); } if (profile.Container.Length > 0) { // Check container type var mediaContainer = item.Container ?? string.Empty; if (!profile.GetContainers().Any(i => string.Equals(i, mediaContainer, StringComparison.OrdinalIgnoreCase))) { return(false); } } // Check video codec var videoCodecs = profile.GetVideoCodecs(); if (videoCodecs.Count > 0) { var videoCodec = videoStream == null ? null : videoStream.Codec; if (string.IsNullOrEmpty(videoCodec) || !videoCodecs.Contains(videoCodec, StringComparer.OrdinalIgnoreCase)) { return(false); } } var audioCodecs = profile.GetAudioCodecs(); if (audioCodecs.Count > 0) { // Check audio codecs var audioCodec = audioStream == null ? null : audioStream.Codec; if (string.IsNullOrEmpty(audioCodec) || !audioCodecs.Contains(audioCodec, StringComparer.OrdinalIgnoreCase)) { return(false); } } return(true); }
private bool IsVideoDirectPlaySupported(DirectPlayProfile profile, MediaSourceInfo item, MediaStream videoStream, MediaStream audioStream) { if (profile.Container.Length > 0) { // Check container type string mediaContainer = item.Container ?? string.Empty; bool any = false; foreach (string i in profile.GetContainers()) { if (StringHelper.EqualsIgnoreCase(i, mediaContainer)) { any = true; break; } } if (!any) { return false; } } // Check video codec List<string> videoCodecs = profile.GetVideoCodecs(); if (videoCodecs.Count > 0) { string videoCodec = videoStream == null ? null : videoStream.Codec; if (string.IsNullOrEmpty(videoCodec) || !ListHelper.ContainsIgnoreCase(videoCodecs, videoCodec)) { return false; } } List<string> audioCodecs = profile.GetAudioCodecs(); if (audioCodecs.Count > 0) { // Check audio codecs string audioCodec = audioStream == null ? null : audioStream.Codec; if (string.IsNullOrEmpty(audioCodec) || !ListHelper.ContainsIgnoreCase(audioCodecs, audioCodec)) { return false; } } return true; }
private bool IsSupported(DirectPlayProfile profile, Video item, MediaStream videoStream, MediaStream audioStream) { if (item.VideoType != VideoType.VideoFile) { return false; } var mediaPath = item.Path; if (profile.Container.Length > 0) { // Check container type var mediaContainer = Path.GetExtension(mediaPath); if (!profile.GetContainers().Any(i => string.Equals("." + i.TrimStart('.'), mediaContainer, StringComparison.OrdinalIgnoreCase))) { return false; } } // Check video codec var videoCodecs = profile.GetVideoCodecs(); if (videoCodecs.Count > 0) { var videoCodec = videoStream == null ? null : videoStream.Codec; if (string.IsNullOrWhiteSpace(videoCodec) || !videoCodecs.Contains(videoCodec, StringComparer.OrdinalIgnoreCase)) { return false; } } var audioCodecs = profile.GetAudioCodecs(); if (audioCodecs.Count > 0) { // Check audio codecs var audioCodec = audioStream == null ? null : audioStream.Codec; if (string.IsNullOrWhiteSpace(audioCodec) || !audioCodecs.Contains(audioCodec, StringComparer.OrdinalIgnoreCase)) { return false; } } return true; }
private bool IsVideoDirectPlaySupported(DirectPlayProfile profile, MediaSourceInfo item, MediaStream videoStream, MediaStream audioStream) { // Only plain video files can be direct played if (item.VideoType != VideoType.VideoFile) { return false; } if (profile.Container.Length > 0) { // Check container type var mediaContainer = item.Container ?? string.Empty; if (!profile.GetContainers().Any(i => string.Equals(i, mediaContainer, StringComparison.OrdinalIgnoreCase))) { return false; } } // Check video codec var videoCodecs = profile.GetVideoCodecs(); if (videoCodecs.Count > 0) { var videoCodec = videoStream == null ? null : videoStream.Codec; if (string.IsNullOrEmpty(videoCodec) || !videoCodecs.Contains(videoCodec, StringComparer.OrdinalIgnoreCase)) { return false; } } var audioCodecs = profile.GetAudioCodecs(); if (audioCodecs.Count > 0) { // Check audio codecs var audioCodec = audioStream == null ? null : audioStream.Codec; if (string.IsNullOrEmpty(audioCodec) || !audioCodecs.Contains(audioCodec, StringComparer.OrdinalIgnoreCase)) { return false; } } return true; }