Added libvlc_video_take_snapshot to vlc api

git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@1680 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
niksedk 2013-02-26 16:20:57 +00:00
parent 2380a7ac23
commit e6b54ac9f1

View File

@ -78,6 +78,11 @@ namespace Nikse.SubtitleEdit.Logic.VideoPlayers
private delegate int libvlc_audio_set_track(IntPtr mediaPlayer, int trackNumber);
libvlc_audio_set_track _libvlc_audio_set_track;
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate int libvlc_video_take_snapshot(IntPtr mediaPlayer, byte num, byte[] filePath, UInt32 width, UInt32 height);
libvlc_video_take_snapshot _libvlc_video_take_snapshot;
// LibVLC Audio Controls - http://www.videolan.org/developers/vlc/doc/doxygen/html/group__libvlc__audio.html
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate int libvlc_audio_get_volume(IntPtr mediaPlayer);
@ -165,6 +170,7 @@ namespace Nikse.SubtitleEdit.Logic.VideoPlayers
_libvlc_audio_get_track_count = (libvlc_audio_get_track_count)GetDllType(typeof(libvlc_audio_get_track_count), "libvlc_audio_get_track_count");
_libvlc_audio_get_track = (libvlc_audio_get_track)GetDllType(typeof(libvlc_audio_get_track), "libvlc_audio_get_track");
_libvlc_audio_set_track = (libvlc_audio_set_track)GetDllType(typeof(libvlc_audio_set_track), "libvlc_audio_set_track");
_libvlc_video_take_snapshot = (libvlc_video_take_snapshot)GetDllType(typeof(libvlc_video_take_snapshot), "libvlc_video_take_snapshot");
_libvlc_audio_get_volume = (libvlc_audio_get_volume)GetDllType(typeof(libvlc_audio_get_volume), "libvlc_audio_get_volume");
_libvlc_audio_set_volume = (libvlc_audio_set_volume)GetDllType(typeof(libvlc_audio_set_volume), "libvlc_audio_set_volume");
@ -344,6 +350,14 @@ namespace Nikse.SubtitleEdit.Logic.VideoPlayers
}
}
public bool TakeSnapshot(string fileName, UInt32 width, UInt32 height)
{
if (_libvlc_video_take_snapshot == null)
return false;
return _libvlc_video_take_snapshot(_mediaPlayer, 0, Encoding.UTF8.GetBytes(fileName + "\0"), width, height) == 1;
}
public LibVlc11xDynamic MakeSecondMediaPlayer(System.Windows.Forms.Control ownerControl, string videoFileName, EventHandler onVideoLoaded, EventHandler onVideoEnded)
{
LibVlc11xDynamic newVlc = new LibVlc11xDynamic();