From 863ca986bd43dfcc103cdb0fd76a996a196cb5bc Mon Sep 17 00:00:00 2001 From: LukePulverenti Luke Pulverenti luke pulverenti Date: Wed, 22 Aug 2012 16:57:29 -0400 Subject: [PATCH] Added some null checks and logging when parsing ffprobe output --- MediaBrowser.Controller/FFMpeg/FFProbe.cs | 2 -- MediaBrowser.Controller/Providers/AudioInfoProvider.cs | 7 +++++++ MediaBrowser.Controller/Providers/VideoInfoProvider.cs | 7 +++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/MediaBrowser.Controller/FFMpeg/FFProbe.cs b/MediaBrowser.Controller/FFMpeg/FFProbe.cs index 1a207f2211..eb0d77a998 100644 --- a/MediaBrowser.Controller/FFMpeg/FFProbe.cs +++ b/MediaBrowser.Controller/FFMpeg/FFProbe.cs @@ -66,8 +66,6 @@ namespace MediaBrowser.Controller.FFMpeg private static FFProbeResult Run(string input) { - MediaBrowser.Common.Logging.Logger.LogInfo(input); - ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.CreateNoWindow = true; diff --git a/MediaBrowser.Controller/Providers/AudioInfoProvider.cs b/MediaBrowser.Controller/Providers/AudioInfoProvider.cs index 6c0eb93a6d..d45c5ee686 100644 --- a/MediaBrowser.Controller/Providers/AudioInfoProvider.cs +++ b/MediaBrowser.Controller/Providers/AudioInfoProvider.cs @@ -4,6 +4,7 @@ using System.ComponentModel.Composition; using System.IO; using System.Linq; using System.Threading.Tasks; +using MediaBrowser.Common.Logging; using MediaBrowser.Controller.Events; using MediaBrowser.Controller.FFMpeg; using MediaBrowser.Model.Entities; @@ -35,6 +36,12 @@ namespace MediaBrowser.Controller.Providers private void Fetch(Audio audio, FFProbeResult data) { + if (data == null) + { + Logger.LogInfo("Null FFProbeResult for {0} {1}", audio.Id, audio.Name); + return; + } + MediaStream stream = data.streams.First(s => s.codec_type.Equals("audio", StringComparison.OrdinalIgnoreCase)); string bitrate = null; diff --git a/MediaBrowser.Controller/Providers/VideoInfoProvider.cs b/MediaBrowser.Controller/Providers/VideoInfoProvider.cs index 8145654331..658497cad7 100644 --- a/MediaBrowser.Controller/Providers/VideoInfoProvider.cs +++ b/MediaBrowser.Controller/Providers/VideoInfoProvider.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel.Composition; using System.Linq; using System.Threading.Tasks; +using MediaBrowser.Common.Logging; using MediaBrowser.Controller.Events; using MediaBrowser.Controller.FFMpeg; using MediaBrowser.Model.Entities; @@ -47,6 +48,12 @@ namespace MediaBrowser.Controller.Providers private void Fetch(Video video, FFProbeResult data) { + if (data == null) + { + Logger.LogInfo("Null FFProbeResult for {0} {1}", video.Id, video.Name); + return; + } + if (!string.IsNullOrEmpty(data.format.duration)) { video.RunTimeTicks = TimeSpan.FromSeconds(double.Parse(data.format.duration)).Ticks;