aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/FFMpeg/FFProbeResult.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/FFMpeg/FFProbeResult.cs')
-rw-r--r--MediaBrowser.Controller/FFMpeg/FFProbeResult.cs59
1 files changed, 57 insertions, 2 deletions
diff --git a/MediaBrowser.Controller/FFMpeg/FFProbeResult.cs b/MediaBrowser.Controller/FFMpeg/FFProbeResult.cs
index 8b2a8687e..db7c9dd3c 100644
--- a/MediaBrowser.Controller/FFMpeg/FFProbeResult.cs
+++ b/MediaBrowser.Controller/FFMpeg/FFProbeResult.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using ProtoBuf;
namespace MediaBrowser.Controller.FFMpeg
{
@@ -7,9 +8,13 @@ namespace MediaBrowser.Controller.FFMpeg
/// Sample output:
/// http://stackoverflow.com/questions/7708373/get-ffmpeg-information-in-friendly-way
/// </summary>
+ [ProtoContract]
public class FFProbeResult
{
- public IEnumerable<MediaStream> streams { get; set; }
+ [ProtoMember(1)]
+ public MediaStream[] streams { get; set; }
+
+ [ProtoMember(2)]
public MediaFormat format { get; set; }
}
@@ -18,47 +23,97 @@ namespace MediaBrowser.Controller.FFMpeg
/// A number of properties are commented out to improve deserialization performance
/// Enable them as needed.
/// </summary>
+ [ProtoContract]
public class MediaStream
{
+ [ProtoMember(1)]
public int index { get; set; }
+
+ [ProtoMember(2)]
public string profile { get; set; }
+
+ [ProtoMember(3)]
public string codec_name { get; set; }
+
+ [ProtoMember(4)]
public string codec_long_name { get; set; }
+
+ [ProtoMember(5)]
public string codec_type { get; set; }
+
//public string codec_time_base { get; set; }
//public string codec_tag { get; set; }
//public string codec_tag_string { get; set; }
//public string sample_fmt { get; set; }
+
+ [ProtoMember(6)]
public string sample_rate { get; set; }
+
+ [ProtoMember(7)]
public int channels { get; set; }
+
//public int bits_per_sample { get; set; }
//public string r_frame_rate { get; set; }
+
+ [ProtoMember(8)]
public string avg_frame_rate { get; set; }
+
//public string time_base { get; set; }
//public string start_time { get; set; }
+
+ [ProtoMember(9)]
public string duration { get; set; }
+
+ [ProtoMember(10)]
public string bit_rate { get; set; }
+ [ProtoMember(11)]
public int width { get; set; }
+
+ [ProtoMember(12)]
public int height { get; set; }
+
//public int has_b_frames { get; set; }
//public string sample_aspect_ratio { get; set; }
+
+ [ProtoMember(13)]
public string display_aspect_ratio { get; set; }
+
//public string pix_fmt { get; set; }
//public int level { get; set; }
- public Dictionary<string,string> tags { get; set; }
+
+ [ProtoMember(14)]
+ public Dictionary<string, string> tags { get; set; }
}
+ [ProtoContract]
public class MediaFormat
{
+ [ProtoMember(1)]
public string filename { get; set; }
+
+ [ProtoMember(2)]
public int nb_streams { get; set; }
+
+ [ProtoMember(3)]
public string format_name { get; set; }
+
+ [ProtoMember(4)]
public string format_long_name { get; set; }
+
+ [ProtoMember(5)]
public string start_time { get; set; }
+
+ [ProtoMember(6)]
public string duration { get; set; }
+
+ [ProtoMember(7)]
public string size { get; set; }
+
+ [ProtoMember(8)]
public string bit_rate { get; set; }
+
+ [ProtoMember(9)]
public Dictionary<string, string> tags { get; set; }
}
}