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;
+ }
}
}
}