diff options
Diffstat (limited to 'MediaBrowser.Controller/MediaInfo/MediaEncoderHelpers.cs')
| -rw-r--r-- | MediaBrowser.Controller/MediaInfo/MediaEncoderHelpers.cs | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/MediaInfo/MediaEncoderHelpers.cs b/MediaBrowser.Controller/MediaInfo/MediaEncoderHelpers.cs new file mode 100644 index 000000000..e20a425aa --- /dev/null +++ b/MediaBrowser.Controller/MediaInfo/MediaEncoderHelpers.cs @@ -0,0 +1,104 @@ +using MediaBrowser.Common.IO; +using MediaBrowser.Common.MediaInfo; +using MediaBrowser.Controller.Entities; +using MediaBrowser.Model.Entities; + +namespace MediaBrowser.Controller.MediaInfo +{ + /// <summary> + /// Class MediaEncoderHelpers + /// </summary> + public static class MediaEncoderHelpers + { + /// <summary> + /// Gets the input argument. + /// </summary> + /// <param name="video">The video.</param> + /// <param name="isoMount">The iso mount.</param> + /// <param name="type">The type.</param> + /// <returns>System.String[][].</returns> + public static string[] GetInputArgument(Video video, IIsoMount isoMount, out InputType type) + { + var inputPath = isoMount == null ? new[] { video.Path } : new[] { isoMount.MountedPath }; + + type = InputType.VideoFile; + + switch (video.VideoType) + { + case VideoType.BluRay: + type = InputType.Bluray; + break; + case VideoType.Dvd: + type = InputType.Dvd; + inputPath = video.GetPlayableStreamFiles(inputPath[0]).ToArray(); + break; + case VideoType.Iso: + if (video.IsoType.HasValue) + { + switch (video.IsoType.Value) + { + case IsoType.BluRay: + type = InputType.Bluray; + break; + case IsoType.Dvd: + type = InputType.Dvd; + inputPath = video.GetPlayableStreamFiles(inputPath[0]).ToArray(); + break; + } + } + break; + case VideoType.VideoFile: + { + if (video.LocationType == LocationType.Remote) + { + type = InputType.Url; + } + break; + } + } + + return inputPath; + } + + /// <summary> + /// Gets the type of the input. + /// </summary> + /// <param name="item">The item.</param> + /// <returns>InputType.</returns> + public static InputType GetInputType(BaseItem item) + { + var type = InputType.AudioFile; + + var video = item as Video; + + if (video != null) + { + switch (video.VideoType) + { + case VideoType.BluRay: + type = InputType.Bluray; + break; + case VideoType.Dvd: + type = InputType.Dvd; + break; + case VideoType.Iso: + if (video.IsoType.HasValue) + { + switch (video.IsoType.Value) + { + case IsoType.BluRay: + type = InputType.Bluray; + break; + case IsoType.Dvd: + type = InputType.Dvd; + break; + } + } + break; + } + } + + return type; + } + } +} |
