Esempio n. 1
0
        public MediaTrackInfosStructure[] GetMediaTracksInformations(VlcMediaInstance mediaInstance)
        {
            if (mediaInstance == IntPtr.Zero)
            {
                throw new ArgumentException("Media instance is not initialized.");
            }
            IntPtr fullBuffer;
            var    cpt = myLibraryLoader.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++)
            {
                result[index] = MarshalHelper.PtrToStructure <MediaTrackInfosStructure>(buffer);
                buffer        = IntPtr.Size == 4
                    ? new IntPtr(buffer.ToInt32() + MarshalHelper.SizeOf <MediaTrackInfosStructure>())
                    : new IntPtr(buffer.ToInt64() + MarshalHelper.SizeOf <MediaTrackInfosStructure>());
            }
            Free(fullBuffer);
            return(result);
        }
Esempio n. 2
0
        public MediaTrackInfosStructure[] GetMediaTracksInformations(VlcMediaInstance mediaInstance)
        {
            if (mediaInstance == IntPtr.Zero)
            {
                throw new ArgumentException("Media instance is not initialized.");
            }
            var fullBuffer = IntPtr.Zero;
            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++)
            {
                result[index] = (MediaTrackInfosStructure)Marshal.PtrToStructure(buffer, typeof(MediaTrackInfosStructure));
#if X86
                buffer = new IntPtr(buffer.ToInt32() + Marshal.SizeOf(typeof(MediaTrackInfosStructure)));
#else
                buffer = new IntPtr(buffer.ToInt64() + Marshal.SizeOf(typeof(MediaTrackInfosStructure)));
#endif
            }
            Free(fullBuffer);
            return(result);
        }
 public VlcMediaInstance CreateNewMediaFromLocation(string mrl)
 {
     var handle = GCHandle.Alloc(Encoding.UTF8.GetBytes(mrl), GCHandleType.Pinned);
     var result = new VlcMediaInstance(this, GetInteropDelegate<CreateNewMediaFromLocation>().Invoke(myVlcInstance, handle.AddrOfPinnedObject()));
     handle.Free();
     return result;
 }
        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, myLibraryLoader.GetInteropDelegate <CreateNewMediaFromCallbacks>().Invoke(
                                                  myVlcInstance,
                                                  CallbackOpenMediaDelegate,
                                                  CallbackReadMediaDelegate,
                                                  CallbackSeekMediaDelegate,
                                                  CallbackCloseMediaDelegate,
                                                  opaque
                                                  ));

            return(result);
        }
 public string GetMediaMrl(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
         throw new ArgumentException("Media instance is not initialized.");
     var ptr = GetInteropDelegate<GetMediaMrl>().Invoke(mediaInstance);
     return Marshal.PtrToStringAnsi(ptr);
 }
 public VlcMediaInstance CreateNewMediaFromLocation(string mrl)
 {
     using (var handle = Utf8InteropStringConverter.ToUtf8StringHandle(mrl))
     {
         return(VlcMediaInstance.New(this, myLibraryLoader.GetInteropDelegate <CreateNewMediaFromLocation>().Invoke(myVlcInstance, handle)));
     }
 }
 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);
 }
 public void SetMediaMeta(VlcMediaInstance mediaInstance, MediaMetadatas metadata, string value)
 {
     if (mediaInstance == IntPtr.Zero)
         throw new ArgumentException("Media instance is not initialized.");
     var handle = GCHandle.Alloc(Encoding.UTF8.GetBytes(value), GCHandleType.Pinned);
     GetInteropDelegate<SetMediaMetadata>().Invoke(mediaInstance, metadata, handle.AddrOfPinnedObject());
     handle.Free();
 }
 public void ReleaseMedia(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
     {
         throw new ArgumentException("Media instance is not initialized.");
     }
     myLibraryLoader.GetInteropDelegate <ReleaseMedia>().Invoke(mediaInstance);
 }
 public MediaStatsStructure GetMediaStats(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
         throw new ArgumentException("Media instance is not initialized.");
     var result = new MediaStatsStructure();
     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.");
     var handle = GCHandle.Alloc(Encoding.UTF8.GetBytes(option), GCHandleType.Pinned);
     GetInteropDelegate<AddOptionFlagToMedia>().Invoke(mediaInstance, handle.AddrOfPinnedObject(), flag);
     handle.Free();
 }
 public VlcMediaEventManagerInstance GetMediaEventManager(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
     {
         throw new ArgumentException("Media instance is not initialized.");
     }
     return(new VlcMediaEventManagerInstance(this, myLibraryLoader.GetInteropDelegate <GetMediaEventManager>().Invoke(mediaInstance)));
 }
