internal static extern int StreamEncoderInitStream( StreamEncoderHandle handle, NativeCallbacks.StreamEncoderWriteCallback writeCallback, NativeCallbacks.StreamEncoderSeekCallback?seekCallback, NativeCallbacks.StreamEncoderTellCallback?tellCallback, NativeCallbacks.StreamEncoderMetadataCallback?metadataCallback, IntPtr userData);
internal static extern int StreamEncoderInitStream( [NotNull] StreamEncoderHandle handle, [NotNull] NativeCallbacks.StreamEncoderWriteCallback writeCallback, [CanBeNull] NativeCallbacks.StreamEncoderSeekCallback seekCallback, [CanBeNull] NativeCallbacks.StreamEncoderTellCallback tellCallback, [CanBeNull] NativeCallbacks.StreamEncoderMetadataCallback metadataCallback, IntPtr userData);
internal static extern EncoderState StreamEncoderGetState( StreamEncoderHandle handle);
internal static extern bool StreamEncoderFinish( StreamEncoderHandle handle);
internal static extern bool StreamEncoderProcessInterleaved( StreamEncoderHandle handle, in int buffer,
internal static extern bool StreamEncoderProcess( StreamEncoderHandle handle, in IntPtr buffer,
internal static extern bool StreamEncoderSetMetadata( StreamEncoderHandle handle, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] IntPtr[] metaData, uint blocks);
internal static extern void StreamEncoderSetCompressionLevel( StreamEncoderHandle handle, uint compressionLevel);
internal static extern ulong StreamEncoderGetTotalSamplesEstimate( StreamEncoderHandle handle);
internal static extern bool StreamEncoderSetTotalSamplesEstimate( StreamEncoderHandle handle, ulong totalSamples);
internal static extern bool StreamEncoderSetSampleRate( StreamEncoderHandle handle, uint sampleRate);
internal static extern uint StreamEncoderGetBitsPerSample( StreamEncoderHandle handle);
internal static extern bool StreamEncoderSetBitsPerSample( StreamEncoderHandle handle, uint bitsPerSample);
internal static extern uint StreamEncoderGetChannels( StreamEncoderHandle handle);
internal static extern bool StreamEncoderSetChannels( StreamEncoderHandle handle, uint channels);
internal static extern bool StreamEncoderFinish( [NotNull] StreamEncoderHandle handle);