From b14ee636351789f79ae6257a605f8e3fa934edb4 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 3 Jun 2015 01:29:00 -0400 Subject: improve probing of ogg --- .../Probing/ProbeResultNormalizer.cs | 25 +++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'MediaBrowser.MediaEncoding') diff --git a/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs b/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs index 6ca489f6d..33b703611 100644 --- a/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs +++ b/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs @@ -56,10 +56,33 @@ namespace MediaBrowser.MediaEncoding.Probing { SetAudioRuntimeTicks(data, info); + var tags = new Dictionary(StringComparer.OrdinalIgnoreCase); + + // tags are normally located under data.format, but we've seen some cases with ogg where they're part of the audio stream + // so let's create a combined list of both + + if (data.streams != null) + { + var audioStream = data.streams.FirstOrDefault(i => string.Equals(i.codec_type, "audio", StringComparison.OrdinalIgnoreCase)); + + if (audioStream != null && audioStream.tags != null) + { + foreach (var pair in audioStream.tags) + { + tags[pair.Key] = pair.Value; + } + } + } + if (data.format != null && data.format.tags != null) { - SetAudioInfoFromTags(info, data.format.tags); + foreach (var pair in data.format.tags) + { + tags[pair.Key] = pair.Value; + } } + + SetAudioInfoFromTags(info, tags); } else { -- cgit v1.2.3 From fb49edf055921656797a2109f82c642119177785 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 7 Jun 2015 23:17:27 -0400 Subject: fix encoding escape quotes --- MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'MediaBrowser.MediaEncoding') diff --git a/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs index 9337824a2..16b4e418e 100644 --- a/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs +++ b/MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs @@ -902,13 +902,13 @@ namespace MediaBrowser.MediaEncoding.Encoder // TODO: Perhaps also use original_size=1920x800 ?? return string.Format("subtitles=filename='{0}'{1},setpts=PTS -{2}/TB", - subtitlePath.Replace('\\', '/').Replace(":/", "\\:/"), + subtitlePath.Replace('\\', '/').Replace("'", "\\'").Replace(":/", "\\:/"), charsetParam, seconds.ToString(UsCulture)); } return string.Format("subtitles='{0}:si={1}',setpts=PTS -{2}/TB", - state.MediaPath.Replace('\\', '/').Replace(":/", "\\:/"), + state.MediaPath.Replace('\\', '/').Replace("'", "\\'").Replace(":/", "\\:/"), state.InternalSubtitleStreamOffset.ToString(UsCulture), seconds.ToString(UsCulture)); } -- cgit v1.2.3