public VlcMediaInstance CreateNewMediaFromStream(Stream stream) { if (stream == null) { throw new ArgumentNullException(nameof(stream)); } if (VlcVersionNumber.Major < 3) { throw new InvalidOperationException("You need VLC version 3.0 or higher to be able to use CreateNewMediaFromStream"); } IntPtr opaque = AddStream(stream); if (opaque == IntPtr.Zero) { return(null); } var result = VlcMediaInstance.New(this, GetInteropDelegate <CreateNewMediaFromCallbacks>().Invoke( myVlcInstance, CallbackOpenMediaDelegate, CallbackReadMediaDelegate, CallbackSeekMediaDelegate, CallbackCloseMediaDelegate, opaque )); return(result); }
public MediaTrackInfosStructure[] GetMediaTracksInformations(VlcMediaInstance mediaInstance) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } IntPtr fullBuffer; var cpt = GetInteropDelegate <GetMediaTracksInformations>().Invoke(mediaInstance, out fullBuffer); if (cpt <= 0) { return(new MediaTrackInfosStructure[0]); } var result = new MediaTrackInfosStructure[cpt]; var buffer = fullBuffer; for (int index = 0; index < cpt; index++) { #if NET20 || NET35 || NET40 || NET45 result[index] = (MediaTrackInfosStructure)Marshal.PtrToStructure(buffer, typeof(MediaTrackInfosStructure)); buffer = IntPtr.Size == 4 ? new IntPtr(buffer.ToInt32() + Marshal.SizeOf(typeof(MediaTrackInfosStructure))) : new IntPtr(buffer.ToInt64() + Marshal.SizeOf(typeof(MediaTrackInfosStructure))); #else result[index] = Marshal.PtrToStructure <MediaTrackInfosStructure>(buffer); buffer = IntPtr.Size == 4 ? new IntPtr(buffer.ToInt32() + Marshal.SizeOf <MediaTrackInfosStructure>()) : new IntPtr(buffer.ToInt64() + Marshal.SizeOf <MediaTrackInfosStructure>()); #endif } Free(fullBuffer); return(result); }
public VlcMediaInstance GetMediaFromMediaPlayer(VlcMediaPlayerInstance mediaPlayerInstance) { if (mediaPlayerInstance == IntPtr.Zero) { throw new ArgumentException("Media player instance is not initialized."); } return(VlcMediaInstance.New(this, GetInteropDelegate <GetMediaFromMediaPlayer>().Invoke(mediaPlayerInstance))); }
public VlcMediaInstance CloneMedia(VlcMediaInstance mediaInstance) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } return(VlcMediaInstance.New(this, GetInteropDelegate <CloneMedia>().Invoke(mediaInstance))); }
public bool IsParsedMedia(VlcMediaInstance mediaInstance) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } return(GetInteropDelegate <IsParsedMedia>().Invoke(mediaInstance) == 1); }
public void ReleaseMedia(VlcMediaInstance mediaInstance) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } GetInteropDelegate <ReleaseMedia>().Invoke(mediaInstance); }
public bool SaveMediaMetadatas(VlcMediaInstance mediaInstance) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } return(GetInteropDelegate <SaveMediaMetadatas>().Invoke(mediaInstance) == 1); }
public VlcMediaPlayerInstance CreateMediaPlayerFromMedia(VlcMediaInstance mediaInstance) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } return(new VlcMediaPlayerInstance(this, GetInteropDelegate <CreateMediaPlayerFromMedia>().Invoke(mediaInstance))); }
public VlcMediaEventManagerInstance GetMediaEventManager(VlcMediaInstance mediaInstance) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } return(new VlcMediaEventManagerInstance(this, GetInteropDelegate <GetMediaEventManager>().Invoke(mediaInstance))); }
public void ParseMediaAsync(VlcMediaInstance mediaPlayerInstance) { if (mediaPlayerInstance == IntPtr.Zero) { throw new ArgumentException("Media player instance is not initialized."); } GetInteropDelegate <ParseMediaAsync>().Invoke(mediaPlayerInstance); }
public long GetMediaDuration(VlcMediaInstance mediaInstance) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } return(GetInteropDelegate <GetMediaDuration>().Invoke(mediaInstance)); }
public VlcMediaInstance CreateNewMediaFromLocation(string mrl) { EnsureVlcInstance(); using (var handle = Utf8InteropStringConverter.ToUtf8StringHandle(mrl)) { return(VlcMediaInstance.New(this, GetInteropDelegate <CreateNewMediaFromLocation>().Invoke(myVlcInstance, handle))); } }
public string GetMediaMeta(VlcMediaInstance mediaInstance, MediaMetadatas metadata) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } var ptr = GetInteropDelegate <GetMediaMetadata>().Invoke(mediaInstance, metadata); return(Utf8InteropStringConverter.Utf8InteropToString(ptr)); }
public void SetMediaMeta(VlcMediaInstance mediaInstance, MediaMetadatas metadata, string value) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } using (var handle = Utf8InteropStringConverter.ToUtf8StringHandle(value)) { GetInteropDelegate <SetMediaMetadata>().Invoke(mediaInstance, metadata, handle); } }
public MediaStatsStructure GetMediaStats(VlcMediaInstance mediaInstance) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } MediaStatsStructure result; GetInteropDelegate <GetMediaStats>().Invoke(mediaInstance, out result); return(result); }
public void AddOptionFlagToMedia(VlcMediaInstance mediaInstance, string option, uint flag) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } using (var handle = Utf8InteropStringConverter.ToUtf8StringHandle(option)) { GetInteropDelegate <AddOptionFlagToMedia>().Invoke(mediaInstance, handle, flag); } }
public void AddOptionToMedia(VlcMediaInstance mediaInstance, string[] options) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } options = options ?? new string[0]; foreach (var option in options) { AddOptionToMedia(mediaInstance, option); } }
public static VlcMediaInstance New(VlcManager manager, IntPtr pointer) { var instance = allInstances.Find(delegate(VlcMediaInstance i) { return(i == pointer); }); if (null == instance) { instance = new VlcMediaInstance(manager, pointer); allInstances.Add(instance); } return(instance); }
public void AddOptionToMedia(VlcMediaInstance mediaInstance, string option) { if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } if (string.IsNullOrEmpty(option)) { return; } using (var handle = Utf8InteropStringConverter.ToUtf8StringHandle(option)) { GetInteropDelegate <AddOptionToMedia>().Invoke(mediaInstance, handle); } }
public VlcMediaInstance CreateNewMediaFromFileDescriptor(int fileDescriptor) { EnsureVlcInstance(); return(VlcMediaInstance.New(this, GetInteropDelegate <CreateNewMediaFromFileDescriptor>().Invoke(myVlcInstance, fileDescriptor))); }
public void SetMediaToMediaPlayer(VlcMediaPlayerInstance mediaPlayerInstance, VlcMediaInstance mediaInstance) { if (mediaPlayerInstance == IntPtr.Zero) { throw new ArgumentException("Media player instance is not initialized."); } if (mediaInstance == IntPtr.Zero) { throw new ArgumentException("Media instance is not initialized."); } GetInteropDelegate <SetMediaToMediaPlayer>().Invoke(mediaPlayerInstance, mediaInstance); }