/// <summary> /// Set decoded video chroma and dimensions. This only works in combination with /// <see cref="SetVideoCallbacks" /> /// </summary> /// <param name="videoFormat">Callback to select the video format (cannot be NULL)</param> /// <param name="cleanup">Callback to release any allocated resources (or NULL)</param> public void SetVideoFormatCallbacks(VideoFormatCallback videoFormat, CleanupVideoCallback cleanup) { if (videoFormat == null) { throw new ArgumentNullException(nameof(videoFormat)); } this._videoFormatCallbackReference = videoFormat; this._cleanupCallbackReference = cleanup; this.Manager.SetVideoFormatCallbacks(this.myMediaPlayerInstance, this._videoFormatCallbackReference, this._cleanupCallbackReference); }
public MemoryRendererEx(IntPtr hMediaPlayer) { m_hMediaPlayer = hMediaPlayer; LockEventHandler leh = OnpLock; DisplayEventHandler deh = OnpDisplay; VideoFormatCallback formatCallback = OnFormatCallback; pFormatCallback = Marshal.GetFunctionPointerForDelegate(formatCallback); pLockCallback = Marshal.GetFunctionPointerForDelegate(leh); pDisplayCallback = Marshal.GetFunctionPointerForDelegate(deh); m_callbacks.Add(leh); m_callbacks.Add(deh); m_callbacks.Add(formatCallback); m_timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); m_timer.Interval = 1000; SAR = AspectRatio.Default; LibVlcMethods.libvlc_video_set_format_callbacks(m_hMediaPlayer, pFormatCallback, IntPtr.Zero); LibVlcMethods.libvlc_video_set_callbacks(m_hMediaPlayer, pLockCallback, IntPtr.Zero, pDisplayCallback, IntPtr.Zero); }
public void SetVideoFormatCallback(VideoFormatCallback formatCallback, VideoCleanupCallback cleanupCallback) { _setVideoFormatCallbackFunction.Delegate(InstancePointer, formatCallback, cleanupCallback); }
public void Initialize(String libVlcPath, String[] libVlcOption) { if (ApiManager.IsInitialized) return; ApiManager.Initialize(libVlcPath, libVlcOption); VlcMediaPlayer = ApiManager.Vlc.CreateMediaPlayer(); VlcMediaPlayer.PositionChanged += VlcMediaPlayerPositionChanged; VlcMediaPlayer.TimeChanged += VlcMediaPlayerTimeChanged; VlcMediaPlayer.Playing += VlcMediaPlayerStateChanged; VlcMediaPlayer.Paused += VlcMediaPlayerStateChanged; VlcMediaPlayer.Stoped += VlcMediaPlayerStateChanged; VlcMediaPlayer.Opening += VlcMediaPlayerStateChanged; VlcMediaPlayer.Buffering += VlcMediaPlayerStateChanged; VlcMediaPlayer.EndReached += VlcMediaPlayerStateChanged; VlcMediaPlayer.SeekableChanged += VlcMediaPlayerSeekableChanged; VlcMediaPlayer.LengthChanged += VlcMediaPlayerLengthChanged; _lockCallback = VideoLockCallback; _unlockCallback = VideoUnlockCallback; _displayCallback = VideoDisplayCallback; _formatCallback = VideoFormatCallback; _cleanupCallback = VideoCleanupCallback; _lockCallbackHandle = GCHandle.Alloc(_lockCallback); _unlockCallbackHandle = GCHandle.Alloc(_unlockCallback); _displayCallbackHandle = GCHandle.Alloc(_displayCallback); _formatCallbackHandle = GCHandle.Alloc(_formatCallback); _cleanupCallbackHandle = GCHandle.Alloc(_cleanupCallback); }
/// <summary> /// Initialize VLC player with path of LibVlc and options. /// </summary> /// <param name="libVlcPath"></param> /// <param name="libVlcOption"></param> public void Initialize(String libVlcPath, params String[] libVlcOption) { if (!ApiManager.IsInitialized) { ApiManager.Initialize(libVlcPath, libVlcOption); } switch (CreateMode) { case PlayerCreateMode.NewVlcInstance: var vlc = new Vlc(libVlcOption); VlcMediaPlayer = vlc.CreateMediaPlayer(); ApiManager.Vlcs.Add(vlc); break; case PlayerCreateMode.Default: default: VlcMediaPlayer = ApiManager.DefaultVlc.CreateMediaPlayer(); break; } if (VlcMediaPlayer != null) { VlcMediaPlayer.PositionChanged += VlcMediaPlayerPositionChanged; VlcMediaPlayer.TimeChanged += VlcMediaPlayerTimeChanged; VlcMediaPlayer.Playing += VlcMediaPlayerStateChanged; VlcMediaPlayer.Paused += VlcMediaPlayerStateChanged; VlcMediaPlayer.Stoped += VlcMediaPlayerStateChanged; VlcMediaPlayer.Opening += VlcMediaPlayerStateChanged; VlcMediaPlayer.Buffering += VlcMediaPlayerStateChanged; VlcMediaPlayer.EndReached += VlcMediaPlayerStateChanged; VlcMediaPlayer.SeekableChanged += VlcMediaPlayerSeekableChanged; VlcMediaPlayer.LengthChanged += VlcMediaPlayerLengthChanged; _lockCallback = VideoLockCallback; _unlockCallback = VideoUnlockCallback; _displayCallback = VideoDisplayCallback; _formatCallback = VideoFormatCallback; _cleanupCallback = VideoCleanupCallback; //_audioSetupCallback = AudioFormatSetupCallback; //_audioCleanupCallback = AudioFormatCleanupCallback; //_audioPlayCallback = AudioPlayCallback; //_audioPauseCallback = AudioPauseCallback; //_audioResumeCallback = AudioResumeCallback; //_audioFlushCallback = AudioFlushCallback; //_audioDrainCallback = AudioDrainCallback; //_audioSetVolumeCallback = AudioSetVolumeCallback; _lockCallbackHandle = GCHandle.Alloc(_lockCallback); _unlockCallbackHandle = GCHandle.Alloc(_unlockCallback); _displayCallbackHandle = GCHandle.Alloc(_displayCallback); _formatCallbackHandle = GCHandle.Alloc(_formatCallback); _cleanupCallbackHandle = GCHandle.Alloc(_cleanupCallback); //_audioSetupCallbackHandle = GCHandle.Alloc(_audioSetupCallback); //_audioCleanupCallbackHandle = GCHandle.Alloc(_audioCleanupCallback); //_audioPlayCallbackHandle = GCHandle.Alloc(_audioPlayCallback); //_audioPauseCallbackHandle = GCHandle.Alloc(_audioPauseCallback); //_audioResumeCallbackHandle = GCHandle.Alloc(_audioResumeCallback); //_audioFlushCallbackHandle = GCHandle.Alloc(_audioFlushCallback); //_audioDrainCallbackHandle = GCHandle.Alloc(_audioDrainCallback); //_audioSetVolumeCallbackHandle = GCHandle.Alloc(_audioSetVolumeCallback); VlcMediaPlayer.SetVideoDecodeCallback(_lockCallback, _unlockCallback, _displayCallback, IntPtr.Zero); VlcMediaPlayer.SetVideoFormatCallback(_formatCallback, _cleanupCallback); //VlcMediaPlayer.SetAudioCallback(_audioPlayCallback, _audioPauseCallback, _audioResumeCallback, _audioFlushCallback, _audioDrainCallback); //VlcMediaPlayer.SetAudioFormatCallback(_audioSetupCallback, _audioCleanupCallback); //VlcMediaPlayer.SetAudioVolumeCallback(_audioSetVolumeCallback); } }
/// <summary> /// Initialize VLC player with path of LibVlc and options. /// </summary> /// <param name="libVlcPath"></param> /// <param name="libVlcOption"></param> public void Initialize(string libVlcPath, params string[] libVlcOption) { if (!ApiManager.IsInitialized) { ApiManager.Initialize(libVlcPath, libVlcOption); } if (VlcMediaPlayer != null) { throw new InvalidOperationException("VlcPlayer is been initialized."); } switch (CreateMode) { case PlayerCreateMode.NewVlcInstance: Vlc = new Vlc(libVlcOption); ApiManager.Vlcs.Add(Vlc); break; case PlayerCreateMode.Default: default: Vlc = ApiManager.DefaultVlc; break; } VlcMediaPlayer player = Vlc.CreateMediaPlayer(); _lockCallback = VideoLockCallback; _unlockCallback = VideoUnlockCallback; _displayCallback = VideoDisplayCallback; _formatCallback = VideoFormatCallback; _cleanupCallback = VideoCleanupCallback; //_audioSetupCallback = AudioFormatSetupCallback; //_audioCleanupCallback = AudioFormatCleanupCallback; //_audioPlayCallback = AudioPlayCallback; //_audioPauseCallback = AudioPauseCallback; //_audioResumeCallback = AudioResumeCallback; //_audioFlushCallback = AudioFlushCallback; //_audioDrainCallback = AudioDrainCallback; //_audioSetVolumeCallback = AudioSetVolumeCallback; _lockCallbackHandle = GCHandle.Alloc(_lockCallback); _unlockCallbackHandle = GCHandle.Alloc(_unlockCallback); _displayCallbackHandle = GCHandle.Alloc(_displayCallback); _formatCallbackHandle = GCHandle.Alloc(_formatCallback); _cleanupCallbackHandle = GCHandle.Alloc(_cleanupCallback); //_audioSetupCallbackHandle = GCHandle.Alloc(_audioSetupCallback); //_audioCleanupCallbackHandle = GCHandle.Alloc(_audioCleanupCallback); //_audioPlayCallbackHandle = GCHandle.Alloc(_audioPlayCallback); //_audioPauseCallbackHandle = GCHandle.Alloc(_audioPauseCallback); //_audioResumeCallbackHandle = GCHandle.Alloc(_audioResumeCallback); //_audioFlushCallbackHandle = GCHandle.Alloc(_audioFlushCallback); //_audioDrainCallbackHandle = GCHandle.Alloc(_audioDrainCallback); //_audioSetVolumeCallbackHandle = GCHandle.Alloc(_audioSetVolumeCallback); if (player == null) { throw new Exception("Vlc media player initialize fail."); } AttachPlayer(player); }
public void SetVideoFormatCallbacks(VideoFormatCallback videoFormatCallback, CleanupVideoCallback cleanupCallback) { myManager.GetInteropDelegate <SetVideoFormatCallbacks>().Invoke(this.Pointer, videoFormatCallback, cleanupCallback); }
public void SetVideoFormatCallback(VideoFormatCallback formatCallback, VideoCleanupCallback cleanupCallback) { SetVideoFormatCallbackFunction.Delegate(InstancePointer, formatCallback, cleanupCallback); }
public void SetVideoFormatCallbacks(VlcMediaPlayerInstance mediaPlayerInstance, VideoFormatCallback videoFormatCallback, CleanupVideoCallback cleanupCallback) { if (mediaPlayerInstance == IntPtr.Zero) { throw new ArgumentException("Media player instance is not initialized."); } myLibraryLoader.GetInteropDelegate <SetVideoFormatCallbacks>().Invoke(mediaPlayerInstance, videoFormatCallback, cleanupCallback); }