diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs index 47a441a4d6..76b0818fe9 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs @@ -255,7 +255,9 @@ namespace MediaBrowser.Providers.MediaInfo } } - info.StartPositionTicks = chapter.start / 100; + // Limit accuracy to milliseconds to match xml saving + var ms = Math.Round(TimeSpan.FromTicks(chapter.start / 100).TotalMilliseconds); + info.StartPositionTicks = TimeSpan.FromMilliseconds(ms).Ticks; return info; } diff --git a/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs b/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs index 6d681197e5..679a1f5303 100644 --- a/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs +++ b/MediaBrowser.Providers/Savers/XmlSaverHelpers.cs @@ -636,22 +636,27 @@ namespace MediaBrowser.Providers.Savers { var video = item as Video; - if (video != null && video.Video3DFormat.HasValue) + if (video != null) { - switch (video.Video3DFormat.Value) + AddChapters(video, builder, itemRepository); + + if (video.Video3DFormat.HasValue) { - case Video3DFormat.FullSideBySide: - builder.Append("FSBS"); - break; - case Video3DFormat.FullTopAndBottom: - builder.Append("FTAB"); - break; - case Video3DFormat.HalfSideBySide: - builder.Append("HSBS"); - break; - case Video3DFormat.HalfTopAndBottom: - builder.Append("HTAB"); - break; + switch (video.Video3DFormat.Value) + { + case Video3DFormat.FullSideBySide: + builder.Append("FSBS"); + break; + case Video3DFormat.FullTopAndBottom: + builder.Append("FTAB"); + break; + case Video3DFormat.HalfSideBySide: + builder.Append("HSBS"); + break; + case Video3DFormat.HalfTopAndBottom: + builder.Append("HTAB"); + break; + } } } }