diff --git a/FFMpegCore/Extend/Job.cs b/FFMpegCore/Extend/Job.cs deleted file mode 100644 index 788bb79..0000000 --- a/FFMpegCore/Extend/Job.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -using static PInvoke.Kernel32; - - -namespace FFMpegCore.Extend { - public class Job : IDisposable { - readonly SafeObjectHandle handle; - - public Job() { - this.handle = CreateJobObject(IntPtr.Zero, null); - - var info = new JOBOBJECT_BASIC_LIMIT_INFORMATION { - LimitFlags = JOB_OBJECT_LIMIT_FLAGS.JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE, - }; - - var extendedInfo = new JOBOBJECT_EXTENDED_LIMIT_INFORMATION { BasicLimitInformation = info }; - - int length = Marshal.SizeOf(typeof(JOBOBJECT_EXTENDED_LIMIT_INFORMATION)); - IntPtr extendedInfoPtr = Marshal.AllocHGlobal(length); - Marshal.StructureToPtr(extendedInfo, extendedInfoPtr, false); - - if (!SetInformationJobObject(this.handle, JOBOBJECTINFOCLASS.JobObjectExtendedLimitInformation, extendedInfoPtr, (uint)length)) - throw new System.ComponentModel.Win32Exception(); - } - - public bool AddProcess(SafeObjectHandle processHandle) { - return AssignProcessToJobObject(this.handle, processHandle); - } - - #region IDisposable Members - - public void Dispose() { - this.Dispose(true); - GC.SuppressFinalize(this); - } - - - private void Dispose(bool disposing) => this.Close(); - - public void Close() => this.handle.Close(); - - #endregion - } -} diff --git a/FFMpegCore/FFMpeg/FFMpegArgumentProcessor.cs b/FFMpegCore/FFMpeg/FFMpegArgumentProcessor.cs index 57b5d4d..d044e5b 100644 --- a/FFMpegCore/FFMpeg/FFMpegArgumentProcessor.cs +++ b/FFMpegCore/FFMpeg/FFMpegArgumentProcessor.cs @@ -9,12 +9,6 @@ using System.Threading; using System.Threading.Tasks; using FFMpegCore.Enums; -using FFMpegCore.Exceptions; -using FFMpegCore.Extend; -using FFMpegCore.Helpers; -using Instances; - -using PInvoke; namespace FFMpegCore { @@ -148,13 +142,6 @@ private async Task Process(ProcessArguments processArguments, Ca _ffMpegArguments.Pre(); using var instance = (ProcessInstance)processArguments.Start(); - - using var job = new Job(); - var processHack = (Process)typeof(ProcessInstance).GetField("_process", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) - .GetValue(instance); - using var instanceHandle = new Kernel32.SafeObjectHandle(processHack.Handle, ownsHandle: false); - job.AddProcess(instanceHandle); - var cancelled = false; void OnCancelEvent(object sender, int timeout) { diff --git a/FFMpegCore/FFMpegCore.csproj b/FFMpegCore/FFMpegCore.csproj index 9c9aba6..7c3f7bb 100644 --- a/FFMpegCore/FFMpegCore.csproj +++ b/FFMpegCore/FFMpegCore.csproj @@ -12,13 +12,12 @@ - + - - - + +