예제 #1
0
        public static void UnlockCalback(IntPtr opaque, ref IntPtr picture, ref IntPtr planes)
        {
            VLCMediaPlayer _this = PtrToMediaPlayer(opaque);


            _this.videoBuffer.Unlock();
        }
예제 #2
0
        public static void DisplayCalback(IntPtr opaque, ref IntPtr picture)
        {
            VLCMediaPlayer _this = PtrToMediaPlayer(opaque);


            _this.NewFrame();


            System.GC.Collect();
        }
예제 #3
0
        public static IntPtr LockCalback(IntPtr opaque, ref IntPtr planes)
        {
            VLCMediaPlayer _this = PtrToMediaPlayer(opaque);



            planes = _this.videoBuffer.Lock();

            return(IntPtr.Zero);
        }
예제 #4
0
        public bool OpenMediaFromMedia(VLCMedia media)
        {
            if (media == null)
            {
                return(false);
            }

            player        = new VLCMediaPlayer(lib, media);
            player.width  = width;
            player.height = height;

            if (player == null)
            {
                return(false);
            }

            player.NewFrameEvent += delegate(object sender, INewFrameEventArgs e) {
                //Gtk.Application.Invoke (delegate {
                //Gdk.Pixbuf old =  output.Pixbuf;
                Gdk.Pixbuf old = output.Pixbuf;

                output.Pixbuf = (Gdk.Pixbuf)e.frame.Clone();

                if (old != null)
                {
                    old.Dispose();
                    old = null;
                }

                //if(old!=null)
                //{
                //old.Dispose();
                //old = null;
                //}

                //});

                if (NewFrameEvent != null)
                {
                    NewFrameEvent(sender, e);
                }

                System.GC.Collect();
            };

            //player.SetDrawable (output);

            return(true);
        }
예제 #5
0
        public VLCEventManager(VLCMediaPlayer player)
        {
            _instance = VLCNative.MediaPlayer.libvlc_media_player_event_manager(player.Handler);
            _this     = GCHandle.Alloc(this);


            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaMetaChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaSubItemAdded, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaDurationChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaParsedChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaFreed, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaStateChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaSubItemTreeAdded, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerMediaChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerNothingSpecial, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerOpening, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerBuffering, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerPlaying, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerPaused, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerStopped, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerForward, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerBackward, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerEndReached, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerEncounteredError, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerPositionChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerSeekableChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerPausableChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerTitleChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerSnapshotTaken, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerLengthChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerVout, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerScrambledChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerESAdded, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerESDeleted, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerESSelected, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerCorked, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerUncorked, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerMuted, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerUnmuted, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerAudioVolume, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerAudioDevice, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaPlayerChapterChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaListItemAdded, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaListWillAddItem, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaListItemDeleted, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaListWillDeleteItem, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaListEndReached, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaListViewItemAdded, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaListViewWillAddItem, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaListViewItemDeleted, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaListViewWillDeleteItem, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaListPlayerPlayed, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaListPlayerNextItemSet, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaListPlayerStopped, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaDiscovererStarted, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_MediaDiscovererEnded, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_VlmMediaAdded, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_VlmMediaRemoved, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_VlmMediaChanged, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_VlmMediaInstanceStarted, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_VlmMediaInstanceStopped, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_VlmMediaInstanceStatusInit, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_VlmMediaInstanceStatusOpening, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_VlmMediaInstanceStatusPlaying, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_VlmMediaInstanceStatusPause, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_VlmMediaInstanceStatusEnd, Event_Process);
            Attach(VLCNative.libvlc_event_type_t.libvlc_VlmMediaInstanceStatusError, Event_Process);
        }