From 691c9011bc62ceb7d7ebd5e8750082043ddfb547 Mon Sep 17 00:00:00 2001 From: Jaex Date: Sun, 17 Sep 2023 08:16:06 +0300 Subject: [PATCH] Fixed audio recording sync issues --- .../ScreenRecording/ScreenRecordingOptions.cs | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ShareX.ScreenCaptureLib/ScreenRecording/ScreenRecordingOptions.cs b/ShareX.ScreenCaptureLib/ScreenRecording/ScreenRecordingOptions.cs index d73bf5385..7d50bb2a0 100644 --- a/ShareX.ScreenCaptureLib/ScreenRecording/ScreenRecordingOptions.cs +++ b/ShareX.ScreenCaptureLib/ScreenRecording/ScreenRecordingOptions.cs @@ -101,6 +101,12 @@ public string GetFFmpegArgs(bool isCustom = false) { if (FFmpeg.VideoSource.Equals(FFmpegCaptureDevice.GDIGrab.Value, StringComparison.OrdinalIgnoreCase)) { + if (FFmpeg.IsAudioSourceSelected) + { + AppendInputDevice(args, "dshow", true); + args.Append($"-i audio={Helpers.EscapeCLIText(FFmpeg.AudioSource)} "); + } + string x = isCustom ? "$area_x$" : CaptureArea.X.ToString(); string y = isCustom ? "$area_y$" : CaptureArea.Y.ToString(); string width = isCustom ? "$area_width$" : CaptureArea.Width.ToString(); @@ -115,15 +121,15 @@ public string GetFFmpegArgs(bool isCustom = false) args.Append($"-video_size {width}x{height} "); args.Append($"-draw_mouse {cursor} "); args.Append("-i desktop "); - + } + else if (FFmpeg.VideoSource.Equals(FFmpegCaptureDevice.DDAGrab.Value, StringComparison.OrdinalIgnoreCase)) + { if (FFmpeg.IsAudioSourceSelected) { AppendInputDevice(args, "dshow", true); args.Append($"-i audio={Helpers.EscapeCLIText(FFmpeg.AudioSource)} "); } - } - else if (FFmpeg.VideoSource.Equals(FFmpegCaptureDevice.DDAGrab.Value, StringComparison.OrdinalIgnoreCase)) - { + Screen[] screens = Screen.AllScreens.OrderBy(x => !x.Primary).ToArray(); int monitorIndex = 0; Rectangle captureArea = screens[0].Bounds; @@ -167,12 +173,6 @@ public string GetFFmpegArgs(bool isCustom = false) } args.Append(" "); - - if (FFmpeg.IsAudioSourceSelected) - { - AppendInputDevice(args, "dshow", true); - args.Append($"-i audio={Helpers.EscapeCLIText(FFmpeg.AudioSource)} "); - } } else {