From 54e0ebd757caf1fb4912a866b5bf61a6a86767e6 Mon Sep 17 00:00:00 2001 From: randomengy Date: Sat, 8 Oct 2011 02:12:46 +0000 Subject: Interop: Updating structs to keep up with libhb. Adding support for x264 profile/preset/tune and updating to use built in auto-passthrough. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4270 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- .../HandBrakeInterop/Converters.cs | 138 +++++++++++---------- .../HandBrakeInterop/HandBrakeInstance.cs | 51 ++++---- .../HandBrakeInterop/HandBrakeUtils.cs | 26 ++-- .../HandBrakeInterop/HbLib/Misc.cs | 21 ---- .../HandBrakeInterop/HbLib/NativeConstants.cs | 2 + .../HandBrakeInterop/HbLib/hb_job_s.cs | 21 +++- .../HandBrakeInterop/HbLib/hb_title_s.cs | 27 +++- .../Model/Encoding/AudioEncoder.cs | 20 +-- .../Model/Encoding/AudioEncoding.cs | 7 +- .../Model/Encoding/EncodingProfile.cs | 13 +- .../HandBrakeInterop/Model/Encoding/Mixdown.cs | 8 +- .../HandBrakeInterop/Properties/AssemblyInfo.cs | 4 +- 12 files changed, 183 insertions(+), 155 deletions(-) (limited to 'win/CS') diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/Converters.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/Converters.cs index b0e81fcd3..aeea2a142 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/Converters.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/Converters.cs @@ -18,10 +18,10 @@ namespace HandBrake.Interop public static class Converters { - /// - /// Video Frame Rates - /// - private static Dictionary vrates = new Dictionary + /// + /// Video Frame Rates + /// + private static Dictionary vrates = new Dictionary { {5, 5400000}, {10, 2700000}, @@ -33,19 +33,19 @@ namespace HandBrake.Interop {29.97, 900900} }; - /// - /// Convert Framerate to Video Rates - /// - /// - /// The framerate. - /// - /// - /// The vrate if a valid framerate is passed in. - /// - /// - /// Thrown when framerate is invalid. - /// - public static int FramerateToVrate(double framerate) + /// + /// Convert Framerate to Video Rates + /// + /// + /// The framerate. + /// + /// + /// The vrate if a valid framerate is passed in. + /// + /// + /// Thrown when framerate is invalid. + /// + public static int FramerateToVrate(double framerate) { if (!vrates.ContainsKey(framerate)) { @@ -55,19 +55,19 @@ namespace HandBrake.Interop return vrates[framerate]; } - /// - /// Convert a Mixdown object to HandBrakes native mixdown constant. - /// - /// - /// The mixdown. - /// - /// - /// NativeContstant that represents the mixdown. - /// - /// - /// Thrown for an invalid mixodown. - /// - public static int MixdownToNative(Mixdown mixdown) + /// + /// Convert a Mixdown object to HandBrakes native mixdown constant. + /// + /// + /// The mixdown. + /// + /// + /// NativeContstant that represents the mixdown. + /// + /// + /// Thrown for an invalid mixodown. + /// + public static int MixdownToNative(Mixdown mixdown) { if (mixdown == Mixdown.Auto) { @@ -76,6 +76,8 @@ namespace HandBrake.Interop switch (mixdown) { + case Mixdown.None: + return NativeConstants.HB_AMIXDOWN_NONE; case Mixdown.DolbyProLogicII: return NativeConstants.HB_AMIXDOWN_DOLBYPLII; case Mixdown.DolbySurround: @@ -91,22 +93,24 @@ namespace HandBrake.Interop return 0; } - /// - /// Convert an native internal handbrake mixdown to a local mixdown enum. - /// - /// - /// The mixdown. - /// - /// - /// A mixdown object. - /// - /// - /// thrown when mixdown is invalid. - /// - public static Mixdown NativeToMixdown(int mixdown) + /// + /// Convert an native internal handbrake mixdown to a local mixdown enum. + /// + /// + /// The mixdown. + /// + /// + /// A mixdown object. + /// + /// + /// thrown when mixdown is invalid. + /// + public static Mixdown NativeToMixdown(int mixdown) { switch (mixdown) { + case NativeConstants.HB_AMIXDOWN_NONE: + return Mixdown.None; case NativeConstants.HB_AMIXDOWN_MONO: return Mixdown.Mono; case NativeConstants.HB_AMIXDOWN_STEREO: @@ -125,30 +129,32 @@ namespace HandBrake.Interop /// /// Gets the native code for the given encoder. /// - /// The audio encoder to convert. Cannot be AudioEncoder.Passthrough. + /// The audio encoder to convert. /// The native code for the encoder. public static uint AudioEncoderToNative(AudioEncoder encoder) { switch (encoder) { + case AudioEncoder.Passthrough: + return NativeConstants.HB_ACODEC_AUTO_PASS; case AudioEncoder.Ac3Passthrough: return NativeConstants.HB_ACODEC_AC3_PASS; - case AudioEncoder.Ac3: - return NativeConstants.HB_ACODEC_AC3; + case AudioEncoder.Ac3: + return NativeConstants.HB_ACODEC_AC3; case AudioEncoder.Faac: return NativeConstants.HB_ACODEC_FAAC; - case AudioEncoder.ffaac: - return NativeConstants.HB_ACODEC_FFAAC; - case AudioEncoder.AacPassthru: - return NativeConstants.HB_ACODEC_AAC_PASS; + case AudioEncoder.ffaac: + return NativeConstants.HB_ACODEC_FFAAC; + case AudioEncoder.AacPassthru: + return NativeConstants.HB_ACODEC_AAC_PASS; case AudioEncoder.Lame: return NativeConstants.HB_ACODEC_LAME; - case AudioEncoder.Mp3Passthru: - return NativeConstants.HB_ACODEC_MP3_PASS; - case AudioEncoder.DtsPassthrough: - return NativeConstants.HB_ACODEC_DCA_PASS; - case AudioEncoder.DtsHDPassthrough: - return NativeConstants.HB_ACODEC_DCA_HD_PASS; + case AudioEncoder.Mp3Passthru: + return NativeConstants.HB_ACODEC_MP3_PASS; + case AudioEncoder.DtsPassthrough: + return NativeConstants.HB_ACODEC_DCA_PASS; + case AudioEncoder.DtsHDPassthrough: + return NativeConstants.HB_ACODEC_DCA_HD_PASS; case AudioEncoder.Vorbis: return NativeConstants.HB_ACODEC_VORBIS; } @@ -156,16 +162,16 @@ namespace HandBrake.Interop return 0; } - /// - /// Convert Native HB Internal Audio int to a AudioCodec model. - /// - /// - /// The codec. - /// - /// - /// An AudioCodec object. - /// - public static AudioCodec NativeToAudioCodec(uint codec) + /// + /// Convert Native HB Internal Audio int to a AudioCodec model. + /// + /// + /// The codec. + /// + /// + /// An AudioCodec object. + /// + public static AudioCodec NativeToAudioCodec(uint codec) { switch (codec) { diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeInstance.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeInstance.cs index c7818cd7e..71d0bf197 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeInstance.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeInstance.cs @@ -21,7 +21,7 @@ namespace HandBrake.Interop using HandBrake.Interop.Model.Encoding; using HandBrake.Interop.SourceData; - /// + /// /// A wrapper for a HandBrake instance. /// public class HandBrakeInstance : IDisposable @@ -432,6 +432,24 @@ namespace HandBrake.Interop IntPtr originalX264Options = Marshal.StringToHGlobalAnsi(x264Options); this.encodeAllocatedMemory.Add(originalX264Options); + if (!string.IsNullOrEmpty(job.EncodingProfile.X264Profile)) + { + nativeJob.x264_profile = Marshal.StringToHGlobalAnsi(job.EncodingProfile.X264Profile); + this.encodeAllocatedMemory.Add(nativeJob.x264_profile); + } + + if (!string.IsNullOrEmpty(job.EncodingProfile.X264Preset)) + { + nativeJob.x264_preset = Marshal.StringToHGlobalAnsi(job.EncodingProfile.X264Preset); + this.encodeAllocatedMemory.Add(nativeJob.x264_preset); + } + + if (!string.IsNullOrEmpty(job.EncodingProfile.X264Tune)) + { + nativeJob.x264_tune = Marshal.StringToHGlobalAnsi(job.EncodingProfile.X264Tune); + this.encodeAllocatedMemory.Add(nativeJob.x264_tune); + } + if (this.subtitleScan) { // If we need to scan subtitles, enqueue a pre-processing job to do that. @@ -1079,6 +1097,8 @@ namespace HandBrake.Interop int numTracks = 0; List> outputTrackList = this.GetOutputTracks(job, title); + nativeJob.acodec_fallback = (int)Converters.AudioEncoderToNative(profile.AudioEncoderFallback); + nativeJob.acodec_copy_mask = (int)NativeConstants.HB_ACODEC_ANY; foreach (Tuple outputTrack in outputTrackList) { @@ -1237,7 +1257,12 @@ namespace HandBrake.Interop // Add this encoding for all chosen tracks foreach (int chosenTrack in job.ChosenAudioTracks) { - list.Add(new Tuple(encoding, chosenTrack)); + // In normal cases we'll never have a chosen audio track that doesn't exist but when batch encoding + // we just choose the first audio track without checking if it exists. + if (chosenTrack <= title.AudioTracks.Count) + { + list.Add(new Tuple(encoding, chosenTrack)); + } } } else if (encoding.InputNumber <= job.ChosenAudioTracks.Count) @@ -1316,27 +1341,7 @@ namespace HandBrake.Interop hb_audio_s nativeAudio = baseStruct; nativeAudio.config.output.track = outputTrack; - - if (encoding.Encoder == AudioEncoder.Passthrough) - { - // If we've been given a general "Passthrough" codec, see if it's valid for this input track. - uint audioCodec = baseStruct.config.input.codec & NativeConstants.HB_ACODEC_PASS_MASK; - if (audioCodec > 0) - { - // We can do passthrough for this input. - //nativeAudio.config.output.codec = NativeConstants.HB_ACODEC_PASS_MASK | NativeConstants.HB_ACODEC_PASS_FLAG; - nativeAudio.config.output.codec = audioCodec | NativeConstants.HB_ACODEC_PASS_FLAG; - } - else - { - // We can't do passthrough for this input. Set it to a DTS passthrough, which will cause the track to be dropped. - nativeAudio.config.output.codec = NativeConstants.HB_ACODEC_DCA_PASS; - } - } - else - { - nativeAudio.config.output.codec = Converters.AudioEncoderToNative(encoding.Encoder); - } + nativeAudio.config.output.codec = Converters.AudioEncoderToNative(encoding.Encoder); if (!Utilities.IsPassthrough(encoding.Encoder)) { diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeUtils.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeUtils.cs index b90387703..4c358da69 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeUtils.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeUtils.cs @@ -17,10 +17,10 @@ namespace HandBrake.Interop using HandBrake.Interop.Model.Encoding; using HandBrake.Interop.SourceData; - /// - /// HandBrake Interop Utilities - /// - public static class HandBrakeUtils + /// + /// HandBrake Interop Utilities + /// + public static class HandBrakeUtils { /// /// Estimated overhead in bytes for each frame in output container. @@ -47,10 +47,10 @@ namespace HandBrake.Interop /// public static event EventHandler ErrorLogged; - /// - /// Register the logger. - /// - public static void RegisterLogger() + /// + /// Register the logger. + /// + public static void RegisterLogger() { // Register the logger if we have not already if (loggingCallback == null) @@ -211,18 +211,18 @@ namespace HandBrake.Interop switch (encoder) { case AudioEncoder.Faac: - case AudioEncoder.ffaac: - case AudioEncoder.AacPassthru: + case AudioEncoder.ffaac: + case AudioEncoder.AacPassthru: case AudioEncoder.Vorbis: return 1024; case AudioEncoder.Lame: - case AudioEncoder.Mp3Passthru: + case AudioEncoder.Mp3Passthru: return 1152; case AudioEncoder.Ac3: case AudioEncoder.Passthrough: case AudioEncoder.Ac3Passthrough: - case AudioEncoder.DtsPassthrough: - case AudioEncoder.DtsHDPassthrough: + case AudioEncoder.DtsPassthrough: + case AudioEncoder.DtsHDPassthrough: return 1536; } diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/Misc.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/Misc.cs index 4b2b7b123..cc007596a 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/Misc.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/Misc.cs @@ -100,27 +100,6 @@ namespace HandBrake.Interop.HbLib public IntPtr coverart; } - public enum hb_title_type_anon - { - HB_DVD_TYPE, - - HB_BD_TYPE, - - HB_STREAM_TYPE, - - HB_FF_STREAM_TYPE, - } - - public enum Anonymous_618ebeca_0ad9_4a71_9a49_18e50ac2e9db - { - /// HB_MPEG2_PS_DEMUXER -> 0 - HB_MPEG2_PS_DEMUXER = 0, - - HB_MPEG2_TS_DEMUXER, - - HB_NULL_DEMUXER, - } - [StructLayout(LayoutKind.Sequential)] public struct hb_state_scanning_anon { diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/NativeConstants.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/NativeConstants.cs index 8698c6574..ebbe0766a 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/NativeConstants.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/NativeConstants.cs @@ -28,6 +28,7 @@ namespace HandBrake.Interop.HbLib public const uint HB_ACODEC_FF_MASK = 0x000f0000; public const uint HB_ACODEC_PASS_FLAG = 0x40000000; public const uint HB_ACODEC_PASS_MASK = (HB_ACODEC_MP3 | HB_ACODEC_FFAAC | HB_ACODEC_DCA_HD | HB_ACODEC_AC3 | HB_ACODEC_DCA); + public const uint HB_ACODEC_AUTO_PASS = (HB_ACODEC_PASS_MASK | HB_ACODEC_PASS_FLAG); public const uint HB_ACODEC_MP3_PASS = (HB_ACODEC_MP3 | HB_ACODEC_PASS_FLAG); public const uint HB_ACODEC_AAC_PASS = (HB_ACODEC_FFAAC | HB_ACODEC_PASS_FLAG); public const uint HB_ACODEC_AC3_PASS = (HB_ACODEC_AC3 | HB_ACODEC_PASS_FLAG); @@ -43,6 +44,7 @@ namespace HandBrake.Interop.HbLib public const int HB_AMIXDOWN_DCA_FORMAT_MASK = 0x00FFF000; public const int HB_AMIXDOWN_A52_FORMAT_MASK = 0x00000FF0; public const int HB_AMIXDOWN_DISCRETE_CHANNEL_COUNT_MASK = 0x0000000F; + public const int HB_AMIXDOWN_NONE = 0x00000000; public const int HB_AMIXDOWN_MONO = 0x01000001; public const int HB_AMIXDOWN_STEREO = 0x02002022; public const int HB_AMIXDOWN_DOLBY = 0x042070A2; diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_job_s.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_job_s.cs index ca2e2fe98..aa3535a1f 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_job_s.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_job_s.cs @@ -10,10 +10,10 @@ namespace HandBrake.Interop.HbLib { - using System; - using System.Runtime.InteropServices; + using System; + using System.Runtime.InteropServices; - [StructLayout(LayoutKind.Sequential)] + [StructLayout(LayoutKind.Sequential)] public struct hb_job_s { /// int @@ -92,14 +92,20 @@ namespace HandBrake.Interop.HbLib public IntPtr advanced_opts; + public IntPtr x264_profile; + + public IntPtr x264_preset; + + public IntPtr x264_tune; + /// int public int areBframes; - public int color_matrix_code; + public int color_matrix_code; - public int color_prim; + public int color_prim; - public int color_transfer; + public int color_transfer; /// int public int color_matrix; @@ -107,6 +113,9 @@ namespace HandBrake.Interop.HbLib /// hb_list_t* public IntPtr list_audio; + public int acodec_copy_mask; + public int acodec_fallback; + /// hb_list_t* public IntPtr list_subtitle; diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_title_s.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_title_s.cs index 756d40ad9..117787c1b 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_title_s.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_title_s.cs @@ -32,6 +32,8 @@ namespace HandBrake.Interop.HbLib /// int public int index; + public int playlist; + /// int public int vts; @@ -98,10 +100,7 @@ namespace HandBrake.Interop.HbLib [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4, ArraySubType = UnmanagedType.I4)] public int[] crop; - //public fixed int crop[4]; - - /// Anonymous_618ebeca_0ad9_4a71_9a49_18e50ac2e9db - public Anonymous_618ebeca_0ad9_4a71_9a49_18e50ac2e9db demuxer; + public hb_title_demuxer_anon demuxer; /// int public int detected_interlacing; @@ -154,4 +153,24 @@ namespace HandBrake.Interop.HbLib /// uint32_t->unsigned int public uint flags; } + + public enum hb_title_type_anon + { + HB_DVD_TYPE, + + HB_BD_TYPE, + + HB_STREAM_TYPE, + + HB_FF_STREAM_TYPE, + } + + public enum hb_title_demuxer_anon + { + HB_DVD_DEMUXER = 0, + + HB_MPEG_DEMUXER, + + HB_NULL_DEMUXER, + } } diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/AudioEncoder.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/AudioEncoder.cs index f69833e43..feddb1207 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/AudioEncoder.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/AudioEncoder.cs @@ -16,8 +16,8 @@ namespace HandBrake.Interop.Model.Encoding [Display(Name = "AAC (faac)")] Faac = 0, - [Display(Name = "AAC (ffmpeg)")] - ffaac, + [Display(Name = "AAC (ffmpeg)")] + ffaac, [Display(Name = "MP3 (lame)")] Lame, @@ -31,17 +31,17 @@ namespace HandBrake.Interop.Model.Encoding [Display(Name = "AC3 Passthru")] Ac3Passthrough, - [Display(Name = "DTS Passthru")] - DtsPassthrough, + [Display(Name = "DTS Passthru")] + DtsPassthrough, - [Display(Name = "DTS-HD Passthru")] - DtsHDPassthrough, + [Display(Name = "DTS-HD Passthru")] + DtsHDPassthrough, - [Display(Name = "AAC Passthru")] - AacPassthru, + [Display(Name = "AAC Passthru")] + AacPassthru, - [Display(Name = "MP3 Passthru")] - Mp3Passthru, + [Display(Name = "MP3 Passthru")] + Mp3Passthru, [Display(Name = "Vorbis (vorbis)")] Vorbis diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/AudioEncoding.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/AudioEncoding.cs index a4c7637b5..ea11d182e 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/AudioEncoding.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/AudioEncoding.cs @@ -17,12 +17,13 @@ namespace HandBrake.Interop.Model.Encoding public class AudioEncoding { /// - /// Gets or sets InputNumber. + /// Gets or sets the chosen track to apply the encoding to. /// + /// 1-based index. 0 means apply to all tracks. public int InputNumber { get; set; } /// - /// Gets or sets Encoder. + /// Gets or sets the encoder to use. /// public AudioEncoder Encoder { get; set; } @@ -32,7 +33,7 @@ namespace HandBrake.Interop.Model.Encoding public int Bitrate { get; set; } /// - /// Gets or sets Mixdown. + /// Gets or sets the mixdown. /// public Mixdown Mixdown { get; set; } diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/EncodingProfile.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/EncodingProfile.cs index d0e930786..d4f85ca81 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/EncodingProfile.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/EncodingProfile.cs @@ -9,11 +9,11 @@ namespace HandBrake.Interop.Model.Encoding { - using System.Collections.Generic; + using System.Collections.Generic; - using HandBrake.Interop.Model; + using HandBrake.Interop.Model; - public class EncodingProfile + public class EncodingProfile { public EncodingProfile() { @@ -54,6 +54,9 @@ namespace HandBrake.Interop.Model.Encoding public VideoEncoder VideoEncoder { get; set; } public string X264Options { get; set; } + public string X264Profile { get; set; } + public string X264Preset { get; set; } + public string X264Tune { get; set; } public VideoEncodeRateType VideoEncodeRateType { get; set; } public double Quality { get; set; } public int TargetSize { get; set; } @@ -64,6 +67,7 @@ namespace HandBrake.Interop.Model.Encoding public bool PeakFramerate { get; set; } public List AudioEncodings { get; set; } + public AudioEncoder AudioEncoderFallback { get; set; } public EncodingProfile Clone() { @@ -103,6 +107,9 @@ namespace HandBrake.Interop.Model.Encoding VideoEncoder = this.VideoEncoder, X264Options = this.X264Options, + X264Profile = this.X264Profile, + X264Preset = this.X264Preset, + X264Tune = this.X264Tune, VideoEncodeRateType = this.VideoEncodeRateType, Quality = this.Quality, TargetSize = this.TargetSize, diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/Mixdown.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/Mixdown.cs index f804c4ea2..3fc6b78e4 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/Mixdown.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/Mixdown.cs @@ -11,10 +11,10 @@ namespace HandBrake.Interop.Model.Encoding { using System.ComponentModel.DataAnnotations; - /// - /// The Audio Mixdown Enumeration - /// - public enum Mixdown + /// + /// The Audio Mixdown Enumeration + /// + public enum Mixdown { [Display(Name = "Dolby Pro Logic II")] DolbyProLogicII = 0, diff --git a/win/CS/HandBrake.Interop/HandBrakeInterop/Properties/AssemblyInfo.cs b/win/CS/HandBrake.Interop/HandBrakeInterop/Properties/AssemblyInfo.cs index b2bbcd55c..8e87db998 100644 --- a/win/CS/HandBrake.Interop/HandBrakeInterop/Properties/AssemblyInfo.cs +++ b/win/CS/HandBrake.Interop/HandBrakeInterop/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.20.0.0")] -[assembly: AssemblyFileVersion("1.20.0.0")] +[assembly: AssemblyVersion("1.22.0.0")] +[assembly: AssemblyFileVersion("1.22.0.0")] -- cgit v1.2.3