Esempio n. 13
0
 public MediaStates GetMediaState(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
     {
         throw new ArgumentException("Media instance is not initialized.");
     }
     return(myLibraryLoader.GetInteropDelegate <GetMediaState>().Invoke(mediaInstance));
 }
Esempio n. 14
0
 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 long GetMediaDuration(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
     {
         throw new ArgumentException("Media instance is not initialized.");
     }
     return(GetInteropDelegate <GetMediaDuration>().Invoke(mediaInstance));
 }
Esempio n. 16
0
 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)));
 }
Esempio n. 17
0
        public VlcMediaInstance CreateNewMediaFromLocation(string mrl)
        {
            var handle = GCHandle.Alloc(Encoding.UTF8.GetBytes(mrl), GCHandleType.Pinned);
            var result = VlcMediaInstance.New(this, GetInteropDelegate <CreateNewMediaFromLocation>().Invoke(myVlcInstance, handle.AddrOfPinnedObject()));

            handle.Free();
            return(result);
        }
Esempio n. 18
0
 public bool SaveMediaMetadatas(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
     {
         throw new ArgumentException("Media instance is not initialized.");
     }
     return(GetInteropDelegate <SaveMediaMetadatas>().Invoke(mediaInstance) == 1);
 }
 public bool IsParsedMedia(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
     {
         throw new ArgumentException("Media instance is not initialized.");
     }
     return(myLibraryLoader.GetInteropDelegate <IsParsedMedia>().Invoke(mediaInstance) == 1);
 }
Esempio n. 20
0
 public void ParseMediaAsync(VlcMediaInstance mediaPlayerInstance)
 {
     if (mediaPlayerInstance == IntPtr.Zero)
     {
         throw new ArgumentException("Media player instance is not initialized.");
     }
     GetInteropDelegate <ParseMediaAsync>().Invoke(mediaPlayerInstance);
 }
 public VlcMediaInstance GetMediaFromMediaPlayer(VlcMediaPlayerInstance mediaPlayerInstance)
 {
     if (mediaPlayerInstance == IntPtr.Zero)
     {
         throw new ArgumentException("Media player instance is not initialized.");
     }
     return(VlcMediaInstance.New(this, myLibraryLoader.GetInteropDelegate <GetMediaFromMediaPlayer>().Invoke(mediaPlayerInstance)));
 }
 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);
     if (ptr == IntPtr.Zero)
         return null;
     return Marshal.PtrToStringUni(ptr);
 }
        public VlcMediaInstance CreateNewMediaFromLocation(string mrl)
        {
            EnsureVlcInstance();

            using (var handle = Utf8InteropStringConverter.ToUtf8Interop(mrl))
            {
                return(VlcMediaInstance.New(this, GetInteropDelegate <CreateNewMediaFromLocation>().Invoke(myVlcInstance, handle.DangerousGetHandle())));
            }
        }
