/// <summary> /// Sanitizes a mixdown given the output codec and input channel layout. /// </summary> /// <param name="mixdown"> /// The desired mixdown. /// </param> /// <param name="encoder"> /// The output encoder to be used. /// </param> /// <param name="layout"> /// The input channel layout. /// </param> /// <returns> /// A sanitized mixdown value. /// </returns> public static HBMixdown SanitizeMixdown(HBMixdown mixdown, HBAudioEncoder encoder, ulong layout) { if (mixdown == null) { return(null); } int sanitizedMixdown = HBFunctions.hb_mixdown_get_best((uint)encoder.Id, layout, mixdown.Id); if (sanitizedMixdown != -1) { return(Mixdowns.Single(m => m.Id == sanitizedMixdown)); } return(Mixdowns.FirstOrDefault()); // "none" }
/// <summary> /// Gets the default mixdown for the given audio encoder and channel layout. /// </summary> /// <param name="encoder"> /// The output codec to be used. /// </param> /// <param name="layout"> /// The input channel layout. /// </param> /// <returns> /// The default mixdown for the given codec and channel layout. /// </returns> public static HBMixdown GetDefaultMixdown(HBAudioEncoder encoder, ulong layout) { int defaultMixdown = HBFunctions.hb_mixdown_get_default((uint)encoder.Id, layout); return(Mixdowns.Single(m => m.Id == defaultMixdown)); }
/// <summary> /// Gets the mixdown with the specified ID. /// </summary> /// <param name="id">The mixdown ID.</param> /// <returns>The requested mixdown.</returns> public static HBMixdown GetMixdown(int id) { return(Mixdowns.SingleOrDefault(m => m.Id == id)); }
/// <summary> /// Gets the mixdown with the specified short name. /// </summary> /// <param name="shortName"> /// The name of the mixdown. /// </param> /// <returns> /// The requested mixdown. /// </returns> public static HBMixdown GetMixdown(string shortName) { return(Mixdowns.SingleOrDefault(m => m.ShortName == shortName)); }
/// <summary> /// Sanitizes a mixdown given the output codec and input channel layout. /// </summary> /// <param name="mixdown">The desired mixdown.</param> /// <param name="encoder">The output encoder to be used.</param> /// <param name="layout">The input channel layout.</param> /// <returns>A sanitized mixdown value.</returns> public static HBMixdown SanitizeMixdown(HBMixdown mixdown, HBAudioEncoder encoder, int layout) { int sanitizedMixdown = HBFunctions.hb_get_best_mixdown((uint)encoder.Id, layout, mixdown.Id); return(Mixdowns.Single(m => m.Id == sanitizedMixdown)); }