Skip to content

Commit

Permalink
[MediaToolbox] Don't use Action<T> in reverse P/Invokes.
Browse files Browse the repository at this point in the history
CoreCLR doesn't support it.

Ref: dotnet/runtime#32963
  • Loading branch information
rolfbjarne committed May 13, 2021
1 parent 751976a commit dae1569
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions src/MediaToolbox/MTAudioProcessingTap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ public class MTAudioProcessingTap : INativeObject
#endif
{
#if !COREBUILD
delegate void Action_IntPtr (IntPtr arg);

// MTAudioProcessingTapCallbacks
[StructLayout (LayoutKind.Sequential, Pack = 1)]
unsafe struct Callbacks
Expand All @@ -57,9 +59,9 @@ unsafe struct Callbacks
/* int */ int version; // kMTAudioProcessingTapCallbacksVersion_0 == 0
public /* void* */ IntPtr clientInfo;
public /* MTAudioProcessingTapInitCallback */ MTAudioProcessingTapInitCallbackProxy init;
public /* MTAudioProcessingTapFinalizeCallback */ Action<IntPtr> finalize;
public /* MTAudioProcessingTapFinalizeCallback */ Action_IntPtr finalize;
public /* MTAudioProcessingTapPrepareCallback */ MTAudioProcessingTapPrepareCallbackProxy prepare;
public /* MTAudioProcessingTapUnprepareCallback */ Action<IntPtr> unprepare;
public /* MTAudioProcessingTapUnprepareCallback */ Action_IntPtr unprepare;
public /* MTAudioProcessingTapProcessCallback */ MTAudioProcessingTapProcessCallbackProxy process;
#pragma warning restore 169
}
Expand Down Expand Up @@ -217,7 +219,7 @@ static void ProcessProxy (IntPtr tap, IntPtr numberFrames, MTAudioProcessingTapF
numberFramesOut = (IntPtr) numberOut;
}

[MonoPInvokeCallback (typeof (Action<IntPtr>))]
[MonoPInvokeCallback (typeof (Action_IntPtr))]
static void FinalizeProxy (IntPtr tap)
{
MTAudioProcessingTap apt;
Expand All @@ -235,7 +237,7 @@ static void PrepareProxy (IntPtr tap, IntPtr maxFrames, ref AudioStreamBasicDesc
apt.callbacks.Prepare (apt, (nint) maxFrames, ref processingFormat);
}

[MonoPInvokeCallback (typeof (Action<IntPtr>))]
[MonoPInvokeCallback (typeof (Action_IntPtr))]
static void UnprepareProxy (IntPtr tap)
{
MTAudioProcessingTap apt;
Expand Down

0 comments on commit dae1569

Please sign in to comment.