diff --git a/FFMpegCore/FFProbe/FFProbe.cs b/FFMpegCore/FFProbe/FFProbe.cs index 15ad171..21cf3af 100644 --- a/FFMpegCore/FFProbe/FFProbe.cs +++ b/FFMpegCore/FFProbe/FFProbe.cs @@ -152,6 +152,7 @@ private static IMediaAnalysis ParseOutput(IProcessResult instance) if (ffprobeAnalysis?.Format == null) throw new FormatNullException(); + ffprobeAnalysis.ErrorData = instance.ErrorData; return new MediaAnalysis(ffprobeAnalysis); } private static FFProbeFrames ParseFramesOutput(IProcessResult instance) diff --git a/FFMpegCore/FFProbe/FFProbeAnalysis.cs b/FFMpegCore/FFProbe/FFProbeAnalysis.cs index 2177307..cbbb9fd 100644 --- a/FFMpegCore/FFProbe/FFProbeAnalysis.cs +++ b/FFMpegCore/FFProbe/FFProbeAnalysis.cs @@ -10,6 +10,9 @@ public class FFProbeAnalysis [JsonPropertyName("format")] public Format Format { get; set; } = null!; + + [JsonIgnore] + public IReadOnlyList ErrorData { get; set; } } public class FFProbeStream : ITagsContainer, IDispositionContainer diff --git a/FFMpegCore/FFProbe/IMediaAnalysis.cs b/FFMpegCore/FFProbe/IMediaAnalysis.cs index 7be3b20..5884f74 100644 --- a/FFMpegCore/FFProbe/IMediaAnalysis.cs +++ b/FFMpegCore/FFProbe/IMediaAnalysis.cs @@ -13,5 +13,6 @@ public interface IMediaAnalysis List VideoStreams { get; } List AudioStreams { get; } List SubtitleStreams { get; } + IReadOnlyList ErrorData { get; } } } diff --git a/FFMpegCore/FFProbe/MediaAnalysis.cs b/FFMpegCore/FFProbe/MediaAnalysis.cs index b5f9c34..e1fbd1d 100644 --- a/FFMpegCore/FFProbe/MediaAnalysis.cs +++ b/FFMpegCore/FFProbe/MediaAnalysis.cs @@ -13,6 +13,7 @@ internal MediaAnalysis(FFProbeAnalysis analysis) VideoStreams = analysis.Streams.Where(stream => stream.CodecType == "video").Select(ParseVideoStream).ToList(); AudioStreams = analysis.Streams.Where(stream => stream.CodecType == "audio").Select(ParseAudioStream).ToList(); SubtitleStreams = analysis.Streams.Where(stream => stream.CodecType == "subtitle").Select(ParseSubtitleStream).ToList(); + ErrorData = analysis.ErrorData ?? new List().AsReadOnly(); } private MediaFormat ParseFormat(Format analysisFormat) @@ -45,7 +46,8 @@ private MediaFormat ParseFormat(Format analysisFormat) public List VideoStreams { get; } public List AudioStreams { get; } public List SubtitleStreams { get; } - + public IReadOnlyList ErrorData { get; } + private VideoStream ParseVideoStream(FFProbeStream stream) { return new VideoStream