internal static extern RecorderErrorCode GetFileName(RecorderHandle handle, out IntPtr path);
internal static extern RecorderErrorCode SetMuxedStreamCallback(RecorderHandle handle, MuxedStreamCallback callback, IntPtr userData);
internal static extern RecorderErrorCode SetInterruptedCallback(RecorderHandle handle, InterruptedCallback callback, IntPtr userData);
internal static extern RecorderErrorCode SetRecordingProgressCallback(RecorderHandle handle, RecordingProgressCallback callback, IntPtr userData);
internal static extern RecorderErrorCode SetLimitReachedCallback(RecorderHandle handle, RecordingLimitReachedCallback callback, IntPtr userData);
public static extern RecorderErrorCode GetVideoResolutions(RecorderHandle handle, VideoResolutionCallback callback, IntPtr userData = default(IntPtr));
internal static extern RecorderErrorCode SetStateChangedCallback(RecorderHandle handle, StatechangedCallback callback, IntPtr userData);
internal static extern RecorderErrorCode Create(out RecorderHandle handle);
internal static extern RecorderErrorCode CreateVideo(IntPtr cameraHandle, out RecorderHandle handle);
internal static extern bool GetMute(RecorderHandle handle);
internal static extern RecorderErrorCode SetMute(RecorderHandle handle, bool enable);
internal static extern RecorderErrorCode SetTimeLimit(RecorderHandle handle, int second);
internal static extern RecorderErrorCode SetSizeLimit(RecorderHandle handle, int kbyte);
internal static extern RecorderErrorCode SetFileName(RecorderHandle handle, string path);
internal static extern RecorderErrorCode GetFileFormats(RecorderHandle handle, FileFormatCallback callback, IntPtr userData = default(IntPtr));
internal static extern RecorderErrorCode Unprepare(RecorderHandle handle);
internal static extern RecorderErrorCode GetVideoEncoders(RecorderHandle handle, VideoEncoderCallback callback, IntPtr userData = default(IntPtr));
internal static extern RecorderErrorCode Start(RecorderHandle handle);
internal static extern RecorderErrorCode SetInterruptStartedCallback(RecorderHandle handle, InterruptStartedCallback callback, IntPtr userData = default(IntPtr));
internal static extern RecorderErrorCode Pause(RecorderHandle handle);
internal static extern RecorderErrorCode UnsetStateChangedCallback(RecorderHandle handle);
internal static extern RecorderErrorCode Commit(RecorderHandle handle);
internal static extern RecorderErrorCode UnsetRecordingProgressCallback(RecorderHandle handle);
internal static extern RecorderErrorCode Cancel(RecorderHandle handle);
internal static extern RecorderErrorCode UnsetLimitReachedCallback(RecorderHandle handle);
internal static extern RecorderErrorCode GetState(RecorderHandle handle, out RecorderState state);
internal static extern RecorderErrorCode UnsetMuxedStreamCallback(RecorderHandle handle);
internal static extern RecorderErrorCode SetAudioStreamPolicy(RecorderHandle handle, AudioStreamPolicyHandle streamInfoHandle);
internal static extern RecorderErrorCode UnsetInterruptedCallback(RecorderHandle handle);
internal static extern RecorderErrorCode SetFileFormat(RecorderHandle handle, RecorderFileFormat format);