Skip to content

Commit 27f8687

Browse files
committed
Fixed crash when the fallback audio encoder is None.
1 parent d32a66e commit 27f8687

2 files changed

Lines changed: 79 additions & 79 deletions

File tree

VidCoder/ViewModel/Panels/AudioPanelViewModel.cs

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -428,101 +428,101 @@ public AudioOutputPreview GetAudioPreview(SourceAudioTrack inputTrack, AudioTrac
428428
encoder = HandBrakeEncoderHelpers.GetAudioEncoder(this.Profile.AudioEncoderFallback);
429429
}
430430

431-
// Get the default output values for the input track and encoder
432-
var defaultSettings = AudioUtilities.GetDefaultSettings(inputTrack, encoder);
431+
// Get the default output values for the input track and encoder
432+
var defaultSettings = AudioUtilities.GetDefaultSettings(inputTrack, encoder);
433433

434-
// Apply the output values to the preview object
435-
UpdateAudioPreviewTrack(outputPreviewTrack, defaultSettings);
434+
// Apply the output values to the preview object
435+
UpdateAudioPreviewTrack(outputPreviewTrack, defaultSettings);
436436
}
437437
else
438438
{
439-
HBMixdown previewMixdown;
440-
previewMixdown = HandBrakeEncoderHelpers.SanitizeMixdown(HandBrakeEncoderHelpers.GetMixdown(handBrakeOutputTrack.Mixdown), encoder, inputTrack.ChannelLayout);
439+
HBMixdown previewMixdown;
440+
previewMixdown = HandBrakeEncoderHelpers.SanitizeMixdown(HandBrakeEncoderHelpers.GetMixdown(handBrakeOutputTrack.Mixdown), encoder, inputTrack.ChannelLayout);
441441

442-
int previewSampleRate = handBrakeOutputTrack.Samplerate;
443-
if (previewSampleRate == 0)
444-
{
445-
previewSampleRate = inputTrack.SampleRate;
446-
}
442+
int previewSampleRate = handBrakeOutputTrack.Samplerate;
443+
if (previewSampleRate == 0)
444+
{
445+
previewSampleRate = inputTrack.SampleRate;
446+
}
447447

448448
AudioEncodeRateType encodeRateType = handBrakeOutputTrack.Quality != null ? AudioEncodeRateType.Quality : AudioEncodeRateType.Bitrate;
449449

450450
// Collect the output values in the AudioTrack object
451451
var outputTrackInfo = new OutputAudioTrackInfo
452-
{
453-
Encoder = encoder,
454-
Mixdown = previewMixdown,
455-
SampleRate = HandBrakeEncoderHelpers.SanitizeSampleRate(encoder, previewSampleRate),
456-
EncodeRateType = encodeRateType
452+
{
453+
Encoder = encoder,
454+
Mixdown = previewMixdown,
455+
SampleRate = HandBrakeEncoderHelpers.SanitizeSampleRate(encoder, previewSampleRate),
456+
EncodeRateType = encodeRateType
457457
};
458458

459-
if (encodeRateType == AudioEncodeRateType.Bitrate)
460-
{
461-
int previewBitrate = handBrakeOutputTrack.Bitrate.Value;
462-
if (previewBitrate == 0)
463-
{
464-
previewBitrate = HandBrakeEncoderHelpers.GetDefaultBitrate(encoder, previewSampleRate, previewMixdown);
465-
}
466-
else
467-
{
468-
previewBitrate = HandBrakeEncoderHelpers.SanitizeAudioBitrate(previewBitrate, encoder, previewSampleRate, previewMixdown);
469-
}
470-
471-
outputTrackInfo.Bitrate = previewBitrate;
472-
}
473-
else
474-
{
475-
outputTrackInfo.Quality = handBrakeOutputTrack.Quality.Value;
476-
}
477-
478-
outputTrackInfo.Gain = handBrakeOutputTrack.Gain;
479-
outputTrackInfo.Drc = handBrakeOutputTrack.DRC;
480-
481-
// Apply the output values to the preview object
482-
UpdateAudioPreviewTrack(outputPreviewTrack, outputTrackInfo);
459+
if (encodeRateType == AudioEncodeRateType.Bitrate)
460+
{
461+
int previewBitrate = handBrakeOutputTrack.Bitrate.Value;
462+
if (previewBitrate == 0)
463+
{
464+
previewBitrate = HandBrakeEncoderHelpers.GetDefaultBitrate(encoder, previewSampleRate, previewMixdown);
465+
}
466+
else
467+
{
468+
previewBitrate = HandBrakeEncoderHelpers.SanitizeAudioBitrate(previewBitrate, encoder, previewSampleRate, previewMixdown);
469+
}
470+
471+
outputTrackInfo.Bitrate = previewBitrate;
472+
}
473+
else
474+
{
475+
outputTrackInfo.Quality = handBrakeOutputTrack.Quality.Value;
476+
}
477+
478+
outputTrackInfo.Gain = handBrakeOutputTrack.Gain;
479+
outputTrackInfo.Drc = handBrakeOutputTrack.DRC;
480+
481+
// Apply the output values to the preview object
482+
UpdateAudioPreviewTrack(outputPreviewTrack, outputTrackInfo);
483483
}
484484

485485
return outputPreviewTrack;
486486
}
487487

