summaryrefslogtreecommitdiffstats
path: root/win/CS
diff options
context:
space:
mode:
Diffstat (limited to 'win/CS')
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/Converters.cs138
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeInstance.cs51
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/HandBrakeUtils.cs26
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/Misc.cs21
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/NativeConstants.cs2
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_job_s.cs21
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/HbLib/hb_title_s.cs27
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/AudioEncoder.cs20
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/AudioEncoding.cs7
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/EncodingProfile.cs13
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/Model/Encoding/Mixdown.cs8
-rw-r--r--win/CS/HandBrake.Interop/HandBrakeInterop/Properties/AssemblyInfo.cs4
12 files changed, 183 insertions, 155 deletions
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
{
- /// <summary>
- /// Video Frame Rates
- /// </summary>
- private static Dictionary<double, int> vrates = new Dictionary<double, int>
+ /// <summary>
+ /// Video Frame Rates
+ /// </summary>
+ private static Dictionary<double, int> vrates = new Dictionary<double, int>
{
{5, 5400000},
{10, 2700000},
@@ -33,19 +33,19 @@ namespace HandBrake.Interop
{29.97, 900900}
};
- /// <summary>
- /// Convert Framerate to Video Rates
- /// </summary>
- /// <param name="framerate">
- /// The framerate.
- /// </param>
- /// <returns>
- /// The vrate if a valid framerate is passed in.
- /// </returns>
- /// <exception cref="ArgumentException">
- /// Thrown when framerate is invalid.
- /// </exception>
- public static int FramerateToVrate(double framerate)
+ /// <summary>
+ /// Convert Framerate to Video Rates
+ /// </summary>
+ /// <param name="framerate">
+ /// The framerate.
+ /// </param>
+ /// <returns>
+ /// The vrate if a valid framerate is passed in.
+ /// </returns>
+ /// <exception cref="ArgumentException">
+ /// Thrown when framerate is invalid.
+ /// </exception>
+ public static int FramerateToVrate(double framerate)
{
if (!vrates.ContainsKey(framerate))
{
@@ -55,19 +55,19 @@ namespace HandBrake.Interop
return vrates[framerate];
}
- /// <summary>
- /// Convert a Mixdown object to HandBrakes native mixdown constant.
- /// </summary>
- /// <param name="mixdown">
- /// The mixdown.
- /// </param>
- /// <returns>
- /// NativeContstant that represents the mixdown.
- /// </returns>
- /// <exception cref="ArgumentException">
- /// Thrown for an invalid mixodown.
- /// </exception>
- public static int MixdownToNative(Mixdown mixdown)
+ /// <summary>
+ /// Convert a Mixdown object to HandBrakes native mixdown constant.
+ /// </summary>
+ /// <param name="mixdown">
+ /// The mixdown.
+ /// </param>
+ /// <returns>
+ /// NativeContstant that represents the mixdown.
+ /// </returns>
+ /// <exception cref="ArgumentException">
+ /// Thrown for an invalid mixodown.
+ /// </exception>
+ 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;
}
- /// <summary>
- /// Convert an native internal handbrake mixdown to a local mixdown enum.
- /// </summary>
- /// <param name="mixdown">
- /// The mixdown.
- /// </param>
- /// <returns>
- /// A mixdown object.
- /// </returns>
- /// <exception cref="ArgumentException">
- /// thrown when mixdown is invalid.
- /// </exception>
- public static Mixdown NativeToMixdown(int mixdown)
+ /// <summary>
+ /// Convert an native internal handbrake mixdown to a local mixdown enum.
+ /// </summary>
+ /// <param name="mixdown">
+ /// The mixdown.
+ /// </param>
+ /// <returns>
+ /// A mixdown object.
+ /// </returns>
+ /// <exception cref="ArgumentException">
+ /// thrown when mixdown is invalid.
+ /// </exception>
+ 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
/// <summary>
/// Gets the native code for the given encoder.
/// </summary>
- /// <param name="encoder">The audio encoder to convert. Cannot be AudioEncoder.Passthrough.</param>
+ /// <param name="encoder">The audio encoder to convert.</param>
/// <returns>The native code for the encoder.</returns>
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;
}
- /// <summary>
- /// Convert Native HB Internal Audio int to a AudioCodec model.
- /// </summary>
- /// <param name="codec">
- /// The codec.
- /// </param>
- /// <returns>
- /// An AudioCodec object.
- /// </returns>
- public static AudioCodec NativeToAudioCodec(uint codec)
+ /// <summary>
+ /// Convert Native HB Internal Audio int to a AudioCodec model.
+ /// </summary>
+ /// <param name="codec">
+ /// The codec.
+ /// </param>
+ /// <returns>
+ /// An AudioCodec object.
+ /// </returns>
+ 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;
- /// <summary>
+ /// <summary>
/// A wrapper for a HandBrake instance.
/// </summary>
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<Tuple<AudioEncoding, int>> outputTrackList = this.GetOutputTracks(job, title);
+ nativeJob.acodec_fallback = (int)Converters.AudioEncoderToNative(profile.AudioEncoderFallback);
+ nativeJob.acodec_copy_mask = (int)NativeConstants.HB_ACODEC_ANY;
foreach (Tuple<AudioEncoding, int> 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<AudioEncoding, int>(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<AudioEncoding, int>(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;
- /// <summary>
- /// HandBrake Interop Utilities
- /// </summary>
- public static class HandBrakeUtils
+ /// <summary>
+ /// HandBrake Interop Utilities
+ /// </summary>
+ public static class HandBrakeUtils
{
/// <summary>
/// Estimated overhead in bytes for each frame in output container.
@@ -47,10 +47,10 @@ namespace HandBrake.Interop
/// </summary>
public static event EventHandler<MessageLoggedEventArgs> ErrorLogged;
- /// <summary>
- /// Register the logger.
- /// </summary>
- public static void RegisterLogger()
+ /// <summary>
+ /// Register the logger.
+ /// </summary>
+ 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
{
/// <summary>
- /// Gets or sets InputNumber.
+ /// Gets or sets the chosen track to apply the encoding to.
/// </summary>
+ /// <remarks>1-based index. 0 means apply to all tracks.</remarks>
public int InputNumber { get; set; }
/// <summary>
- /// Gets or sets Encoder.
+ /// Gets or sets the encoder to use.
/// </summary>
public AudioEncoder Encoder { get; set; }
@@ -32,7 +33,7 @@ namespace HandBrake.Interop.Model.Encoding
public int Bitrate { get; set; }
/// <summary>
- /// Gets or sets Mixdown.
+ /// Gets or sets the mixdown.
/// </summary>
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<AudioEncoding> 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;
- /// <summary>
- /// The Audio Mixdown Enumeration
- /// </summary>
- public enum Mixdown
+ /// <summary>
+ /// The Audio Mixdown Enumeration
+ /// </summary>
+ 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")]