-
Notifications
You must be signed in to change notification settings - Fork 1
/
AacEncoder.cs
67 lines (57 loc) · 2.35 KB
/
AacEncoder.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Runtime.InteropServices;
using System.Security;
namespace accEncoderTest
{
public class AacEncoder
{
public struct NativeMethods
{
[SuppressUnmanagedCodeSecurity]
[DllImport("libfdk-aac", CallingConvention = CallingConvention.Cdecl,
EntryPoint = "encoder_init")]
[return: MarshalAsAttribute(UnmanagedType.I1)]
internal static extern bool EncoderInit_0(int samplerate, int channels, int bitrate);
[SuppressUnmanagedCodeSecurity]
[DllImport("libfdk-aac", CallingConvention = CallingConvention.Cdecl,
EntryPoint = "encoder_release")]
internal static extern void EncoderRelease_0();
[SuppressUnmanagedCodeSecurity]
[DllImport("libfdk-aac", CallingConvention = CallingConvention.Cdecl,
EntryPoint = "get_input_buffer_size")]
internal static extern int GetInputBufferSize_0();
[SuppressUnmanagedCodeSecurity]
[DllImport("libfdk-aac", CallingConvention = CallingConvention.Cdecl,
EntryPoint = "get_max_output_buffer_size")]
internal static extern int GetMaxOutputBufferSize_0();
[SuppressUnmanagedCodeSecurity]
[DllImport("libfdk-aac", CallingConvention = CallingConvention.Cdecl,
EntryPoint = "encode_buffer")]
internal static extern int EncodeBuffer_0(IntPtr inbuf, int len, IntPtr outbuf, int outsize);
}
public static bool EncoderInit(int samplerate, int channels, int bitrate)
{
var __ret = NativeMethods.EncoderInit_0(samplerate, channels, bitrate);
return __ret;
}
public static void EncoderRelease()
{
NativeMethods.EncoderRelease_0();
}
public static int GetInputBufferSize()
{
var __ret = NativeMethods.GetInputBufferSize_0();
return __ret;
}
public static int GetMaxOutputBufferSize()
{
var __ret = NativeMethods.GetMaxOutputBufferSize_0();
return __ret;
}
public static int EncodeBuffer(IntPtr inbuf, int len, IntPtr outbuf, int outsize)
{
var __ret = NativeMethods.EncodeBuffer_0(inbuf, len, outbuf, outsize);
return __ret;
}
}
}