aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/MediaInfo/FFMpegManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/MediaInfo/FFMpegManager.cs')
-rw-r--r--MediaBrowser.Controller/MediaInfo/FFMpegManager.cs90
1 files changed, 1 insertions, 89 deletions
diff --git a/MediaBrowser.Controller/MediaInfo/FFMpegManager.cs b/MediaBrowser.Controller/MediaInfo/FFMpegManager.cs
index 9bc1ebaa5..7ef70ea42 100644
--- a/MediaBrowser.Controller/MediaInfo/FFMpegManager.cs
+++ b/MediaBrowser.Controller/MediaInfo/FFMpegManager.cs
@@ -4,9 +4,9 @@ using MediaBrowser.Common.Kernel;
using MediaBrowser.Common.Serialization;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
-using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO;
+using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -17,7 +17,6 @@ using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;
-using MediaBrowser.Model.Logging;
namespace MediaBrowser.Controller.MediaInfo
{
@@ -27,22 +26,6 @@ namespace MediaBrowser.Controller.MediaInfo
public class FFMpegManager : BaseManager<Kernel>
{
/// <summary>
- /// Holds the list of new items to generate chapter image for when the NewItemTimer expires
- /// </summary>
- private readonly List<Video> _newlyAddedItems = new List<Video>();
-
- /// <summary>
- /// The amount of time to wait before generating chapter images
- /// </summary>
- private const int NewItemDelay = 300000;
-
- /// <summary>
- /// The current new item timer
- /// </summary>
- /// <value>The new item timer.</value>
- private Timer NewItemTimer { get; set; }
-
- /// <summary>
/// Gets or sets the video image cache.
/// </summary>
/// <value>The video image cache.</value>
@@ -96,74 +79,10 @@ namespace MediaBrowser.Controller.MediaInfo
AudioImageCache = new FileSystemRepository(AudioImagesDataPath);
SubtitleCache = new FileSystemRepository(SubtitleCachePath);
- Kernel.LibraryManager.LibraryChanged += LibraryManager_LibraryChanged;
-
Task.Run(() => VersionedDirectoryPath = GetVersionedDirectoryPath());
}
/// <summary>
- /// Handles the LibraryChanged event of the LibraryManager control.
- /// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="ChildrenChangedEventArgs" /> instance containing the event data.</param>
- void LibraryManager_LibraryChanged(object sender, ChildrenChangedEventArgs e)
- {
- var videos = e.ItemsAdded.OfType<Video>().ToList();
-
- // Use a timer to prevent lots of these notifications from showing in a short period of time
- if (videos.Count > 0)
- {
- lock (_newlyAddedItems)
- {
- _newlyAddedItems.AddRange(videos);
-
- if (NewItemTimer == null)
- {
- NewItemTimer = new Timer(NewItemTimerCallback, null, NewItemDelay, Timeout.Infinite);
- }
- else
- {
- NewItemTimer.Change(NewItemDelay, Timeout.Infinite);
- }
- }
- }
- }
-
- /// <summary>
- /// Called when the new item timer expires
- /// </summary>
- /// <param name="state">The state.</param>
- private async void NewItemTimerCallback(object state)
- {
- List<Video> newItems;
-
- // Lock the list and release all resources
- lock (_newlyAddedItems)
- {
- newItems = _newlyAddedItems.ToList();
- _newlyAddedItems.Clear();
-
- NewItemTimer.Dispose();
- NewItemTimer = null;
- }
-
- // Limit the number of videos we generate images for
- // The idea is to catch new items that are added here and there
- // Mass image generation can be left to the scheduled task
- foreach (var video in newItems.Where(c => c.Chapters != null).Take(3))
- {
- try
- {
- await PopulateChapterImages(video, CancellationToken.None, true, true).ConfigureAwait(false);
- }
- catch (Exception ex)
- {
- _logger.ErrorException("Error creating chapter images for {0}", ex, video.Name);
- }
- }
- }
-
- /// <summary>
/// Releases unmanaged and - optionally - managed resources.
/// </summary>
/// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
@@ -171,15 +90,8 @@ namespace MediaBrowser.Controller.MediaInfo
{
if (dispose)
{
- if (NewItemTimer != null)
- {
- NewItemTimer.Dispose();
- }
-
SetErrorMode(ErrorModes.SYSTEM_DEFAULT);
- Kernel.LibraryManager.LibraryChanged -= LibraryManager_LibraryChanged;
-
AudioImageCache.Dispose();
VideoImageCache.Dispose();
}