Esempio n. 24
0
        public VlcMediaInstance CreateNewMediaFromPath(string mrl)
        {
            EnsureVlcInstance();

            using (var handle = Utf8InteropStringConverter.ToUtf8StringHandle(mrl))
            {
                return(VlcMediaInstance.New(this, GetInteropDelegate <CreateNewMediaFromPath>().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 string GetMediaMrl(VlcMediaInstance mediaInstance)
        {
            if (mediaInstance == IntPtr.Zero)
            {
                throw new ArgumentException("Media instance is not initialized.");
            }
            var ptr = GetInteropDelegate <GetMediaMrl>().Invoke(mediaInstance);

            return(Marshal.PtrToStringAnsi(ptr));
        }
 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 void AddOptionToMedia(VlcMediaInstance mediaInstance, string option)
 {
     if (mediaInstance == IntPtr.Zero)
         throw new ArgumentException("Media instance is not initialized.");
     if (string.IsNullOrEmpty(option))
         return;
     var handle = GCHandle.Alloc(Encoding.ASCII.GetBytes(option), GCHandleType.Pinned);
     GetInteropDelegate<AddOptionToMedia>().Invoke(mediaInstance, handle.AddrOfPinnedObject());
     handle.Free();
 }
        public string GetMediaMrl(VlcMediaInstance mediaInstance)
        {
            if (mediaInstance == IntPtr.Zero)
            {
                throw new ArgumentException("Media instance is not initialized.");
            }
            var ptr = myLibraryLoader.GetInteropDelegate <GetMediaMrl>().Invoke(mediaInstance);

            return(Utf8InteropStringConverter.Utf8InteropToString(ptr));
        }
Esempio n. 30
0
 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.ToUtf8Interop(value))
     {
         GetInteropDelegate <SetMediaMetadata>().Invoke(mediaInstance, metadata, handle.DangerousGetHandle());
     }
 }
Esempio n. 31
0
        public void AddOptionFlagToMedia(VlcMediaInstance mediaInstance, string option, uint flag)
        {
            if (mediaInstance == IntPtr.Zero)
            {
                throw new ArgumentException("Media instance is not initialized.");
            }
            var handle = GCHandle.Alloc(Encoding.UTF8.GetBytes(option), GCHandleType.Pinned);

            GetInteropDelegate <AddOptionFlagToMedia>().Invoke(mediaInstance, handle.AddrOfPinnedObject(), flag);
            handle.Free();
        }
Esempio n. 32
0
        public MediaStatsStructure GetMediaStats(VlcMediaInstance mediaInstance)
        {
            if (mediaInstance == IntPtr.Zero)
            {
                throw new ArgumentException("Media instance is not initialized.");
            }
            var result = new MediaStatsStructure();

            GetInteropDelegate <GetMediaStats>().Invoke(mediaInstance, out result);
            return(result);
        }
        public void SetMediaMeta(VlcMediaInstance mediaInstance, MediaMetadatas metadata, string value)
        {
            if (mediaInstance == IntPtr.Zero)
            {
                throw new ArgumentException("Media instance is not initialized.");
            }
            var handle = GCHandle.Alloc(Encoding.UTF8.GetBytes(value), GCHandleType.Pinned);

            GetInteropDelegate <SetMediaMetadata>().Invoke(mediaInstance, metadata, handle.AddrOfPinnedObject());
            handle.Free();
        }
        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);
     }
 }
Esempio n. 36
0
 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;
 }
Esempio n. 37
0
        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);
        }
Esempio n. 38
0
        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);

            if (ptr == IntPtr.Zero)
            {
                return(null);
            }
            return(Marshal.PtrToStringAnsi(ptr));
        }
Esempio n. 39
0
        public static VlcMediaInstance New(VlcManager manager, IntPtr pointer)
        {
            lock (AllInstances)
            {
                AllInstances.TryGetValue(pointer, out var instance);

                if (null == instance)
                {
                    instance = new VlcMediaInstance(manager, pointer);
                    AllInstances.Add(pointer, 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;
            }
            var handle = GCHandle.Alloc(Encoding.ASCII.GetBytes(option), GCHandleType.Pinned);

            GetInteropDelegate <AddOptionToMedia>().Invoke(mediaInstance, handle.AddrOfPinnedObject());
            handle.Free();
        }
 public MediaTrackInfosStructure[] GetMediaTracksInformations(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
         throw new ArgumentException("Media instance is not initialized.");
     var fullBuffer = IntPtr.Zero;
     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++)
     {
         result[index] = (MediaTrackInfosStructure)Marshal.PtrToStructure(buffer, typeof(MediaTrackInfosStructure));
         buffer = new IntPtr(buffer.ToInt32() + Marshal.SizeOf(typeof(MediaTrackInfosStructure)));
     }
     Free(fullBuffer);
     return result;
 }
 public static VlcMediaInstance AddOptionToMedia(VlcMediaInstance mediaInstance, VlcManager manager, string option)
Esempio n. 43
0
 public void ReleaseMedia(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
         throw new ArgumentException("Media instance is not initialized.");
     GetInteropDelegate<ReleaseMedia>().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 bool SaveMediaMetadatas(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
         throw new ArgumentException("Media instance is not initialized.");
     return GetInteropDelegate<SaveMediaMetadatas>().Invoke(mediaInstance) == 1;
 }
 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 VlcMediaInstance CloneMedia(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
         throw new ArgumentException("Media instance is not initialized.");
     return new VlcMediaInstance(this, GetInteropDelegate<CloneMedia>().Invoke(mediaInstance));
 }
 public long GetMediaDuration(VlcMediaInstance mediaInstance)
 {
     if (mediaInstance == IntPtr.Zero)
         throw new ArgumentException("Media instance is not initialized.");
     return GetInteropDelegate<GetMediaDuration>().Invoke(mediaInstance);
 }
 public void ParseMediaAsync(VlcMediaInstance mediaPlayerInstance)
 {
     if (mediaPlayerInstance == IntPtr.Zero)
         throw new ArgumentException("Media player instance is not initialized.");
     GetInteropDelegate<ParseMediaAsync>().Invoke(mediaPlayerInstance);
 }