488-
// Applies values from an AudioTrack output to the preview object
489-
private static void UpdateAudioPreviewTrack(AudioOutputPreview outputPreviewTrack, OutputAudioTrackInfo outputTrack)
490-
{
491-
// Change from AudioTrack to custom object and remove dependency on JSON model?
492-
493-
outputPreviewTrack.Encoder = outputTrack.Encoder.DisplayName;
494-
495-
outputPreviewTrack.Mixdown = outputTrack.Mixdown.DisplayName;
496-
outputPreviewTrack.SampleRate = DisplayConversions.DisplaySampleRate(outputTrack.SampleRate);
497-
if (outputTrack.EncodeRateType == AudioEncodeRateType.Bitrate)
498-
{
499-
if (outputTrack.Bitrate >= 0)
500-
{
501-
outputPreviewTrack.Quality = outputTrack.Bitrate + " kbps";
502-
}
503-
else
504-
{
505-
outputPreviewTrack.Quality = string.Empty;
506-
}
507-
}
508-
else
509-
{
510-
outputPreviewTrack.Quality = "CQ " + outputTrack.Quality;
511-
}
512-
513-
var modifiers = new List<string>();
514-
if (outputTrack.Gain != 0)
515-
{
516-
modifiers.Add(string.Format("{0}{1} dB", outputTrack.Gain > 0 ? "+" : string.Empty, outputTrack.Gain));
517-
}
518-
519-
if (outputTrack.Drc != 0)
520-
{
521-
modifiers.Add("DRC " + outputTrack.Drc.ToString(CultureInfo.CurrentCulture));
522-
}
523-
524-
outputPreviewTrack.Modifiers = string.Join(", ", modifiers);
525-
}
488+
// Applies values from an AudioTrack output to the preview object
489+
private static void UpdateAudioPreviewTrack(AudioOutputPreview outputPreviewTrack, OutputAudioTrackInfo outputTrack)
490+
{
491+
// Change from AudioTrack to custom object and remove dependency on JSON model?
492+
493+
outputPreviewTrack.Encoder = outputTrack.Encoder.DisplayName;
494+
495+
outputPreviewTrack.Mixdown = outputTrack.Mixdown.DisplayName;
496+
outputPreviewTrack.SampleRate = DisplayConversions.DisplaySampleRate(outputTrack.SampleRate);
497+
if (outputTrack.EncodeRateType == AudioEncodeRateType.Bitrate)
498+
{
499+
if (outputTrack.Bitrate >= 0)
500+
{
501+
outputPreviewTrack.Quality = outputTrack.Bitrate + " kbps";
502+
}
503+
else
504+
{
505+
outputPreviewTrack.Quality = string.Empty;
506+
}
507+
}
508+
else
509+
{
510+
outputPreviewTrack.Quality = "CQ " + outputTrack.Quality;
511+
}
512+
513+
var modifiers = new List<string>();
514+
if (outputTrack.Gain != 0)
515+
{
516+
modifiers.Add(string.Format("{0}{1} dB", outputTrack.Gain > 0 ? "+" : string.Empty, outputTrack.Gain));
517+
}
518+
519+
if (outputTrack.Drc != 0)
520+
{
521+
modifiers.Add("DRC " + outputTrack.Drc.ToString(CultureInfo.CurrentCulture));
522+
}
523+
524+
outputPreviewTrack.Modifiers = string.Join(", ", modifiers);
525+
}
526526

527527
public void UpdateAudioEncodings()
528528
{

VidCoderCommon/Model/JsonEncodeFactory.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ private static List<ResolvedAudioTrack> ResolveAudioTracks(List<PairedAudioTrack
315315

316316
outputTrack.Name = trackName;
317317

318-
if (isPassthrough && fallbackEncoder != null)
318+
if (isPassthrough && fallbackEncoder != null && fallbackEncoder != HandBrakeEncoderHelpers.NoneAudioEncoder)
319319
{
320320
// If it's passthrough, find the settings for the fallback encoder and apply those, since they will be picked up if the passthrough doesn't work
321321
OutputAudioTrackInfo fallbackSettings = AudioUtilities.GetDefaultSettings(sourceTrack, fallbackEncoder);

0 commit comments

Comments
 (0)