/// <summary> /// The hb_set_anamorphic_size 2. /// </summary> /// <param name="job"> /// The job. /// </param> /// <param name="title"> /// The title. /// </param> /// <param name="setting"> /// The setting. /// </param> /// <returns> /// The <see cref="AnamorphicResult"/>. /// </returns> public static AnamorphicResult hb_set_anamorphic_size2(PictureSettingsJob job, PictureSettingsTitle title, KeepSetting setting) { int settingMode = (int)setting + (job.KeepDisplayAspect ? 0x04 : 0); hb_geometry_settings_s uiGeometry = new hb_geometry_settings_s { crop = new[] { job.Crop.Top, job.Crop.Bottom, job.Crop.Left, job.Crop.Right }, itu_par = 0, keep = settingMode, maxWidth = job.MaxWidth, maxHeight = job.MaxHeight, mode = (int)(hb_anamorphic_mode_t)job.AnamorphicMode, modulus = job.Modulus.HasValue ? job.Modulus.Value : 16, geometry = new hb_geometry_s { height = job.Height, width = job.Width, par = job.AnamorphicMode != Anamorphic.Custom ? new hb_rational_t { den = title.ParH, num = title.ParW } : new hb_rational_t { den = job.ParH, num = job.ParW }} }; hb_geometry_s sourceGeometry = new hb_geometry_s { width = title.Width, height = title.Height, par = new hb_rational_t { den = title.ParH, num = title.ParW } }; hb_geometry_s result = new hb_geometry_s(); HBFunctions.hb_set_anamorphic_size2(ref sourceGeometry, ref uiGeometry, ref result); int outputWidth = result.width; int outputHeight = result.height; int outputParWidth = result.par.num; int outputParHeight = result.par.den; Debug.WriteLine("hb_set_anamorphic_size2: {0}x{1}", outputWidth, outputHeight); return new AnamorphicResult { OutputWidth = outputWidth, OutputHeight = outputHeight, OutputParWidth = outputParWidth, OutputParHeight = outputParHeight }; }
public static extern void hb_set_anamorphic_size2(ref hb_geometry_s sourceGeometry, ref hb_geometry_settings_s uiGeometry, ref hb_geometry_s result);