2019.03.24 Modify Stop procedure inspired by Rob Renaud modified procedure: procedure Stop(const stopTimeOut : Cardinal = 1000); 2018.09.18 Fix Play declaration for compatible with D4 2018.07.13 Fix resize bug under FPC 1.8.x reported by Mukataï Mukatai affected procedures: procedure WMEraseBkgnd(var msg: ...); message ...; 2018.07.01 Add support for media callbacks inspired by Mark Adamson new procedure: procedure Play(stm : TStream, ...); overload; 2018.06.29 Remove duplicated code affected procedures: procedure Play (...); overload; procedure PlayNormal (...); overload; procedure PlayYoutube(...); overload; 2018.06.25 Fix copy paste bug reported by bnop90 affected procedures: procedure Play(mrl: WideString; mediaOptions : array of WideString; ...); overload; 2018.06.11 Extend parameters: inspired by Wortmann Sándor affected procedures: procedure TPasLibVlcMediaList.Add(mrl : WideString; mediaOptions : array of WideString); 2018.06.05 Correct PlayYoutube reported by Ahmet Yeşilçimen 2018.04.26 Correct version comment 2018.03.11 Update for better compatibility with libvlc 3.0.0 New events: libvlc_MediaPlayerESAdded, libvlc_MediaPlayerESDeleted, libvlc_MediaPlayerESSelected, libvlc_MediaPlayerAudioDevice, libvlc_MediaPlayerChapterChanged, libvlc_RendererDiscovererItemAdded, libvlc_RendererDiscovererItemDeleted, 2018.01.02 Extend parameters: inspired by "Christian Koch" required to add ":cdda-track=1" as option to the media affected procedures: procedure Play (mrl: WideString; mediaOptions : array of WideString; ...); overload; procedure PlayNormal (mrl: WideString; mediaOptions : array of WideString; ...); overload; procedure PlayYoutube(mrl: WideString; mediaOptions : array of WideString; ...); overload; 2017.12.05 New functions: GetVideoSampleAspectRatio 2017.04.11 Correct media list event handler WillAddItem reported by "Adolfo Ramirez" OnItemAdded => OnWillAddItem 2016.11.28 Update Equalizer function declarations for compile with BC6. reported by "Woldemar Unknown" 2016.10.18 Updated for compile under Lazarus 1.6.0 + FPC 3.0.0. 2016.10.08 Cleanup and add support for adjust video: procedure SetVideoAdjustEnable(value : Boolean); procedure SetVideoAdjustContrast(value : Single); procedure SetVideoAdjustBrightness(value : Single); procedure SetVideoAdjustHue(value : Single); procedure SetVideoAdjustSaturation(value : Single); procedure SetVideoAdjustGamma(value : Single); function GetVideoAdjustEnable(): Boolean; function GetVideoAdjustContrast() : Single; function GetVideoAdjustBrightness() : Single; function GetVideoAdjustHue():Single; function GetVideoAdjustSaturation():Single; function GetVideoAdjustGamma():Single; 2016.10.04 Update for better compatibility with libvlc 2.2.4 New functions: GetAudioFilterList(): TStringList; GetVideoFilterList(): TStringList; 2016.05.08 Update for allow change audio output New functions: GetAudioOutputList GetAudioOutputDeviceList GetAudioOutputDeviceEnum SetAudioOutput SetAudioOutputDevice SetAudioOutputDevice Changed functions: Play PlayNormal PlayYoutube New properties: LastAudioOutput LastAudioOutputDeviceId 2016.02.12 Update for better compatibility with libvlc 2.2.2 New events: libvlc_MediaPlayerCorked libvlc_MediaPlayerUncorked, libvlc_MediaPlayerMuted, libvlc_MediaPlayerUnmuted, libvlc_MediaPlayerAudioVolume 2015.02.28 Updated for better support version 2.2.0 New functions: EqualizerGetPresetList(): TStringList; EqualizerGetBandCount(): Word; EqualizerGetBandFrequency(bandIndex : Word): Single; EqualizerCreate(APreset : Word = $FFFF) : TPasLibVlcEqualizer; EqualizerApply(AEqualizer : TPasLibVlcEqualizer); EqualizerSetPreset(APreset : Word = $FFFF); GetAudioOutputDeviceEnumList(): TStringList; SetAudioOutputDevice(aOut: WideString; device_id: WideString); SetAudioOutputDevice(device_id: WideString); New events: libvlc_MediaPlayerVout libvlc_MediaPlayerScrambledChanged fix function SetAudioMute reported by "Moisés Ribeiro" 2015.02.01 New property: MouseEventsHandler inspired by: Beat Schlösser New functions: GetAudioOutputList(): TStringList; GetAudioOutputDeviceList(aOut : WideString): TStringList; inspired by: Tom Wideroe GetVideoDimension(var width, height: LongWord): Boolean; GetVideoChapterCountByTitleId(const title_id : Integer): Integer; GetVideoSubtitleList(): TStringList; GetVideoSubtitleCount(): Integer; GetVideoSubtitleCountByTitleId(const title_id : Integer): Integer; GetVideoSubtitleId(): Integer; SetVideoSubtitleById(const subtitle_id : Integer); GetVideoSubtitleNo(): Integer; SetVideoSubtitleByNo(subtitle_no : Integer); GetVideoSubtitleDescriptionById(const subtitle_id : Integer): WideString; GetVideoSubtitleDescriptionByNo(subtitle_no : Integer): WideString; SetVideoSubtitleFile(filename : WideString); GetVideoTitleList() : TStringList; GetVideoTitleCount(): Integer; GetVideoTitleId():Integer; SetVideoTitleById(const title_id:Integer); GetVideoTitleNo(): Integer; SetVideoTitleByNo(title_no : Integer); GetVideoTitleDescriptionById(const track_id : Integer): WideString; GetVideoTitleDescriptionByNo(title_no : Integer): WideString; inspired by: Sebastián Mayorá Rename functions: GetAspectRatio() to GetVideoAspectRatio() SetAspectRatio() to SetVideoAspectRatio() GetChannel() to GetAudioChannel() SetChannel() to SetAudioChannel() 2015.01.31 New functions: GetAudioOutputList(): TStringList; GetAudioOutputDeviceList(aOut : WideString): TStringList; inspired by: Tom Widerøe 2015.01.06 New property MouseEventsHandler inspired by: Beat Schlösser New function: GetVideoDimension(var width, height: LongWord): Boolean; 2014.07.12 Add new functions: GetVideoChapterCountByTitleId(const title_id : Integer): Integer; GetVideoSubtitleList(): TStringList; GetVideoSubtitleCount(): Integer; GetVideoSubtitleCountByTitleId(const title_id : Integer): Integer; GetVideoSubtitleId(): Integer; SetVideoSubtitleById(const subtitle_id : Integer); GetVideoSubtitleNo(): Integer; SetVideoSubtitleByNo(subtitle_no : Integer); GetVideoSubtitleDescriptionById(const subtitle_id : Integer): WideString; GetVideoSubtitleDescriptionByNo(subtitle_no : Integer): WideString; SetVideoSubtitleFile(filename : WideString); GetVideoTitleList() : TStringList; GetVideoTitleCount(): Integer; GetVideoTitleId():Integer; SetVideoTitleById(const title_id:Integer); GetVideoTitleNo(): Integer; SetVideoTitleByNo(title_no : Integer); GetVideoTitleDescriptionById(const track_id : Integer): WideString; GetVideoTitleDescriptionByNo(title_no : Integer): WideString; inspired by: Sebastián Mayorá rename functions: GetAspectRatio() to GetVideoAspectRatio() SetAspectRatio() to SetVideoAspectRatio() GetChannel() to GetAudioChannel() SetChannel() to SetAudioChannel() 2014.06.28 Add new functions: MarqueeShowText(); MarqueeHide(); MarqueeSetText(marquee_text : WideString); MarqueeSetPosition(position_x, position_y : Integer); overload; MarqueeSetPosition(position : libvlc_position_t); overload; MarqueeSetColor(color : libvlc_video_marquee_color_t); MarqueeSetFontSize(font_size: Integer); MarqueeSetOpacity(opacity: libvlc_opacity_t); MarqueeSetTimeOut(time_out_ms: Integer); MarqueeSetRefresh(refresh_after_ms: Integer); MarqueeSetEnable(enable : Integer); LogoShowFile(); LogoShowFiles(); LogoHide(); LogoSetFile(); LogoSetFiles(); LogoSetPosition(); LogoSetOpacity(); LogoSetDelay(); LogoSetRepeat(); LogoSetEnable(); GetAudioTrackList(); GetAudioTrackId(); SetAudioTrackById(); SetAudioTrackByNo(); GetAudioTrackDescriptionByNo(); GetAudioTrackDescriptionById(); Remove functions: SetAudioTrack(); GetAudioTrackDescription(); Add new deinterlace filters: dmPHOSPHOR, dmIVTC inspired by Chris Improve to play normal and youtube streams Play(); 2013.12.11 Add new functions: IsPause() GetMediaMrl(); GetStateName(); writed by John Brookman Add better support for Delphi XE2 and up Add 64 bit demo compiled with Delphi XE2 this demo request 64 bit VideoLAN requested by John Brookman Repair small bug in function TPasLibVlcPlayer.GetVideoHeight(): LongInt; return wideo width not height Reported by: "Dr Christoph Camphausen" Rewrite OnMediaChanged event handler Now report current media MRL Requested by: "Eduan Slabbert" Check compatibility with version 2.1.2 2013.11.23 New properties AudioOutput VideoOutput 2013.10.20 Verify compatibility with libvlc 2.1.0 Add local UTF8Encode and UTF8Decode for Delphi 3, 4, 5 Requested by: "Johan Keizer" 2013.08.25 Add support for FPC LCL QT4 and FPC LCL GTK2 (LINUX, WIN) Test on Kubuntu and Windows XP SP2 + VLC 2.0.8 2013.08.18 Fix incorrect position of MouseEventWinCtrl if Player placed inside TPanel control aligned to right side of form. Request by: wilber27@users.sourceforge.net 2013.04.26 Improve events handling Add new properties: OsdShow default true SpuShow default true SnapshotPrv default false Add conditional code compilation for support Delphi 7 Thanks to: 1024317@qq.com 2013.01.31 Rewrite events handling 2012.10.28 Add compiler options {$A4,Z4} or {A+,Z+} for Delphi < 6 Add property TPasLibVlcPlayer.StartOptions Now each player component use own instance of libvlc. 2012.07.27 new property TPasLibVlcPlayer.UseEvents default FALSE fix bug in TPasLibVlcPlayer.function EventsEnable: if (p_mi = NIL) then -> if (p_mi <> NIL) then add function TPasLibVlcPlayer.Stop add try..finally in TPasLibVlcPlayer.Destroy 2012.07.20 Add critical section to improve calls from event handlers 2011.08.22 Crossplatform modifications (Linux) Request by: "Maloupi" 2011.08.20 add new functions: function GetChannel(): Integer; function GetAudioDelay(): Int64; procedure SetChannel(chanel: Integer); procedure SetAudioDelay(delay: Int64); 2011.08.20 add new functions: function GetAudioTrackCount(): Integer; function GetAudioTrackDescription(track: Integer): String; function GetAudioTrack(): Integer; procedure SetAudioTrack(track: Integer); Request by: Mark Schneider 2011.08.20 add new feature: load vlc.dll from custom path VLC.Path := YOUR CUSTOM PATH Requested by: "Mark Schneider" 2011.08.19 add properties to deinterlace filter Requested by: "Mark Schneider" 2011.04.06 add new functions: SetPlayRate() - change current play rate GetPlayRate() - return current play rate playRate = 100 - play with normal speed playRate = 200 - play with speed x 2 playRate = 50 - play with slow speed is 0.5 Requested by: Johann Mitterhauser <> 2011.02.11 make compatibile with Lazarus Requested by: Christian cf. Fillion 2011.02.08 simple help for play YouTube video links Now Play function detect YouTube link, and play it correctly. Requested by: Christian cf. Fillion 2011.01.05 add new functions: GetVideoLenStr() - return video length as time string GetVideoPosStr() - return video position as time string Requested by: Edijs van Kole de McSnikovics 2011.01.05 add new properties: PopupMenu, etc. Requested by: Edijs van Kole de McSnikovics 2011.01.04 correct creation of VCL at runtime, error: control '' has no parent window This error will be found by: Edijs van Kole de McSnikovics 2011.01.03 rename variable: FHideTitle to FShowTitle if ShowTitle = TRUE then SHOW title at begin of play if ShowTitle = FALSE then HIDE title at begin of play default value: FALSE 2010.12.08 Add support for version 1.1.5, new properties: HideTitle - if TRUE prevent display title at begin of play, default TRUE UseEvents - if TRUE then enable event propagation, default FALSE 2010.10.01 Add support for unicode file names 2010.07.22 Add support for set/get Audio Volume Level 2010.09.02 Add support for version 1.1.4 2010.07.14 Change PChar to PAnsiChar Requested by: David Nottage, davidnottage@gmail.com