protected override void MediaPlayerEventOccured(ref libvlc_event_t libvlc_event, IntPtr userData)
 {
    switch (libvlc_event.type)
    {
       case libvlc_event_e.libvlc_MediaListPlayerPlayed:
          if (m_mediaListPlayerPlayed != null)
          {
             m_mediaListPlayerPlayed(m_eventProvider, EventArgs.Empty);
          }
          break;
       case libvlc_event_e.libvlc_MediaListPlayerNextItemSet:
          if (m_mediaListPlayerNextItemSet != null)
          {
             BasicMedia media = new BasicMedia(libvlc_event.media_list_player_next_item_set.item, ReferenceCountAction.AddRef);
             m_mediaListPlayerNextItemSet(m_eventProvider, new MediaListPlayerNextItemSet(media));
             //media.Release();
          }
          break;
       case libvlc_event_e.libvlc_MediaListPlayerStopped:
          if(m_mediaListPlayerStopped != null)
          {
             m_mediaListPlayerStopped(m_eventProvider, EventArgs.Empty);
          }
          break;
    }
 }
      protected override void MediaPlayerEventOccured(ref libvlc_event_t libvlc_event, IntPtr userData)
      {
         switch (libvlc_event.type)
         {
            case libvlc_event_e.libvlc_MediaPlayerTimeChanged:
               RaiseTimeChanged(libvlc_event.media_player_time_changed.new_time);
               break;

            case libvlc_event_e.libvlc_MediaPlayerEndReached:
               RaiseMediaEnded();
               break;

            case libvlc_event_e.libvlc_MediaPlayerMediaChanged:
               if (m_mediaChanged != null)
               {
                  BasicMedia media = new BasicMedia(libvlc_event.media_player_media_changed.new_media, ReferenceCountAction.AddRef);
                  m_mediaChanged(m_eventProvider, new MediaPlayerMediaChanged(media));
                  //media.Release();
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerNothingSpecial:
               if (m_nothingSpecial != null)
               {
                  m_nothingSpecial(m_eventProvider, EventArgs.Empty);
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerOpening:
               if (m_playerOpening != null)
               {
                  m_playerOpening(m_eventProvider, EventArgs.Empty);
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerBuffering:
               if (m_playerBuffering != null)
               {
                  m_playerBuffering(m_eventProvider, EventArgs.Empty);
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerPlaying:
               if (m_playerPlaying != null)
               {
                  m_playerPlaying(m_eventProvider, EventArgs.Empty);
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerPaused:
               if (m_playerPaused != null)
               {
                  m_playerPaused(m_eventProvider, EventArgs.Empty);
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerStopped:
               if (m_playerStopped != null)
               {
                  m_playerStopped(m_eventProvider, EventArgs.Empty); 
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerForward:
               if (m_playerForward != null)
               {
                  m_playerForward(m_eventProvider, EventArgs.Empty);
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerBackward:
               if (m_playerPaused != null)
               {
                  m_playerPaused(m_eventProvider, EventArgs.Empty);
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerEncounteredError:
               if (m_playerEncounteredError != null)
               {
                  m_playerEncounteredError(m_eventProvider, EventArgs.Empty);
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerPositionChanged:
               if (m_playerPositionChanged != null)
               {
                  m_playerPositionChanged(m_eventProvider, new MediaPlayerPositionChanged(libvlc_event.media_player_position_changed.new_position));
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerSeekableChanged:
               if (m_playerSeekableChanged != null)
               {
                  m_playerSeekableChanged(m_eventProvider, new MediaPlayerSeekableChanged(libvlc_event.media_player_seekable_changed.new_seekable));
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerPausableChanged:
               if (m_playerPausableChanged != null)
               {
                  m_playerPausableChanged(m_eventProvider, new MediaPlayerPausableChanged(libvlc_event.media_player_pausable_changed.new_pausable));
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerTitleChanged:
               if (m_playerTitleChanged != null)
               {
                  m_playerTitleChanged(m_eventProvider, new MediaPlayerTitleChanged(libvlc_event.media_player_title_changed.new_title));
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerSnapshotTaken:
               if (m_playerSnapshotTaken != null)
               {
                  m_playerSnapshotTaken(m_eventProvider, new MediaPlayerSnapshotTaken(Marshal.PtrToStringAuto(libvlc_event.media_player_snapshot_taken.psz_filename)));
               }
               break;

            case libvlc_event_e.libvlc_MediaPlayerLengthChanged:
               if (m_playerLengthChanged != null)
               {
                  m_playerLengthChanged(m_eventProvider, new MediaPlayerLengthChanged(libvlc_event.media_player_length_changed.new_length));
               }
               break;
         }       
      }