(61d00a474) v0.9.7.1

This commit is contained in:
Regalis
2020-03-04 13:04:10 +01:00
parent 3c50efa5c9
commit 3c09ebe02f
5086 changed files with 786063 additions and 295871 deletions
@@ -0,0 +1,59 @@
using System;
using System.Runtime.InteropServices;
namespace Barotrauma.Media
{
public partial class Video : IDisposable
{
private static class Internal
{
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void EventCallback(IntPtr videoInternal, IntPtr data, Int32 dataElemSize, Int32 dataLen);
#if WINDOWS
private const string DLL_NAME = "webm_mem_playback_x64.dll";
#elif LINUX
private const string DLL_NAME = "webm_mem_playback_x64.so";
#elif OSX
private const string DLL_NAME = "webm_mem_playback_x64.dylib";
#endif
private const CallingConvention CALLING_CONVENTION = CallingConvention.Cdecl;
[DllImport(DLL_NAME, CallingConvention = CALLING_CONVENTION, CharSet = CharSet.Ansi)]
public static extern IntPtr loadVideo(string filename);
[DllImport(DLL_NAME, CallingConvention = CALLING_CONVENTION, CharSet = CharSet.Ansi)]
public static extern Int32 getVideoWidth(IntPtr videoInternal);
[DllImport(DLL_NAME, CallingConvention = CALLING_CONVENTION, CharSet = CharSet.Ansi)]
public static extern Int32 getVideoHeight(IntPtr videoInternal);
[DllImport(DLL_NAME, CallingConvention = CALLING_CONVENTION, CharSet = CharSet.Ansi)]
public static extern Int32 videoHasAudio(IntPtr videoInternal);
[DllImport(DLL_NAME, CallingConvention = CALLING_CONVENTION, CharSet = CharSet.Ansi)]
public static extern Int32 getVideoAudioSampleRate(IntPtr videoInternal);
[DllImport(DLL_NAME, CallingConvention = CALLING_CONVENTION, CharSet = CharSet.Ansi)]
public static extern Int32 getVideoAudioChannelCount(IntPtr videoInternal);
[DllImport(DLL_NAME, CallingConvention = CALLING_CONVENTION, CharSet = CharSet.Ansi)]
public static extern void deleteVideo(IntPtr videoInternal);
[DllImport(DLL_NAME, CallingConvention = CALLING_CONVENTION, CharSet = CharSet.Ansi)]
public static extern void playVideo(IntPtr videoInternal);
[DllImport(DLL_NAME, CallingConvention = CALLING_CONVENTION, CharSet = CharSet.Ansi)]
public static extern void stopVideo(IntPtr videoInternal);
[DllImport(DLL_NAME, CallingConvention = CALLING_CONVENTION, CharSet = CharSet.Ansi)]
public static extern Int32 isVideoPlaying(IntPtr videoInternal);
[DllImport(DLL_NAME, CallingConvention = CALLING_CONVENTION, CharSet = CharSet.Ansi)]
public static extern void setVideoFrameCallback(IntPtr videoInternal, IntPtr callback);
[DllImport(DLL_NAME, CallingConvention = CALLING_CONVENTION, CharSet = CharSet.Ansi)]
public static extern void setVideoAudioCallback(IntPtr videoInternal, IntPtr callback);
}
}
}