diff --git a/MediaBrowser.Common/MediaInfo/MediaInfoResult.cs b/MediaBrowser.Common/MediaInfo/MediaInfoResult.cs index 6fcb40300..d9a666f30 100644 --- a/MediaBrowser.Common/MediaInfo/MediaInfoResult.cs +++ b/MediaBrowser.Common/MediaInfo/MediaInfoResult.cs @@ -74,6 +74,12 @@ namespace MediaBrowser.Common.MediaInfo /// The channels. public int channels { get; set; } + /// + /// Gets or sets the channel_layout. + /// + /// The channel_layout. + public string channel_layout { get; set; } + /// /// Gets or sets the avg_frame_rate. /// diff --git a/MediaBrowser.Model/Entities/MediaStream.cs b/MediaBrowser.Model/Entities/MediaStream.cs index 1703dbf05..5e85369b9 100644 --- a/MediaBrowser.Model/Entities/MediaStream.cs +++ b/MediaBrowser.Model/Entities/MediaStream.cs @@ -23,6 +23,12 @@ namespace MediaBrowser.Model.Entities /// /// The type of the scan. public string ScanType { get; set; } + + /// + /// Gets or sets the channel layout. + /// + /// The channel layout. + public string ChannelLayout { get; set; } /// /// Gets or sets the bit rate. diff --git a/MediaBrowser.Providers/MediaInfo/BaseFFProbeProvider.cs b/MediaBrowser.Providers/MediaInfo/BaseFFProbeProvider.cs index f65bf9ea3..a84310310 100644 --- a/MediaBrowser.Providers/MediaInfo/BaseFFProbeProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/BaseFFProbeProvider.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Common.MediaInfo; +using System.Linq; +using MediaBrowser.Common.MediaInfo; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.MediaInfo; @@ -201,6 +202,8 @@ namespace MediaBrowser.Providers.MediaInfo { stream.SampleRate = int.Parse(streamInfo.sample_rate, UsCulture); } + + stream.ChannelLayout = ParseChannelLayout(streamInfo.channel_layout); } else if (string.Equals(streamInfo.codec_type, "subtitle", StringComparison.OrdinalIgnoreCase)) { @@ -249,6 +252,16 @@ namespace MediaBrowser.Providers.MediaInfo return stream; } + private string ParseChannelLayout(string input) + { + if (string.IsNullOrEmpty(input)) + { + return input; + } + + return input.Split('(').FirstOrDefault(); + } + private string GetAspectRatio(MediaStreamInfo info) { var original = info.display_aspect_ratio;