]> granicus.if.org Git - handbrake/commitdiff
WinGui: Add support for setting mixdown, bitrate, sample rate, gain and DRC for the...
authorsr55 <sr55.hb@outlook.com>
Mon, 23 Apr 2018 20:52:42 +0000 (21:52 +0100)
committersr55 <sr55.hb@outlook.com>
Mon, 23 Apr 2018 20:52:52 +0000 (21:52 +0100)
win/CS/HandBrakeWPF/Model/Audio/AudioBehaviourTrack.cs
win/CS/HandBrakeWPF/Services/Encode/Model/Models/AudioTrack.cs
win/CS/HandBrakeWPF/Views/AudioDefaultsView.xaml

index 1297ecb716b6d3d6584a52f628951257e9acf4ad..0e16f83f131d2da91e5b010d40284b813dd608cd 100644 (file)
@@ -127,7 +127,7 @@ namespace HandBrakeWPF.Model.Audio
         {
             get
             {
-                return this.IsPassthru ? null : this.mixDown;
+                return this.mixDown;
             }
 
             set
@@ -409,7 +409,7 @@ namespace HandBrakeWPF.Model.Audio
         {
             get
             {
-                if (this.IsPassthru || this.Encoder == AudioEncoder.ffflac || this.Encoder == AudioEncoder.ffflac24)
+                if (this.Encoder == AudioEncoder.ffflac || this.Encoder == AudioEncoder.ffflac24)
                 {
                     return false;
                 }
@@ -426,7 +426,7 @@ namespace HandBrakeWPF.Model.Audio
         {
             get
             {
-                if (this.IsPassthru || this.Encoder == AudioEncoder.ffflac || this.Encoder == AudioEncoder.ffflac24)
+                if (this.Encoder == AudioEncoder.ffflac || this.Encoder == AudioEncoder.ffflac24)
                 {
                     return false;
                 }
@@ -443,7 +443,7 @@ namespace HandBrakeWPF.Model.Audio
         {
             get
             {
-                if (this.IsPassthru || this.Encoder == AudioEncoder.ffflac || this.Encoder == AudioEncoder.ffflac24)
+                if (this.Encoder == AudioEncoder.ffflac || this.Encoder == AudioEncoder.ffflac24)
                 {
                     return false;
                 }
@@ -588,13 +588,13 @@ namespace HandBrakeWPF.Model.Audio
         private void SetupMixdowns()
         {
             this.mixdowns = new BindingList<HBMixdown>(HandBrakeEncoderHelpers.Mixdowns.ToList());
-
+  
             HBAudioEncoder audioEncoder = HandBrakeEncoderHelpers.GetAudioEncoder(EnumHelper<AudioEncoder>.GetShortName(this.Encoder));
 
             BindingList<HBMixdown> mixdownList = new BindingList<HBMixdown>();
             foreach (HBMixdown mixdown in HandBrakeEncoderHelpers.Mixdowns)
             {
-                if (HandBrakeEncoderHelpers.MixdownHasCodecSupport(mixdown, audioEncoder))
+                if (HandBrakeEncoderHelpers.MixdownHasCodecSupport(mixdown, audioEncoder) || this.IsPassthru) // Show only supported, or all for passthru.
                 {
                     mixdownList.Add(mixdown);
                 }
@@ -606,7 +606,8 @@ namespace HandBrakeWPF.Model.Audio
             // If the mixdown isn't supported, downgrade it to the best available. 
             if (!this.Mixdowns.Contains(this.MixDown))
             {
-                this.MixDown = this.Mixdowns.LastOrDefault();
+                this.mixDown = this.Mixdowns.LastOrDefault();
+                this.NotifyOfPropertyChange(() => this.MixDown);
             }
         }
 
index 7cc0731257f2ae40b47e7a9bdb15ded913d833c7..24a56a8b275abb409ea026502e2c4f71552f17c2 100644 (file)
@@ -113,9 +113,11 @@ namespace HandBrakeWPF.Services.Encode.Model.Models
         {
             AudioEncoder chosenEncoder = track.Encoder;
             HBAudioEncoder encoderInfo = HandBrakeEncoderHelpers.GetAudioEncoder(EnumHelper<AudioEncoder>.GetShortName(track.Encoder));
+            HBAudioEncoder fallbackEncoderInfo;
             if (track.IsPassthru && (sourceTrack.Codec & encoderInfo.Id) == 0)
             {
                 chosenEncoder = fallback;
+                encoderInfo = HandBrakeEncoderHelpers.GetAudioEncoder(EnumHelper<AudioEncoder>.GetShortName(track.Encoder));
             }
 
             this.scannedTrack = sourceTrack;
@@ -125,7 +127,9 @@ namespace HandBrakeWPF.Services.Encode.Model.Models
             this.mixDown = track.MixDown != null ? track.MixDown.ShortName : "dpl2";
 
             // If the mixdown isn't supported, downgrade it.
-            if (track.MixDown != null && encoderInfo != null && !HandBrakeEncoderHelpers.MixdownIsSupported(track.MixDown, encoderInfo, sourceTrack.ChannelLayout))
+
+
+            if (track.IsPassthru &&  track.MixDown != null && encoderInfo != null && !HandBrakeEncoderHelpers.MixdownIsSupported(track.MixDown, encoderInfo, sourceTrack.ChannelLayout))
             {
                 HBMixdown changedMixdown = HandBrakeEncoderHelpers.GetDefaultMixdown(encoderInfo, (ulong)sourceTrack.ChannelLayout);
                 if (changedMixdown != null)
index 83214b6bc6fceee66633b004954f0f1981796133..bf6ee04aee4aa935abe50d7ff8023404ccfeaedb 100644 (file)
                                       SelectedItem="{Binding Bitrate}"
                                       Visibility="{Binding IsBitrateVisible, Converter={StaticResource boolToVisConverter}, ConverterParameter=false}" />
 
-                            <TextBlock Grid.Row="0" Grid.Column="6" VerticalAlignment="Center" FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.AudioView_Mixdown}"
-                                       Visibility="{Binding IsPassthru, Converter={StaticResource boolToVisConverter}, ConverterParameter=true}" />
+                            <TextBlock Grid.Row="0" Grid.Column="6" VerticalAlignment="Center" FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.AudioView_Mixdown}" />
                             <ComboBox Grid.Row="0" Grid.Column="7" Height="22" Width="120" Margin="5,0,5,0" HorizontalAlignment="Stretch"
-                                      ItemsSource="{Binding Mixdowns}"
-                                      SelectedItem="{Binding MixDown}"
-                                      DisplayMemberPath="DisplayName"
-                                      Visibility="{Binding IsPassthru, Converter={StaticResource boolToVisConverter}, ConverterParameter=true}" />
+                                      ItemsSource="{Binding Mixdowns}" SelectedItem="{Binding MixDown}"
+                                      DisplayMemberPath="DisplayName" />
 
 
-                            <TextBlock VerticalAlignment="Center" Grid.Column="8" FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.AudioView_Samplerate}"
-                                       Visibility="{Binding IsPassthru, Converter={StaticResource boolToVisConverter}, ConverterParameter=true}" />
+                            <TextBlock VerticalAlignment="Center" Grid.Column="8" FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.AudioView_Samplerate}" />
                             <ComboBox Width="70" Height="22" Margin="5,0,5,0" Grid.Column="9" 
                                       ItemsSource="{Binding DataContext.SampleRates, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"
-                                      SelectedItem="{Binding SampleRateDisplayValue}"
-                                      Visibility="{Binding IsPassthru, Converter={StaticResource boolToVisConverter}, ConverterParameter=true}" />
+                                      SelectedItem="{Binding SampleRateDisplayValue}" />
 
-                            <TextBlock VerticalAlignment="Center" FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.AudioView_DRC}" Grid.Column="10" 
-                                       Visibility="{Binding IsPassthru, Converter={StaticResource boolToVisConverter}, ConverterParameter=true}" />
+                            <TextBlock VerticalAlignment="Center" FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.AudioView_DRC}" Grid.Column="10" />
                             <controls:NumberBox Name="drcNumericCtl" Width="45" Margin="5,0,5,0" HorizontalAlignment="Left" Grid.Column="11" 
-                                                    Minimum="0" Modulus="0.1" Maximum="4" Number="{Binding DRC, Mode=TwoWay}" UpdateBindingOnTextChange="True" ShowIncrementButtons="True" AllowEmpty="False"
-                                                    Visibility="{Binding IsPassthru, Converter={StaticResource boolToHiddenVisConverter}, ConverterParameter=true}"/>
+                                                Minimum="0" Modulus="0.1" Maximum="4" Number="{Binding DRC, Mode=TwoWay}" UpdateBindingOnTextChange="True" 
+                                                ShowIncrementButtons="True" AllowEmpty="False" />
 
-                            <TextBlock  VerticalAlignment="Center" FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.AudioView_Gain}" Grid.Column="12" 
-                                       Visibility="{Binding IsPassthru, Converter={StaticResource boolToVisConverter}, ConverterParameter=true}" />
+                            <TextBlock  VerticalAlignment="Center" FontWeight="Bold" Text="{x:Static Properties:ResourcesUI.AudioView_Gain}" Grid.Column="12"  />
                             <controls:NumberBox Name="gainNumericCtl" Width="45" Margin="5,0,5,0" HorizontalAlignment="Left" Grid.Column="13" 
-                                                    Minimum="-20" Modulus="1" Maximum="20" Number="{Binding Gain, Mode=TwoWay}" UpdateBindingOnTextChange="True" ShowIncrementButtons="True" AllowEmpty="False"
-                                                    Visibility="{Binding IsPassthru, Converter={StaticResource boolToHiddenVisConverter}, ConverterParameter=true}"/>
+                                                Minimum="-20" Modulus="1" Maximum="20" Number="{Binding Gain, Mode=TwoWay}" UpdateBindingOnTextChange="True" 
+                                                ShowIncrementButtons="True" AllowEmpty="False" />
 
                         </Grid>