1{
2    Copyright (c) 2012 by Michael Van Canneyt
3    member of the Free Pascal development team
4
5    This is a translation of the VLC library headers.
6    The original VLC library license applies if you use the VLC libraries.
7    See http://www.videolan.org/ for license details.
8
9    See the file COPYING.FPC, included in this distribution,
10    for details about the copyright.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15
16 **********************************************************************}
17
18{$mode objfpc}
19unit libvlc;
20interface
21
22uses
23  ctypes;
24
25{$IFDEF FPC}
26{$PACKRECORDS C}
27{$ENDIF}
28
29Const
30
31{$ifdef unix}
32  libname = 'libvlc.so.5';
33{$else}
34{$ifdef windows}
35  corelibname    = 'libvlccore.dll';
36  libname        = 'libvlc.dll';
37var
38  DefaultlibPath: String;
39{$endif}
40{$endif}
41
42  Type
43  _bool = cint;
44   Ppcchar = ^Pcchar;
45
46  // Opaque types.
47  libvlc_event_manager_t = record end;
48  Libvlc_instance_t = record end;
49  Libvlc_log_iterator_t = record end;
50  Libvlc_log_t = record end;
51  Libvlc_media_discoverer_t = record end;
52  Libvlc_media_library_t = record end;
53  Libvlc_media_list_player_t = record end;
54  Libvlc_media_list_t = record end;
55  Libvlc_media_player_t = record end;
56  Libvlc_media_t = record end;
57
58  Plibvlc_audio_output_t  = ^libvlc_audio_output_t;
59  Plibvlc_event_manager_t  = ^libvlc_event_manager_t;
60  Plibvlc_event_t  = ^libvlc_event_t;
61  Plibvlc_instance_t  = ^libvlc_instance_t;
62  Plibvlc_log_iterator_t  = ^libvlc_log_iterator_t;
63  Plibvlc_log_message_t  = ^libvlc_log_message_t;
64  Plibvlc_log_t  = ^libvlc_log_t;
65  Plibvlc_media_discoverer_t  = ^libvlc_media_discoverer_t;
66  Plibvlc_media_library_t  = ^libvlc_media_library_t;
67  Plibvlc_media_list_player_t  = ^libvlc_media_list_player_t;
68  Plibvlc_media_list_t  = ^libvlc_media_list_t;
69  Plibvlc_media_player_t  = ^libvlc_media_player_t;
70  Plibvlc_media_stats_t  = ^libvlc_media_stats_t;
71  Plibvlc_media_t  = ^libvlc_media_t;
72  Plibvlc_media_track_info_t  = ^libvlc_media_track_info_t;
73  Plibvlc_module_description_t  = ^libvlc_module_description_t;
74  Plibvlc_track_description_t  = ^libvlc_track_description_t;
75
76
77  int8_t = cschar;
78  int16_t = csint;
79  int32_t = cint;
80  int64_t = cint64;
81  uint8_t = cuchar;
82  uint16_t = csint;
83  uint32_t = cuint;
84  uint64_t = cuint64;
85  int_least8_t = cschar;
86  int_least16_t = csint;
87  int_least32_t = cint;
88  int_least64_t = cint64;
89  uint_least8_t = cuchar;
90  uint_least16_t = csint;
91  uint_least32_t = cuint;
92  uint_least64_t = cuint64;
93  int_fast8_t = cschar;
94  int_fast16_t = clong;
95  int_fast32_t = clong;
96  int_fast64_t = cint64;
97  uint_fast8_t = cuchar;
98  uint_fast16_t = culong;
99  uint_fast32_t = culong;
100  uint_fast64_t = cuint64;
101
102  intptr_t = PtrInt;
103  uintptr_t = PtrUInt;
104  intmax_t = cint64;
105  uintmax_t = cuint64;
106
107
108  libvlc_time_t = int64_t;
109  libvlc_log_message_t = record
110    i_severity : cint;
111    psz_type : ^cchar;
112    psz_name : ^cchar;
113    psz_header : ^cchar;
114    psz_message : ^cchar;
115  end;
116
117  libvlc_event_type_t = cint;
118  libvlc_callback_t = procedure (_para1:Plibvlc_event_t; _para2:pointer);cdecl;
119
120  libvlc_module_description_t = record
121    psz_name : ^cchar;
122    psz_shortname : ^cchar;
123    psz_longname : ^cchar;
124    psz_help : ^cchar;
125    p_next : ^libvlc_module_description_t;
126  end;
127
128{
129static inline int64_t libvlc_delay(int64_t pts)
130
131    return pts - libvlc_clock();
132
133 }
134
135
136  libvlc_meta_t = (libvlc_meta_Title,libvlc_meta_Artist,
137    libvlc_meta_Genre,libvlc_meta_Copyright,
138    libvlc_meta_Album,libvlc_meta_TrackNumber,
139    libvlc_meta_Description,libvlc_meta_Rating,
140    libvlc_meta_Date,libvlc_meta_Setting,
141    libvlc_meta_URL,libvlc_meta_Language,
142    libvlc_meta_NowPlaying,libvlc_meta_Publisher,
143    libvlc_meta_EncodedBy,libvlc_meta_ArtworkURL,
144    libvlc_meta_TrackID);
145
146  libvlc_state_t = (libvlc_NothingSpecial := 0,libvlc_Opening,
147    libvlc_Buffering,libvlc_Playing,libvlc_Paused,
148    libvlc_Stopped,libvlc_Ended,libvlc_Error
149    );
150
151  libvlc_media_option_t = (libvlc_media_option_trusted := $2,libvlc_media_option_unique := $100
152    );
153
154  libvlc_track_type_t = (libvlc_track_unknown := -(1),libvlc_track_audio := 0,
155    libvlc_track_video := 1,libvlc_track_text := 2
156    );
157
158  libvlc_media_stats_t = record
159    i_read_bytes : cint;
160    f_input_bitrate : cfloat;
161    i_demux_read_bytes : cint;
162    f_demux_bitrate : cfloat;
163    i_demux_corrupted : cint;
164    i_demux_discontinuity : cint;
165    i_decoded_video : cint;
166    i_decoded_audio : cint;
167    i_displayed_pictures : cint;
168    i_lost_pictures : cint;
169    i_played_abuffers : cint;
170    i_lost_abuffers : cint;
171    i_sent_packets : cint;
172    i_sent_bytes : cint;
173    f_send_bitrate : cfloat;
174  end;
175
176  libvlc_media_track_info_t = record
177    i_codec : uint32_t;
178    i_id : cint;
179    i_type : libvlc_track_type_t;
180    i_profile : cint;
181    i_level : cint;
182    u : record
183      case longint of
184        0 : ( audio : record
185            i_channels : cunsigned;
186            i_rate : cunsigned;
187          end );
188        1 : ( video : record
189            i_height : cunsigned;
190            i_width : cunsigned;
191          end );
192      end;
193  end;
194
195
196  libvlc_track_description_t = record
197    i_id : cint;
198    psz_name : ^cchar;
199    p_next : ^libvlc_track_description_t;
200  end;
201
202  libvlc_audio_output_t = record
203    psz_name : ^cchar;
204    psz_description : ^cchar;
205    p_next : ^libvlc_audio_output_t;
206  end;
207
208  libvlc_rectangle_t = record
209    top : cint;
210    left : cint;
211    bottom : cint;
212    right : cint;
213  end;
214
215  libvlc_video_marquee_option_t = (libvlc_marquee_Enable := 0,libvlc_marquee_Text,
216    libvlc_marquee_Color,libvlc_marquee_Opacity,
217    libvlc_marquee_Position,libvlc_marquee_Refresh,
218    libvlc_marquee_Size,libvlc_marquee_Timeout,
219    libvlc_marquee_X,libvlc_marquee_Y);
220
221  libvlc_navigate_mode_t = (libvlc_navigate_activate := 0,libvlc_navigate_up,
222    libvlc_navigate_down,libvlc_navigate_left,
223    libvlc_navigate_right);
224
225
226  libvlc_video_lock_cb = function (opaque:pointer; planes:Ppointer):pointer;cdecl;
227  libvlc_video_unlock_cb = procedure (opaque:pointer; picture:pointer; planes:Ppointer);cdecl;
228  libvlc_video_display_cb = procedure (opaque:pointer; picture:pointer);cdecl;
229  libvlc_video_format_cb = function (opaque:Ppointer; chroma:pcchar; width:pcunsigned; height:pcunsigned; pitches:pcunsigned;
230               lines:pcunsigned):cunsigned;cdecl;
231  libvlc_video_cleanup_cb = procedure (opaque:pointer);cdecl;
232  libvlc_audio_play_cb = procedure (data:pointer; samples:pointer; count:cunsigned; pts:int64_t);cdecl;
233  libvlc_audio_pause_cb = procedure (data:pointer; pts:int64_t);cdecl;
234  libvlc_audio_resume_cb = procedure (data:pointer; pts:int64_t);cdecl;
235  libvlc_audio_flush_cb = procedure (data:pointer; pts:int64_t);cdecl;
236  libvlc_audio_drain_cb = procedure (data:pointer);cdecl;
237  libvlc_audio_set_volume_cb = procedure (data:pointer; volume:cfloat; mute:_Bool);cdecl;
238  libvlc_audio_setup_cb = function (data:Ppointer; format:pcchar; rate:pcunsigned; channels:pcunsigned):cint;cdecl;
239  libvlc_audio_cleanup_cb = procedure (data:pointer);cdecl;
240  libvlc_video_logo_option_t = (libvlc_logo_enable,libvlc_logo_file,libvlc_logo_x,
241    libvlc_logo_y,libvlc_logo_delay,libvlc_logo_repeat,
242    libvlc_logo_opacity,libvlc_logo_position
243    );
244  libvlc_video_adjust_option_t = (libvlc_adjust_Enable := 0,libvlc_adjust_Contrast,
245    libvlc_adjust_Brightness,libvlc_adjust_Hue,
246    libvlc_adjust_Saturation,libvlc_adjust_Gamma
247    );
248  libvlc_audio_output_device_types_t = (libvlc_AudioOutputDevice_Error := -(1),
249    libvlc_AudioOutputDevice_Mono := 1,
250    libvlc_AudioOutputDevice_Stereo := 2,
251    libvlc_AudioOutputDevice_2F2R := 4,
252    libvlc_AudioOutputDevice_3F2R := 5,
253    libvlc_AudioOutputDevice_5_1 := 6,libvlc_AudioOutputDevice_6_1 := 7,
254    libvlc_AudioOutputDevice_7_1 := 8,libvlc_AudioOutputDevice_SPDIF := 10
255    );
256
257  libvlc_audio_output_channel_t = (libvlc_AudioChannel_Error := -(1),libvlc_AudioChannel_Stereo := 1,
258    libvlc_AudioChannel_RStereo := 2,libvlc_AudioChannel_Left := 3,
259    libvlc_AudioChannel_Right := 4,libvlc_AudioChannel_Dolbys := 5
260    );
261  libvlc_playback_mode_t = (libvlc_playback_mode_default,libvlc_playback_mode_loop,
262    libvlc_playback_mode_repeat);
263
264  libvlc_event_e = (libvlc_MediaMetaChanged := 0,
265    libvlc_MediaSubItemAdded,
266    libvlc_MediaDurationChanged,libvlc_MediaParsedChanged,
267    libvlc_MediaFreed,libvlc_MediaStateChanged,
268    libvlc_MediaPlayerMediaChanged := $100,
269    libvlc_MediaPlayerNothingSpecial,libvlc_MediaPlayerOpening,
270    libvlc_MediaPlayerBuffering,libvlc_MediaPlayerPlaying,
271    libvlc_MediaPlayerPaused,libvlc_MediaPlayerStopped,
272    libvlc_MediaPlayerForward,libvlc_MediaPlayerBackward,
273    libvlc_MediaPlayerEndReached,libvlc_MediaPlayerEncounteredError,
274    libvlc_MediaPlayerTimeChanged,libvlc_MediaPlayerPositionChanged,
275    libvlc_MediaPlayerSeekableChanged,libvlc_MediaPlayerPausableChanged,
276    libvlc_MediaPlayerTitleChanged,libvlc_MediaPlayerSnapshotTaken,
277    libvlc_MediaPlayerLengthChanged,libvlc_MediaPlayerVout,
278    libvlc_MediaListItemAdded := $200,libvlc_MediaListWillAddItem,
279    libvlc_MediaListItemDeleted,libvlc_MediaListWillDeleteItem,
280    libvlc_MediaListViewItemAdded := $300,
281    libvlc_MediaListViewWillAddItem,libvlc_MediaListViewItemDeleted,
282    libvlc_MediaListViewWillDeleteItem,libvlc_MediaListPlayerPlayed := $400,
283    libvlc_MediaListPlayerNextItemSet,libvlc_MediaListPlayerStopped,
284    libvlc_MediaDiscovererStarted := $500,
285    libvlc_MediaDiscovererEnded,libvlc_VlmMediaAdded := $600,
286    libvlc_VlmMediaRemoved,libvlc_VlmMediaChanged,
287    libvlc_VlmMediaInstanceStarted,libvlc_VlmMediaInstanceStopped,
288    libvlc_VlmMediaInstanceStatusInit,libvlc_VlmMediaInstanceStatusOpening,
289    libvlc_VlmMediaInstanceStatusPlaying,
290    libvlc_VlmMediaInstanceStatusPause,libvlc_VlmMediaInstanceStatusEnd,
291    libvlc_VlmMediaInstanceStatusError);
292
293
294  libvlc_event_t = record
295    _type : cint;
296    p_obj : pointer;
297      case longint of
298        0 : ( media_meta_changed : record
299            meta_type : libvlc_meta_t;
300          end );
301        1 : ( media_subitem_added : record
302            new_child : ^libvlc_media_t;
303          end );
304        2 : ( media_duration_changed : record
305            new_duration : int64_t;
306          end );
307        3 : ( media_parsed_changed : record
308            new_status : cint;
309          end );
310        4 : ( media_freed : record
311            md : ^libvlc_media_t;
312          end );
313        5 : ( media_state_changed : record
314            new_state : libvlc_state_t;
315          end );
316        6 : ( media_player_buffering : record
317            new_cache : cfloat;
318          end );
319        7 : ( media_player_position_changed : record
320            new_position : cfloat;
321          end );
322        8 : ( media_player_time_changed : record
323            new_time : libvlc_time_t;
324          end );
325        9 : ( media_player_title_changed : record
326            new_title : cint;
327          end );
328        10 : ( media_player_seekable_changed : record
329            new_seekable : cint;
330          end );
331        11 : ( media_player_pausable_changed : record
332            new_pausable : cint;
333          end );
334        12 : ( media_player_vout : record
335            new_count : cint;
336          end );
337        13 : ( media_list_item_added : record
338            item : ^libvlc_media_t;
339            index : cint;
340          end );
341        14 : ( media_list_will_add_item : record
342            item : ^libvlc_media_t;
343            index : cint;
344          end );
345        15 : ( media_list_item_deleted : record
346            item : ^libvlc_media_t;
347            index : cint;
348          end );
349        16 : ( media_list_will_delete_item : record
350            item : ^libvlc_media_t;
351            index : cint;
352          end );
353        17 : ( media_list_player_next_item_set : record
354            item : ^libvlc_media_t;
355          end );
356        18 : ( media_player_snapshot_taken : record
357            psz_filename : ^cchar;
358          end );
359        19 : ( media_player_length_changed : record
360            new_length : libvlc_time_t;
361          end );
362        20 : ( vlm_media_event : record
363            psz_media_name : ^cchar;
364            psz_instance_name : ^cchar;
365          end );
366        21 : ( media_player_media_changed : record
367            new_media : ^libvlc_media_t;
368          end );
369    end;
370
371  PPlibvlc_media_track_info_t = ^Plibvlc_media_track_info_t;
372  cbtype1 = procedure (_para1:pointer); cdecl;
373
374Var
375    libvlc_media_player_new : function(p_libvlc_instance:Plibvlc_instance_t):plibvlc_media_player_t; cdecl;
376    libvlc_media_player_new_from_media : function(p_md:Plibvlc_media_t):plibvlc_media_player_t; cdecl;
377    libvlc_media_player_release : procedure(p_mi:Plibvlc_media_player_t); cdecl;
378    libvlc_media_player_retain : procedure(p_mi:Plibvlc_media_player_t); cdecl;
379    libvlc_media_player_set_media : procedure(p_mi:Plibvlc_media_player_t; p_md:Plibvlc_media_t); cdecl;
380    libvlc_media_player_get_media : function(p_mi:Plibvlc_media_player_t):plibvlc_media_t; cdecl;
381    libvlc_media_player_event_manager : function(p_mi:Plibvlc_media_player_t):plibvlc_event_manager_t; cdecl;
382    libvlc_media_player_is_playing : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
383    libvlc_media_player_play : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
384    libvlc_media_player_set_pause : procedure(mp:Plibvlc_media_player_t; do_pause:cint); cdecl;
385    libvlc_media_player_pause : procedure(p_mi:Plibvlc_media_player_t); cdecl;
386    libvlc_media_player_stop : procedure(p_mi:Plibvlc_media_player_t); cdecl;
387    libvlc_media_new_location : function(p_instance:Plibvlc_instance_t; psz_mrl:pcchar):plibvlc_media_t; cdecl;
388    libvlc_media_new_path : function(p_instance:Plibvlc_instance_t; path:pcchar):plibvlc_media_t; cdecl;
389    libvlc_media_new_fd : function(p_instance:Plibvlc_instance_t; fd:cint):plibvlc_media_t; cdecl;
390    libvlc_media_new_as_node : function(p_instance:Plibvlc_instance_t; psz_name:pcchar):plibvlc_media_t; cdecl;
391    libvlc_media_add_option : procedure(p_md:Plibvlc_media_t; ppsz_options:pcchar); cdecl;
392    libvlc_media_add_option_flag : procedure(p_md:Plibvlc_media_t; ppsz_options:pcchar; i_flags:cunsigned); cdecl;
393    libvlc_media_retain : procedure(p_md:Plibvlc_media_t); cdecl;
394    libvlc_media_release : procedure(p_md:Plibvlc_media_t); cdecl;
395    libvlc_media_get_mrl : function(p_md:Plibvlc_media_t):pcchar; cdecl;
396    libvlc_media_duplicate : function(p_md:Plibvlc_media_t):plibvlc_media_t; cdecl;
397    libvlc_media_get_meta : function(p_md:Plibvlc_media_t; e_meta:libvlc_meta_t):pcchar; cdecl;
398    libvlc_media_set_meta : procedure(p_md:Plibvlc_media_t; e_meta:libvlc_meta_t; psz_value:pcchar); cdecl;
399    libvlc_media_save_meta : function(p_md:Plibvlc_media_t):cint; cdecl;
400    libvlc_media_get_state : function(p_md:Plibvlc_media_t):libvlc_state_t; cdecl;
401    libvlc_media_get_stats : function(p_md:Plibvlc_media_t; p_stats:Plibvlc_media_stats_t):cint; cdecl;
402    libvlc_media_subitems : function(p_md:Plibvlc_media_t):plibvlc_media_list_t; cdecl;
403    libvlc_media_event_manager : function(p_md:Plibvlc_media_t):plibvlc_event_manager_t; cdecl;
404    libvlc_media_get_duration : function(p_md:Plibvlc_media_t):libvlc_time_t; cdecl;
405    libvlc_media_parse : procedure(p_md:Plibvlc_media_t); cdecl;
406    libvlc_media_parse_async : procedure(p_md:Plibvlc_media_t); cdecl;
407    libvlc_media_is_parsed : function(p_md:Plibvlc_media_t):cint; cdecl;
408    libvlc_media_set_user_data : procedure(p_md:Plibvlc_media_t; p_new_user_data:pointer); cdecl;
409    libvlc_media_get_user_data : function(p_md:Plibvlc_media_t):pointer; cdecl;
410    libvlc_media_get_tracks_info : function(p_md:Plibvlc_media_t; tracks:PPlibvlc_media_track_info_t):cint; cdecl;
411    libvlc_module_description_list_release : procedure(p_list:Plibvlc_module_description_t); cdecl;
412    libvlc_audio_filter_list_get : function(p_instance:Plibvlc_instance_t):plibvlc_module_description_t; cdecl;
413    libvlc_video_filter_list_get : function(p_instance:Plibvlc_instance_t):plibvlc_module_description_t; cdecl;
414    libvlc_clock : function:int64_t; cdecl;
415
416    libvlc_errmsg : function:pcchar; cdecl;
417    libvlc_clearerr : procedure; cdecl;
418    libvlc_printerr : function(fmt:pcchar):pcchar;varargs; cdecl;
419
420    libvlc_new : function(argc:cint; argv:Ppcchar):plibvlc_instance_t; cdecl;
421    libvlc_release : procedure(p_instance:Plibvlc_instance_t); cdecl;
422    libvlc_retain : procedure(p_instance:Plibvlc_instance_t); cdecl;
423    libvlc_add_intf : function(p_instance:Plibvlc_instance_t; name:pcchar):cint; cdecl;
424    libvlc_set_exit_handler : procedure(p_instance:Plibvlc_instance_t; cb:cbtype1; opaque:pointer); cdecl;
425    libvlc_wait : procedure(p_instance:Plibvlc_instance_t); cdecl;
426    libvlc_set_user_agent : procedure(p_instance:Plibvlc_instance_t; name:pcchar; http:pcchar); cdecl;
427    libvlc_get_version : function:pcchar; cdecl;
428    libvlc_get_compiler : function:pcchar; cdecl;
429    libvlc_get_changeset : function:pcchar; cdecl;
430    libvlc_free : procedure(ptr:pointer); cdecl;
431    libvlc_event_attach : function(p_event_manager:Plibvlc_event_manager_t; i_event_type:libvlc_event_type_t; f_callback:libvlc_callback_t; user_data:pointer):cint; cdecl;
432    libvlc_event_detach : procedure(p_event_manager:Plibvlc_event_manager_t; i_event_type:libvlc_event_type_t; f_callback:libvlc_callback_t; p_user_data:pointer); cdecl;
433    libvlc_event_type_name : function(event_type:libvlc_event_type_t):pcchar; cdecl;
434    libvlc_get_log_verbosity : function(p_instance:Plibvlc_instance_t):cunsigned; cdecl;
435    libvlc_set_log_verbosity : procedure(p_instance:Plibvlc_instance_t; level:cunsigned); cdecl;
436    libvlc_log_open : function(p_instance:Plibvlc_instance_t):plibvlc_log_t; cdecl;
437    libvlc_log_close : procedure(p_log:Plibvlc_log_t); cdecl;
438    libvlc_log_count : function(p_log:Plibvlc_log_t):cunsigned; cdecl;
439    libvlc_log_clear : procedure(p_log:Plibvlc_log_t); cdecl;
440    libvlc_log_get_iterator : function(p_log:Plibvlc_log_t):plibvlc_log_iterator_t; cdecl;
441    libvlc_log_iterator_free : procedure(p_iter:Plibvlc_log_iterator_t); cdecl;
442    libvlc_log_iterator_has_next : function(p_iter:Plibvlc_log_iterator_t):cint; cdecl;
443    libvlc_log_iterator_next : function(p_iter:Plibvlc_log_iterator_t; p_buffer:Plibvlc_log_message_t):plibvlc_log_message_t; cdecl;
444    libvlc_audio_output_list_get : function(p_instance:Plibvlc_instance_t):plibvlc_audio_output_t; cdecl;
445    libvlc_audio_output_list_release : procedure(p_list:Plibvlc_audio_output_t); cdecl;
446    libvlc_audio_output_set : function(p_mi:Plibvlc_media_player_t; psz_name:pcchar):cint; cdecl;
447    libvlc_audio_output_device_count : function(p_instance:Plibvlc_instance_t; psz_audio_output:pcchar):cint; cdecl;
448    libvlc_audio_output_device_longname : function(p_instance:Plibvlc_instance_t; psz_audio_output:pcchar; i_device:cint):pcchar; cdecl;
449    libvlc_audio_output_device_id : function(p_instance:Plibvlc_instance_t; psz_audio_output:pcchar; i_device:cint):pcchar; cdecl;
450    libvlc_audio_output_device_set : procedure(p_mi:Plibvlc_media_player_t; psz_audio_output:pcchar; psz_device_id:pcchar); cdecl;
451    libvlc_audio_output_get_device_type : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
452    libvlc_audio_output_set_device_type : procedure(p_mi:Plibvlc_media_player_t; device_type:cint); cdecl;
453    libvlc_audio_toggle_mute : procedure(p_mi:Plibvlc_media_player_t); cdecl;
454    libvlc_audio_get_mute : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
455    libvlc_audio_set_mute : procedure(p_mi:Plibvlc_media_player_t; status:cint); cdecl;
456    libvlc_audio_get_volume : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
457    libvlc_audio_set_volume : function(p_mi:Plibvlc_media_player_t; i_volume:cint):cint; cdecl;
458    libvlc_audio_get_track_count : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
459    libvlc_audio_get_track_description : function(p_mi:Plibvlc_media_player_t):plibvlc_track_description_t; cdecl;
460    libvlc_audio_get_track : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
461    libvlc_audio_set_track : function(p_mi:Plibvlc_media_player_t; i_track:cint):cint; cdecl;
462    libvlc_audio_get_channel : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
463    libvlc_audio_set_channel : function(p_mi:Plibvlc_media_player_t; channel:cint):cint; cdecl;
464    libvlc_audio_get_delay : function(p_mi:Plibvlc_media_player_t):int64_t; cdecl;
465    libvlc_audio_set_delay : function(p_mi:Plibvlc_media_player_t; i_delay:int64_t):cint; cdecl;
466    libvlc_media_list_new : function(p_instance:Plibvlc_instance_t):plibvlc_media_list_t; cdecl;
467    libvlc_media_list_release : procedure(p_ml:Plibvlc_media_list_t); cdecl;
468    libvlc_media_list_retain : procedure(p_ml:Plibvlc_media_list_t); cdecl;
469
470    libvlc_media_list_add_file_content : function(p_ml:Plibvlc_media_list_t; psz_uri:pcchar):cint; cdecl;
471    libvlc_media_list_set_media : procedure(p_ml:Plibvlc_media_list_t; p_md:Plibvlc_media_t); cdecl;
472    libvlc_media_list_media : function(p_ml:Plibvlc_media_list_t):plibvlc_media_t; cdecl;
473    libvlc_media_list_add_media : function(p_ml:Plibvlc_media_list_t; p_md:Plibvlc_media_t):cint; cdecl;
474    libvlc_media_list_insert_media : function(p_ml:Plibvlc_media_list_t; p_md:Plibvlc_media_t; i_pos:cint):cint; cdecl;
475    libvlc_media_list_remove_index : function(p_ml:Plibvlc_media_list_t; i_pos:cint):cint; cdecl;
476    libvlc_media_list_count : function(p_ml:Plibvlc_media_list_t):cint; cdecl;
477    libvlc_media_list_item_at_index : function(p_ml:Plibvlc_media_list_t; i_pos:cint):plibvlc_media_t; cdecl;
478    libvlc_media_list_index_of_item : function(p_ml:Plibvlc_media_list_t; p_md:Plibvlc_media_t):cint; cdecl;
479    libvlc_media_list_is_readonly : function(p_ml:Plibvlc_media_list_t):cint; cdecl;
480    libvlc_media_list_lock : procedure(p_ml:Plibvlc_media_list_t); cdecl;
481    libvlc_media_list_unlock : procedure(p_ml:Plibvlc_media_list_t); cdecl;
482    libvlc_media_list_event_manager : function(p_ml:Plibvlc_media_list_t):plibvlc_event_manager_t; cdecl;
483    libvlc_media_list_player_new : function(p_instance:Plibvlc_instance_t):plibvlc_media_list_player_t; cdecl;
484    libvlc_media_list_player_release : procedure(p_mlp:Plibvlc_media_list_player_t); cdecl;
485    libvlc_media_list_player_retain : procedure(p_mlp:Plibvlc_media_list_player_t); cdecl;
486    libvlc_media_list_player_event_manager : function(p_mlp:Plibvlc_media_list_player_t):plibvlc_event_manager_t; cdecl;
487    libvlc_media_list_player_set_media_player : procedure(p_mlp:Plibvlc_media_list_player_t; p_mi:Plibvlc_media_player_t); cdecl;
488    libvlc_media_list_player_set_media_list : procedure(p_mlp:Plibvlc_media_list_player_t; p_mlist:Plibvlc_media_list_t); cdecl;
489    libvlc_media_list_player_play : procedure(p_mlp:Plibvlc_media_list_player_t); cdecl;
490    libvlc_media_list_player_pause : procedure(p_mlp:Plibvlc_media_list_player_t); cdecl;
491    libvlc_media_list_player_is_playing : function(p_mlp:Plibvlc_media_list_player_t):cint; cdecl;
492    libvlc_media_list_player_get_state : function(p_mlp:Plibvlc_media_list_player_t):libvlc_state_t; cdecl;
493    libvlc_media_list_player_play_item_at_index : function(p_mlp:Plibvlc_media_list_player_t; i_index:cint):cint; cdecl;
494    libvlc_media_list_player_play_item : function(p_mlp:Plibvlc_media_list_player_t; p_md:Plibvlc_media_t):cint; cdecl;
495    libvlc_media_list_player_stop : procedure(p_mlp:Plibvlc_media_list_player_t); cdecl;
496    libvlc_media_list_player_next : function(p_mlp:Plibvlc_media_list_player_t):cint; cdecl;
497    libvlc_media_list_player_previous : function(p_mlp:Plibvlc_media_list_player_t):cint; cdecl;
498    libvlc_media_list_player_set_playback_mode : procedure(p_mlp:Plibvlc_media_list_player_t; e_mode:libvlc_playback_mode_t); cdecl;
499    libvlc_media_library_new : function(p_instance:Plibvlc_instance_t):plibvlc_media_library_t; cdecl;
500    libvlc_media_library_release : procedure(p_mlib:Plibvlc_media_library_t); cdecl;
501    libvlc_media_library_retain : procedure(p_mlib:Plibvlc_media_library_t); cdecl;
502    libvlc_media_library_load : function(p_mlib:Plibvlc_media_library_t):cint; cdecl;
503    libvlc_media_library_media_list : function(p_mlib:Plibvlc_media_library_t):plibvlc_media_list_t; cdecl;
504    libvlc_video_get_adjust_int : function(p_mi:Plibvlc_media_player_t; option:cunsigned):cint; cdecl;
505    libvlc_video_set_adjust_int : procedure(p_mi:Plibvlc_media_player_t; option:cunsigned; value:cint); cdecl;
506    libvlc_video_get_adjust_float : function(p_mi:Plibvlc_media_player_t; option:cunsigned):cfloat; cdecl;
507    libvlc_video_set_adjust_float : procedure(p_mi:Plibvlc_media_player_t; option:cunsigned; value:cfloat); cdecl;
508    libvlc_video_get_logo_int : function(p_mi:Plibvlc_media_player_t; option:cunsigned):cint; cdecl;
509    libvlc_video_set_logo_int : procedure(p_mi:Plibvlc_media_player_t; option:cunsigned; value:cint); cdecl;
510    libvlc_video_set_logo_string : procedure(p_mi:Plibvlc_media_player_t; option:cunsigned; psz_value:pcchar); cdecl;
511    libvlc_audio_set_format_callbacks : procedure(mp:Plibvlc_media_player_t; setup:libvlc_audio_setup_cb; cleanup:libvlc_audio_cleanup_cb); cdecl;
512    libvlc_audio_set_format : procedure(mp:Plibvlc_media_player_t; format:pcchar; rate:cunsigned; channels:cunsigned); cdecl;
513    libvlc_media_player_get_length : function(p_mi:Plibvlc_media_player_t):libvlc_time_t; cdecl;
514    libvlc_media_player_get_time : function(p_mi:Plibvlc_media_player_t):libvlc_time_t; cdecl;
515    libvlc_media_player_set_time : procedure(p_mi:Plibvlc_media_player_t; i_time:libvlc_time_t); cdecl;
516    libvlc_media_player_get_position : function(p_mi:Plibvlc_media_player_t):cfloat; cdecl;
517    libvlc_media_player_set_position : procedure(p_mi:Plibvlc_media_player_t; f_pos:cfloat); cdecl;
518    libvlc_media_player_set_chapter : procedure(p_mi:Plibvlc_media_player_t; i_chapter:cint); cdecl;
519    libvlc_media_player_get_chapter : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
520    libvlc_media_player_get_chapter_count : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
521    libvlc_media_player_will_play : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
522    libvlc_media_player_get_chapter_count_for_title : function(p_mi:Plibvlc_media_player_t; i_title:cint):cint; cdecl;
523    libvlc_media_player_set_title : procedure(p_mi:Plibvlc_media_player_t; i_title:cint); cdecl;
524    libvlc_media_player_get_title : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
525    libvlc_media_player_get_title_count : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
526    libvlc_media_player_previous_chapter : procedure(p_mi:Plibvlc_media_player_t); cdecl;
527    libvlc_media_player_next_chapter : procedure(p_mi:Plibvlc_media_player_t); cdecl;
528    libvlc_media_player_get_rate : function(p_mi:Plibvlc_media_player_t):cfloat; cdecl;
529    libvlc_media_player_set_rate : function(p_mi:Plibvlc_media_player_t; rate:cfloat):cint; cdecl;
530    libvlc_media_player_get_state : function(p_mi:Plibvlc_media_player_t):libvlc_state_t; cdecl;
531    libvlc_media_player_get_fps : function(p_mi:Plibvlc_media_player_t):cfloat; cdecl;
532    libvlc_media_player_has_vout : function(p_mi:Plibvlc_media_player_t):cunsigned; cdecl;
533    libvlc_media_player_is_seekable : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
534    libvlc_media_player_can_pause : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
535    libvlc_media_player_next_frame : procedure(p_mi:Plibvlc_media_player_t); cdecl;
536    libvlc_media_player_navigate : procedure(p_mi:Plibvlc_media_player_t; navigate:cunsigned); cdecl;
537    libvlc_track_description_list_release : procedure(p_track_description:Plibvlc_track_description_t); cdecl;
538    libvlc_track_description_release : procedure(p_track_description:Plibvlc_track_description_t); cdecl;
539    libvlc_toggle_fullscreen : procedure(p_mi:Plibvlc_media_player_t); cdecl;
540    libvlc_set_fullscreen : procedure(p_mi:Plibvlc_media_player_t; b_fullscreen:cint); cdecl;
541    libvlc_get_fullscreen : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
542    libvlc_video_set_key_input : procedure(p_mi:Plibvlc_media_player_t; on:cunsigned); cdecl;
543    libvlc_video_set_mouse_input : procedure(p_mi:Plibvlc_media_player_t; on:cunsigned); cdecl;
544    libvlc_video_get_size : function(p_mi:Plibvlc_media_player_t; num:cunsigned; px:pcunsigned; py:pcunsigned):cint; cdecl;
545    libvlc_video_get_height : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
546    libvlc_video_get_width : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
547    libvlc_video_get_cursor : function(p_mi:Plibvlc_media_player_t; num:cunsigned; px:pcint; py:pcint):cint; cdecl;
548    libvlc_video_get_scale : function(p_mi:Plibvlc_media_player_t):cfloat; cdecl;
549    libvlc_video_set_scale : procedure(p_mi:Plibvlc_media_player_t; f_factor:cfloat); cdecl;
550    libvlc_video_get_aspect_ratio : function(p_mi:Plibvlc_media_player_t):pcchar; cdecl;
551    libvlc_video_set_aspect_ratio : procedure(p_mi:Plibvlc_media_player_t; psz_aspect:pcchar); cdecl;
552    libvlc_video_get_spu : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
553    libvlc_video_get_spu_count : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
554    libvlc_video_get_spu_description : function(p_mi:Plibvlc_media_player_t):plibvlc_track_description_t; cdecl;
555    libvlc_video_set_spu : function(p_mi:Plibvlc_media_player_t; i_spu:cunsigned):cint; cdecl;
556    libvlc_video_set_subtitle_file : function(p_mi:Plibvlc_media_player_t; psz_subtitle:pcchar):cint; cdecl;
557    libvlc_video_get_spu_delay : function(p_mi:Plibvlc_media_player_t):int64_t; cdecl;
558    libvlc_video_set_spu_delay : function(p_mi:Plibvlc_media_player_t; i_delay:int64_t):cint; cdecl;
559    libvlc_video_get_title_description : function(p_mi:Plibvlc_media_player_t):plibvlc_track_description_t; cdecl;
560    libvlc_video_get_chapter_description : function(p_mi:Plibvlc_media_player_t; i_title:cint):plibvlc_track_description_t; cdecl;
561    libvlc_video_get_crop_geometry : function(p_mi:Plibvlc_media_player_t):pcchar; cdecl;
562    libvlc_video_set_crop_geometry : procedure(p_mi:Plibvlc_media_player_t; psz_geometry:pcchar); cdecl;
563    libvlc_video_get_teletext : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
564    libvlc_video_set_teletext : procedure(p_mi:Plibvlc_media_player_t; i_page:cint); cdecl;
565    libvlc_toggle_teletext : procedure(p_mi:Plibvlc_media_player_t); cdecl;
566    libvlc_video_get_track_count : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
567    libvlc_video_get_track_description : function(p_mi:Plibvlc_media_player_t):plibvlc_track_description_t; cdecl;
568    libvlc_video_get_track : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
569    libvlc_video_set_track : function(p_mi:Plibvlc_media_player_t; i_track:cint):cint; cdecl;
570    libvlc_video_take_snapshot : function(p_mi:Plibvlc_media_player_t; num:cunsigned; psz_filepath:pcchar; i_width:cuint; i_height:cuint):cint; cdecl;
571    libvlc_video_set_deinterlace : procedure(p_mi:Plibvlc_media_player_t; psz_mode:pcchar); cdecl;
572    libvlc_video_get_marquee_int : function(p_mi:Plibvlc_media_player_t; option:cunsigned):cint; cdecl;
573    libvlc_video_get_marquee_string : function(p_mi:Plibvlc_media_player_t; option:cunsigned):pcchar; cdecl;
574    libvlc_video_set_marquee_int : procedure(p_mi:Plibvlc_media_player_t; option:cunsigned; i_val:cint); cdecl;
575    libvlc_video_set_marquee_string : procedure(p_mi:Plibvlc_media_player_t; option:cunsigned; psz_text:pcchar); cdecl;
576    libvlc_audio_set_callbacks : procedure(mp:Plibvlc_media_player_t; play:libvlc_audio_play_cb; pause:libvlc_audio_pause_cb; resume:libvlc_audio_resume_cb; flush:libvlc_audio_flush_cb;
577      drain:libvlc_audio_drain_cb; opaque:pointer); cdecl;
578    libvlc_audio_set_volume_callback : procedure(mp:Plibvlc_media_player_t; set_volume:libvlc_audio_set_volume_cb); cdecl;
579    libvlc_video_set_callbacks : procedure(mp:Plibvlc_media_player_t; lock:libvlc_video_lock_cb; unlock:libvlc_video_unlock_cb; display:libvlc_video_display_cb; opaque:pointer); cdecl;
580    libvlc_video_set_format : procedure(mp:Plibvlc_media_player_t; chroma:pcchar; width:cunsigned; height:cunsigned; pitch:cunsigned); cdecl;
581    libvlc_video_set_format_callbacks : procedure(mp:Plibvlc_media_player_t; setup:libvlc_video_format_cb; cleanup:libvlc_video_cleanup_cb); cdecl;
582    libvlc_media_player_set_nsobject : procedure(p_mi:Plibvlc_media_player_t; drawable:pointer); cdecl;
583    libvlc_media_player_get_nsobject : function(p_mi:Plibvlc_media_player_t):pointer; cdecl;
584    libvlc_media_player_set_agl : procedure(p_mi:Plibvlc_media_player_t; drawable:uint32_t); cdecl;
585    libvlc_media_player_get_agl : function(p_mi:Plibvlc_media_player_t):uint32_t; cdecl;
586    libvlc_media_player_set_xwindow : procedure(p_mi:Plibvlc_media_player_t; drawable:uint32_t); cdecl;
587    libvlc_media_player_get_xwindow : function(p_mi:Plibvlc_media_player_t):uint32_t; cdecl;
588    libvlc_media_player_set_hwnd : procedure(p_mi:Plibvlc_media_player_t; drawable:pointer); cdecl;
589    libvlc_media_player_get_hwnd : function(p_mi:Plibvlc_media_player_t):pointer; cdecl;
590    libvlc_media_discoverer_new_from_name : function(p_inst:Plibvlc_instance_t; psz_name:pcchar):plibvlc_media_discoverer_t; cdecl;
591    libvlc_media_discoverer_release : procedure(p_mdis:Plibvlc_media_discoverer_t); cdecl;
592    libvlc_media_discoverer_localized_name : function(p_mdis:Plibvlc_media_discoverer_t):pcchar; cdecl;
593    libvlc_media_discoverer_media_list : function(p_mdis:Plibvlc_media_discoverer_t):plibvlc_media_list_t; cdecl;
594    libvlc_media_discoverer_event_manager : function(p_mdis:Plibvlc_media_discoverer_t):plibvlc_event_manager_t; cdecl;
595    libvlc_media_discoverer_is_running : function(p_mdis:Plibvlc_media_discoverer_t):cint; cdecl;
596    libvlc_vlm_release : procedure(p_instance:Plibvlc_instance_t); cdecl;
597    libvlc_vlm_add_broadcast : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_input:pcchar; psz_output:pcchar; i_options:cint;
598      ppsz_options:Ppcchar; b_enabled:cint; b_loop:cint):cint; cdecl;
599    libvlc_vlm_add_vod : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_input:pcchar; i_options:cint; ppsz_options:Ppcchar;
600      b_enabled:cint; psz_mux:pcchar):cint; cdecl;
601    libvlc_vlm_del_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar):cint; cdecl;
602    libvlc_vlm_set_enabled : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; b_enabled:cint):cint; cdecl;
603    libvlc_vlm_set_output : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_output:pcchar):cint; cdecl;
604    libvlc_vlm_set_input : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_input:pcchar):cint; cdecl;
605    libvlc_vlm_add_input : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_input:pcchar):cint; cdecl;
606    libvlc_vlm_set_loop : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; b_loop:cint):cint; cdecl;
607    libvlc_vlm_set_mux : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_mux:pcchar):cint; cdecl;
608    libvlc_vlm_change_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_input:pcchar; psz_output:pcchar; i_options:cint;
609      ppsz_options:Ppcchar; b_enabled:cint; b_loop:cint):cint; cdecl;
610    libvlc_vlm_play_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar):cint; cdecl;
611    libvlc_vlm_stop_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar):cint; cdecl;
612    libvlc_vlm_pause_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar):cint; cdecl;
613    libvlc_vlm_seek_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; f_percentage:cfloat):cint; cdecl;
614    libvlc_vlm_show_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar):pcchar; cdecl;
615    libvlc_vlm_get_media_instance_position : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; i_instance:cint):cfloat; cdecl;
616    libvlc_vlm_get_media_instance_time : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; i_instance:cint):cint; cdecl;
617    libvlc_vlm_get_media_instance_length : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; i_instance:cint):cint; cdecl;
618    libvlc_vlm_get_media_instance_rate : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; i_instance:cint):cint; cdecl;
619    libvlc_vlm_get_event_manager : function(p_instance:Plibvlc_instance_t):plibvlc_event_manager_t; cdecl;
620    libvlc_playlist_play : procedure(p_instance:Plibvlc_instance_t; i_id:cint; i_options:cint; ppsz_options:Ppcchar); cdecl;
621
622Procedure Freelibvlc;
623Procedure Loadlibvlc(lib : AnsiString; CheckProcNames : Boolean = False);
624{$IFDEF WINDOWS}
625function GetVLCLibPath: String;
626{$ENDIF WINDOWS}
627
628implementation
629
630uses
631  SysUtils,
632 {$IFDEF WINDOWS}
633  windows,
634 {$ENDIF}
635  dynlibs;
636
637var
638  hlib : tlibhandle;
639  {$IFDEF WINDOWS}
640  hclib : tlibhandle;
641  {$ENDIF}
642  LibRefCount : Integer;
643
644procedure Freelibvlc;
645
646begin
647  if (LibRefCount>0) then
648    Dec(LibRefCount);
649  if LibRefCount>0 then
650    exit;
651  FreeLibrary(hlib);
652  hlib:=NilHandle;
653{$IFDEF WINDOWS}
654  FreeLibrary(hclib);
655  hclib:=NilHandle;
656{$ENDIF}
657  libvlc_errmsg:=nil;
658  libvlc_clearerr:=nil;
659  libvlc_printerr:=nil;
660  libvlc_new:=nil;
661  libvlc_release:=nil;
662  libvlc_retain:=nil;
663  libvlc_add_intf:=nil;
664  libvlc_set_exit_handler:=nil;
665  libvlc_wait:=nil;
666  libvlc_set_user_agent:=nil;
667  libvlc_get_version:=nil;
668  libvlc_get_compiler:=nil;
669  libvlc_get_changeset:=nil;
670  libvlc_free:=nil;
671  libvlc_event_attach:=nil;
672  libvlc_event_detach:=nil;
673  libvlc_event_type_name:=nil;
674  libvlc_get_log_verbosity:=nil;
675  libvlc_set_log_verbosity:=nil;
676  libvlc_log_open:=nil;
677  libvlc_log_close:=nil;
678  libvlc_log_count:=nil;
679  libvlc_log_clear:=nil;
680  libvlc_log_get_iterator:=nil;
681  libvlc_log_iterator_free:=nil;
682  libvlc_log_iterator_has_next:=nil;
683  libvlc_log_iterator_next:=nil;
684  libvlc_module_description_list_release:=nil;
685  libvlc_audio_filter_list_get:=nil;
686  libvlc_video_filter_list_get:=nil;
687  libvlc_clock:=nil;
688  libvlc_media_new_location:=nil;
689  libvlc_media_new_path:=nil;
690  libvlc_media_new_fd:=nil;
691  libvlc_media_new_as_node:=nil;
692  libvlc_media_add_option:=nil;
693  libvlc_media_add_option_flag:=nil;
694  libvlc_media_retain:=nil;
695  libvlc_media_release:=nil;
696  libvlc_media_get_mrl:=nil;
697  libvlc_media_duplicate:=nil;
698  libvlc_media_get_meta:=nil;
699  libvlc_media_set_meta:=nil;
700  libvlc_media_save_meta:=nil;
701  libvlc_media_get_state:=nil;
702  libvlc_media_get_stats:=nil;
703  libvlc_media_subitems:=nil;
704  libvlc_media_event_manager:=nil;
705  libvlc_media_get_duration:=nil;
706  libvlc_media_parse:=nil;
707  libvlc_media_parse_async:=nil;
708  libvlc_media_is_parsed:=nil;
709  libvlc_media_set_user_data:=nil;
710  libvlc_media_get_user_data:=nil;
711  libvlc_media_get_tracks_info:=nil;
712  libvlc_media_player_new:=nil;
713  libvlc_media_player_new_from_media:=nil;
714  libvlc_media_player_release:=nil;
715  libvlc_media_player_retain:=nil;
716  libvlc_media_player_set_media:=nil;
717  libvlc_media_player_get_media:=nil;
718  libvlc_media_player_event_manager:=nil;
719  libvlc_media_player_is_playing:=nil;
720  libvlc_media_player_play:=nil;
721  libvlc_media_player_set_pause:=nil;
722  libvlc_media_player_pause:=nil;
723  libvlc_media_player_stop:=nil;
724  libvlc_video_set_callbacks:=nil;
725  libvlc_video_set_format:=nil;
726  libvlc_video_set_format_callbacks:=nil;
727  libvlc_media_player_set_nsobject:=nil;
728  libvlc_media_player_get_nsobject:=nil;
729  libvlc_media_player_set_agl:=nil;
730  libvlc_media_player_get_agl:=nil;
731  libvlc_media_player_set_xwindow:=nil;
732  libvlc_media_player_get_xwindow:=nil;
733  libvlc_media_player_set_hwnd:=nil;
734  libvlc_media_player_get_hwnd:=nil;
735  libvlc_audio_set_callbacks:=nil;
736  libvlc_audio_set_volume_callback:=nil;
737  libvlc_audio_set_format_callbacks:=nil;
738  libvlc_audio_set_format:=nil;
739  libvlc_media_player_get_length:=nil;
740  libvlc_media_player_get_time:=nil;
741  libvlc_media_player_set_time:=nil;
742  libvlc_media_player_get_position:=nil;
743  libvlc_media_player_set_position:=nil;
744  libvlc_media_player_set_chapter:=nil;
745  libvlc_media_player_get_chapter:=nil;
746  libvlc_media_player_get_chapter_count:=nil;
747  libvlc_media_player_will_play:=nil;
748  libvlc_media_player_get_chapter_count_for_title:=nil;
749  libvlc_media_player_set_title:=nil;
750  libvlc_media_player_get_title:=nil;
751  libvlc_media_player_get_title_count:=nil;
752  libvlc_media_player_previous_chapter:=nil;
753  libvlc_media_player_next_chapter:=nil;
754  libvlc_media_player_get_rate:=nil;
755  libvlc_media_player_set_rate:=nil;
756  libvlc_media_player_get_state:=nil;
757  libvlc_media_player_get_fps:=nil;
758  libvlc_media_player_has_vout:=nil;
759  libvlc_media_player_is_seekable:=nil;
760  libvlc_media_player_can_pause:=nil;
761  libvlc_media_player_next_frame:=nil;
762  libvlc_media_player_navigate:=nil;
763  libvlc_track_description_list_release:=nil;
764  libvlc_track_description_release:=nil;
765  libvlc_toggle_fullscreen:=nil;
766  libvlc_set_fullscreen:=nil;
767  libvlc_get_fullscreen:=nil;
768  libvlc_video_set_key_input:=nil;
769  libvlc_video_set_mouse_input:=nil;
770  libvlc_video_get_size:=nil;
771  libvlc_video_get_height:=nil;
772  libvlc_video_get_width:=nil;
773  libvlc_video_get_cursor:=nil;
774  libvlc_video_get_scale:=nil;
775  libvlc_video_set_scale:=nil;
776  libvlc_video_get_aspect_ratio:=nil;
777  libvlc_video_set_aspect_ratio:=nil;
778  libvlc_video_get_spu:=nil;
779  libvlc_video_get_spu_count:=nil;
780  libvlc_video_get_spu_description:=nil;
781  libvlc_video_set_spu:=nil;
782  libvlc_video_set_subtitle_file:=nil;
783  libvlc_video_get_spu_delay:=nil;
784  libvlc_video_set_spu_delay:=nil;
785  libvlc_video_get_title_description:=nil;
786  libvlc_video_get_chapter_description:=nil;
787  libvlc_video_get_crop_geometry:=nil;
788  libvlc_video_set_crop_geometry:=nil;
789  libvlc_video_get_teletext:=nil;
790  libvlc_video_set_teletext:=nil;
791  libvlc_toggle_teletext:=nil;
792  libvlc_video_get_track_count:=nil;
793  libvlc_video_get_track_description:=nil;
794  libvlc_video_get_track:=nil;
795  libvlc_video_set_track:=nil;
796  libvlc_video_take_snapshot:=nil;
797  libvlc_video_set_deinterlace:=nil;
798  libvlc_video_get_marquee_int:=nil;
799  libvlc_video_get_marquee_string:=nil;
800  libvlc_video_set_marquee_int:=nil;
801  libvlc_video_set_marquee_string:=nil;
802  libvlc_video_get_logo_int:=nil;
803  libvlc_video_set_logo_int:=nil;
804  libvlc_video_set_logo_string:=nil;
805  libvlc_video_get_adjust_int:=nil;
806  libvlc_video_set_adjust_int:=nil;
807  libvlc_video_get_adjust_float:=nil;
808  libvlc_video_set_adjust_float:=nil;
809  libvlc_audio_output_list_get:=nil;
810  libvlc_audio_output_list_release:=nil;
811  libvlc_audio_output_set:=nil;
812  libvlc_audio_output_device_count:=nil;
813  libvlc_audio_output_device_longname:=nil;
814  libvlc_audio_output_device_id:=nil;
815  libvlc_audio_output_device_set:=nil;
816  libvlc_audio_output_get_device_type:=nil;
817  libvlc_audio_output_set_device_type:=nil;
818  libvlc_audio_toggle_mute:=nil;
819  libvlc_audio_get_mute:=nil;
820  libvlc_audio_set_mute:=nil;
821  libvlc_audio_get_volume:=nil;
822  libvlc_audio_set_volume:=nil;
823  libvlc_audio_get_track_count:=nil;
824  libvlc_audio_get_track_description:=nil;
825  libvlc_audio_get_track:=nil;
826  libvlc_audio_set_track:=nil;
827  libvlc_audio_get_channel:=nil;
828  libvlc_audio_set_channel:=nil;
829  libvlc_audio_get_delay:=nil;
830  libvlc_audio_set_delay:=nil;
831  libvlc_media_list_new:=nil;
832  libvlc_media_list_release:=nil;
833  libvlc_media_list_retain:=nil;
834  libvlc_media_list_add_file_content:=nil;
835  libvlc_media_list_set_media:=nil;
836  libvlc_media_list_media:=nil;
837  libvlc_media_list_add_media:=nil;
838  libvlc_media_list_insert_media:=nil;
839  libvlc_media_list_remove_index:=nil;
840  libvlc_media_list_count:=nil;
841  libvlc_media_list_item_at_index:=nil;
842  libvlc_media_list_index_of_item:=nil;
843  libvlc_media_list_is_readonly:=nil;
844  libvlc_media_list_lock:=nil;
845  libvlc_media_list_unlock:=nil;
846  libvlc_media_list_event_manager:=nil;
847  libvlc_media_list_player_new:=nil;
848  libvlc_media_list_player_release:=nil;
849  libvlc_media_list_player_retain:=nil;
850  libvlc_media_list_player_event_manager:=nil;
851  libvlc_media_list_player_set_media_player:=nil;
852  libvlc_media_list_player_set_media_list:=nil;
853  libvlc_media_list_player_play:=nil;
854  libvlc_media_list_player_pause:=nil;
855  libvlc_media_list_player_is_playing:=nil;
856  libvlc_media_list_player_get_state:=nil;
857  libvlc_media_list_player_play_item_at_index:=nil;
858  libvlc_media_list_player_play_item:=nil;
859  libvlc_media_list_player_stop:=nil;
860  libvlc_media_list_player_next:=nil;
861  libvlc_media_list_player_previous:=nil;
862  libvlc_media_list_player_set_playback_mode:=nil;
863  libvlc_media_library_new:=nil;
864  libvlc_media_library_release:=nil;
865  libvlc_media_library_retain:=nil;
866  libvlc_media_library_load:=nil;
867  libvlc_media_library_media_list:=nil;
868  libvlc_media_discoverer_new_from_name:=nil;
869  libvlc_media_discoverer_release:=nil;
870  libvlc_media_discoverer_localized_name:=nil;
871  libvlc_media_discoverer_media_list:=nil;
872  libvlc_media_discoverer_event_manager:=nil;
873  libvlc_media_discoverer_is_running:=nil;
874  libvlc_vlm_release:=nil;
875  libvlc_vlm_add_broadcast:=nil;
876  libvlc_vlm_add_vod:=nil;
877  libvlc_vlm_del_media:=nil;
878  libvlc_vlm_set_enabled:=nil;
879  libvlc_vlm_set_output:=nil;
880  libvlc_vlm_set_input:=nil;
881  libvlc_vlm_add_input:=nil;
882  libvlc_vlm_set_loop:=nil;
883  libvlc_vlm_set_mux:=nil;
884  libvlc_vlm_change_media:=nil;
885  libvlc_vlm_play_media:=nil;
886  libvlc_vlm_stop_media:=nil;
887  libvlc_vlm_pause_media:=nil;
888  libvlc_vlm_seek_media:=nil;
889  libvlc_vlm_show_media:=nil;
890  libvlc_vlm_get_media_instance_position:=nil;
891  libvlc_vlm_get_media_instance_time:=nil;
892  libvlc_vlm_get_media_instance_length:=nil;
893  libvlc_vlm_get_media_instance_rate:=nil;
894  libvlc_vlm_get_event_manager:=nil;
895  libvlc_playlist_play:=nil;
896end;
897
898{$IFDEF WINDOWS}
899function GetVLCLibPath: String;
900var
901  Handle: HKEY;
902  RegType: Integer;
903  DataSize: Cardinal;
904  Key: PWideChar;
905  res: WideString;
906begin
907  Result := '';
908  try
909    Key := 'Software\VideoLAN\VLC';
910    if RegOpenKeyExW(HKEY_LOCAL_MACHINE, Key, 0, KEY_READ, Handle) = ERROR_SUCCESS then
911    begin
912      if RegQueryValueExW(Handle, 'InstallDir', nil, @RegType, nil, @DataSize) = ERROR_SUCCESS then
913        begin
914        SetLength(res, DataSize div 2);
915        RegQueryValueExW(Handle, 'InstallDir', nil, @RegType, PByte(@res[1]), @DataSize);
916        res[DataSize div 2] := '\';
917        end;
918      RegCloseKey(Handle);
919      Result := UTF8Encode(res);
920    end;
921  except
922    // Ignore errors.
923  end;
924end;
925{$ENDIF}
926
927Procedure Loadlibvlc(lib : AnsiString; CheckProcNames : Boolean = False);
928
929  Function GetProcAddress(h : TLibHandle; Name : AnsiString) : Pointer;
930
931  begin
932    Result:=dynlibs.GetProcAddress(h,Name);
933    If (Result=Nil) and CheckProcNames then
934      raise Exception.CreateFmt('Could not find procedure address: %s ',[Name]);
935  end;
936
937  Procedure EM(FN : String);
938
939  begin
940    {$ifndef VER2_6}
941    Raise Exception.CreateFmt('Could not load library "%s": %s',[FN,GetLoadErrorStr]);
942    {$else}
943    raise Exception.CreateFmt('Could not load library "%s"',[FN]);
944    {$endif}
945  end;
946
947  Function TryLoadLib(ALib : String) : TLibHandle;
948  // On Windows, the vlccore lib must be loaded first.
949  // If it is not in the PATH then this will fail when specifying an arbitrary path.
950  // So we load it explicitly from the same directory first
951  {$IFDEF WINDOWS}
952  Var
953    ADir : String;
954  {$endif}
955
956  begin
957    {$IFDEF WINDOWS}
958    Result:=NilHandle;
959    ADir:=ExtractFilePath(ALib);
960    if ADir<>'' then
961      ADir:=IncludeTrailingPathDelimiter(ADir);
962    hclib:=LoadLibrary(ADir+corelibname);
963    if (HCLib<>Nilhandle) then
964    {$ENDIF}
965      Result:=LoadLibrary(ALib);
966  end;
967
968
969{$IFDEF WINDOWS}
970Var
971  D : String;
972{$endif}
973
974begin
975  if (hLib<>NilHandle) then
976    begin
977    Inc(LibRefCount);
978    Exit;
979    end;
980  hlib:=TryLoadLib(lib);
981{$IFDEF WINDOWS}
982  // MVC: This automatism is highly questionable; The end user should in fact determine the library.
983  if (hlib=NilHandle) then
984    begin
985    D:=ExtractFilePath(lib);
986    // Try default name in same directiory.
987    hlib:=TryLoadLib(d+libname);
988    if (hLib=NilHandle) and (d='') then
989      begin
990      // No directory specified, try default name in installation directory.
991      if (DefaultlibPath='') then
992        DefaultLibPath:=GetVLCLibPath;
993      if (DefaultLibPath<>'') then
994        hLib:=TryLoadLib(IncludeTrailingPathDelimiter(DefaultlibPath)+libname);
995      end;
996    end;
997{$endif}
998  if (hLib=NilHandle) then
999    EM(Lib);
1000  Inc(LibRefCount);
1001  pointer(libvlc_errmsg):=GetProcAddress(hlib,'libvlc_errmsg');
1002  pointer(libvlc_clearerr):=GetProcAddress(hlib,'libvlc_clearerr');
1003  pointer(libvlc_printerr):=GetProcAddress(hlib,'libvlc_printerr');
1004  pointer(libvlc_new):=GetProcAddress(hlib,'libvlc_new');
1005  pointer(libvlc_release):=GetProcAddress(hlib,'libvlc_release');
1006  pointer(libvlc_retain):=GetProcAddress(hlib,'libvlc_retain');
1007  pointer(libvlc_add_intf):=GetProcAddress(hlib,'libvlc_add_intf');
1008  pointer(libvlc_set_exit_handler):=GetProcAddress(hlib,'libvlc_set_exit_handler');
1009  pointer(libvlc_wait):=GetProcAddress(hlib,'libvlc_wait');
1010  pointer(libvlc_set_user_agent):=GetProcAddress(hlib,'libvlc_set_user_agent');
1011  pointer(libvlc_get_version):=GetProcAddress(hlib,'libvlc_get_version');
1012  pointer(libvlc_get_compiler):=GetProcAddress(hlib,'libvlc_get_compiler');
1013  pointer(libvlc_get_changeset):=GetProcAddress(hlib,'libvlc_get_changeset');
1014  pointer(libvlc_free):=GetProcAddress(hlib,'libvlc_free');
1015  pointer(libvlc_event_attach):=GetProcAddress(hlib,'libvlc_event_attach');
1016  pointer(libvlc_event_detach):=GetProcAddress(hlib,'libvlc_event_detach');
1017  pointer(libvlc_event_type_name):=GetProcAddress(hlib,'libvlc_event_type_name');
1018  pointer(libvlc_get_log_verbosity):=GetProcAddress(hlib,'libvlc_get_log_verbosity');
1019  pointer(libvlc_set_log_verbosity):=GetProcAddress(hlib,'libvlc_set_log_verbosity');
1020  pointer(libvlc_log_open):=GetProcAddress(hlib,'libvlc_log_open');
1021  pointer(libvlc_log_close):=GetProcAddress(hlib,'libvlc_log_close');
1022  pointer(libvlc_log_count):=GetProcAddress(hlib,'libvlc_log_count');
1023  pointer(libvlc_log_clear):=GetProcAddress(hlib,'libvlc_log_clear');
1024  pointer(libvlc_log_get_iterator):=GetProcAddress(hlib,'libvlc_log_get_iterator');
1025  pointer(libvlc_log_iterator_free):=GetProcAddress(hlib,'libvlc_log_iterator_free');
1026  pointer(libvlc_log_iterator_has_next):=GetProcAddress(hlib,'libvlc_log_iterator_has_next');
1027  pointer(libvlc_log_iterator_next):=GetProcAddress(hlib,'libvlc_log_iterator_next');
1028  pointer(libvlc_module_description_list_release):=GetProcAddress(hlib,'libvlc_module_description_list_release');
1029  pointer(libvlc_audio_filter_list_get):=GetProcAddress(hlib,'libvlc_audio_filter_list_get');
1030  pointer(libvlc_video_filter_list_get):=GetProcAddress(hlib,'libvlc_video_filter_list_get');
1031  pointer(libvlc_clock):=GetProcAddress(hlib,'libvlc_clock');
1032  pointer(libvlc_media_new_location):=GetProcAddress(hlib,'libvlc_media_new_location');
1033  pointer(libvlc_media_new_path):=GetProcAddress(hlib,'libvlc_media_new_path');
1034  pointer(libvlc_media_new_fd):=GetProcAddress(hlib,'libvlc_media_new_fd');
1035  pointer(libvlc_media_new_as_node):=GetProcAddress(hlib,'libvlc_media_new_as_node');
1036  pointer(libvlc_media_add_option):=GetProcAddress(hlib,'libvlc_media_add_option');
1037  pointer(libvlc_media_add_option_flag):=GetProcAddress(hlib,'libvlc_media_add_option_flag');
1038  pointer(libvlc_media_retain):=GetProcAddress(hlib,'libvlc_media_retain');
1039  pointer(libvlc_media_release):=GetProcAddress(hlib,'libvlc_media_release');
1040  pointer(libvlc_media_get_mrl):=GetProcAddress(hlib,'libvlc_media_get_mrl');
1041  pointer(libvlc_media_duplicate):=GetProcAddress(hlib,'libvlc_media_duplicate');
1042  pointer(libvlc_media_get_meta):=GetProcAddress(hlib,'libvlc_media_get_meta');
1043  pointer(libvlc_media_set_meta):=GetProcAddress(hlib,'libvlc_media_set_meta');
1044  pointer(libvlc_media_save_meta):=GetProcAddress(hlib,'libvlc_media_save_meta');
1045  pointer(libvlc_media_get_state):=GetProcAddress(hlib,'libvlc_media_get_state');
1046  pointer(libvlc_media_get_stats):=GetProcAddress(hlib,'libvlc_media_get_stats');
1047  pointer(libvlc_media_subitems):=GetProcAddress(hlib,'libvlc_media_subitems');
1048  pointer(libvlc_media_event_manager):=GetProcAddress(hlib,'libvlc_media_event_manager');
1049  pointer(libvlc_media_get_duration):=GetProcAddress(hlib,'libvlc_media_get_duration');
1050  pointer(libvlc_media_parse):=GetProcAddress(hlib,'libvlc_media_parse');
1051  pointer(libvlc_media_parse_async):=GetProcAddress(hlib,'libvlc_media_parse_async');
1052  pointer(libvlc_media_is_parsed):=GetProcAddress(hlib,'libvlc_media_is_parsed');
1053  pointer(libvlc_media_set_user_data):=GetProcAddress(hlib,'libvlc_media_set_user_data');
1054  pointer(libvlc_media_get_user_data):=GetProcAddress(hlib,'libvlc_media_get_user_data');
1055  pointer(libvlc_media_get_tracks_info):=GetProcAddress(hlib,'libvlc_media_get_tracks_info');
1056  pointer(libvlc_media_player_new):=GetProcAddress(hlib,'libvlc_media_player_new');
1057  pointer(libvlc_media_player_new_from_media):=GetProcAddress(hlib,'libvlc_media_player_new_from_media');
1058  pointer(libvlc_media_player_release):=GetProcAddress(hlib,'libvlc_media_player_release');
1059  pointer(libvlc_media_player_retain):=GetProcAddress(hlib,'libvlc_media_player_retain');
1060  pointer(libvlc_media_player_set_media):=GetProcAddress(hlib,'libvlc_media_player_set_media');
1061  pointer(libvlc_media_player_get_media):=GetProcAddress(hlib,'libvlc_media_player_get_media');
1062  pointer(libvlc_media_player_event_manager):=GetProcAddress(hlib,'libvlc_media_player_event_manager');
1063  pointer(libvlc_media_player_is_playing):=GetProcAddress(hlib,'libvlc_media_player_is_playing');
1064  pointer(libvlc_media_player_play):=GetProcAddress(hlib,'libvlc_media_player_play');
1065  pointer(libvlc_media_player_set_pause):=GetProcAddress(hlib,'libvlc_media_player_set_pause');
1066  pointer(libvlc_media_player_pause):=GetProcAddress(hlib,'libvlc_media_player_pause');
1067  pointer(libvlc_media_player_stop):=GetProcAddress(hlib,'libvlc_media_player_stop');
1068  pointer(libvlc_video_set_callbacks):=GetProcAddress(hlib,'libvlc_video_set_callbacks');
1069  pointer(libvlc_video_set_format):=GetProcAddress(hlib,'libvlc_video_set_format');
1070  pointer(libvlc_video_set_format_callbacks):=GetProcAddress(hlib,'libvlc_video_set_format_callbacks');
1071  pointer(libvlc_media_player_set_nsobject):=GetProcAddress(hlib,'libvlc_media_player_set_nsobject');
1072  pointer(libvlc_media_player_get_nsobject):=GetProcAddress(hlib,'libvlc_media_player_get_nsobject');
1073  pointer(libvlc_media_player_set_agl):=GetProcAddress(hlib,'libvlc_media_player_set_agl');
1074  pointer(libvlc_media_player_get_agl):=GetProcAddress(hlib,'libvlc_media_player_get_agl');
1075  pointer(libvlc_media_player_set_xwindow):=GetProcAddress(hlib,'libvlc_media_player_set_xwindow');
1076  pointer(libvlc_media_player_get_xwindow):=GetProcAddress(hlib,'libvlc_media_player_get_xwindow');
1077  pointer(libvlc_media_player_set_hwnd):=GetProcAddress(hlib,'libvlc_media_player_set_hwnd');
1078  pointer(libvlc_media_player_get_hwnd):=GetProcAddress(hlib,'libvlc_media_player_get_hwnd');
1079  pointer(libvlc_audio_set_callbacks):=GetProcAddress(hlib,'libvlc_audio_set_callbacks');
1080  pointer(libvlc_audio_set_volume_callback):=GetProcAddress(hlib,'libvlc_audio_set_volume_callback');
1081  pointer(libvlc_audio_set_format_callbacks):=GetProcAddress(hlib,'libvlc_audio_set_format_callbacks');
1082  pointer(libvlc_audio_set_format):=GetProcAddress(hlib,'libvlc_audio_set_format');
1083  pointer(libvlc_media_player_get_length):=GetProcAddress(hlib,'libvlc_media_player_get_length');
1084  pointer(libvlc_media_player_get_time):=GetProcAddress(hlib,'libvlc_media_player_get_time');
1085  pointer(libvlc_media_player_set_time):=GetProcAddress(hlib,'libvlc_media_player_set_time');
1086  pointer(libvlc_media_player_get_position):=GetProcAddress(hlib,'libvlc_media_player_get_position');
1087  pointer(libvlc_media_player_set_position):=GetProcAddress(hlib,'libvlc_media_player_set_position');
1088  pointer(libvlc_media_player_set_chapter):=GetProcAddress(hlib,'libvlc_media_player_set_chapter');
1089  pointer(libvlc_media_player_get_chapter):=GetProcAddress(hlib,'libvlc_media_player_get_chapter');
1090  pointer(libvlc_media_player_get_chapter_count):=GetProcAddress(hlib,'libvlc_media_player_get_chapter_count');
1091  pointer(libvlc_media_player_will_play):=GetProcAddress(hlib,'libvlc_media_player_will_play');
1092  pointer(libvlc_media_player_get_chapter_count_for_title):=GetProcAddress(hlib,'libvlc_media_player_get_chapter_count_for_title');
1093  pointer(libvlc_media_player_set_title):=GetProcAddress(hlib,'libvlc_media_player_set_title');
1094  pointer(libvlc_media_player_get_title):=GetProcAddress(hlib,'libvlc_media_player_get_title');
1095  pointer(libvlc_media_player_get_title_count):=GetProcAddress(hlib,'libvlc_media_player_get_title_count');
1096  pointer(libvlc_media_player_previous_chapter):=GetProcAddress(hlib,'libvlc_media_player_previous_chapter');
1097  pointer(libvlc_media_player_next_chapter):=GetProcAddress(hlib,'libvlc_media_player_next_chapter');
1098  pointer(libvlc_media_player_get_rate):=GetProcAddress(hlib,'libvlc_media_player_get_rate');
1099  pointer(libvlc_media_player_set_rate):=GetProcAddress(hlib,'libvlc_media_player_set_rate');
1100  pointer(libvlc_media_player_get_state):=GetProcAddress(hlib,'libvlc_media_player_get_state');
1101  pointer(libvlc_media_player_get_fps):=GetProcAddress(hlib,'libvlc_media_player_get_fps');
1102  pointer(libvlc_media_player_has_vout):=GetProcAddress(hlib,'libvlc_media_player_has_vout');
1103  pointer(libvlc_media_player_is_seekable):=GetProcAddress(hlib,'libvlc_media_player_is_seekable');
1104  pointer(libvlc_media_player_can_pause):=GetProcAddress(hlib,'libvlc_media_player_can_pause');
1105  pointer(libvlc_media_player_next_frame):=GetProcAddress(hlib,'libvlc_media_player_next_frame');
1106  pointer(libvlc_media_player_navigate):=GetProcAddress(hlib,'libvlc_media_player_navigate');
1107  pointer(libvlc_track_description_list_release):=GetProcAddress(hlib,'libvlc_track_description_list_release');
1108  pointer(libvlc_track_description_release):=GetProcAddress(hlib,'libvlc_track_description_release');
1109  pointer(libvlc_toggle_fullscreen):=GetProcAddress(hlib,'libvlc_toggle_fullscreen');
1110  pointer(libvlc_set_fullscreen):=GetProcAddress(hlib,'libvlc_set_fullscreen');
1111  pointer(libvlc_get_fullscreen):=GetProcAddress(hlib,'libvlc_get_fullscreen');
1112  pointer(libvlc_video_set_key_input):=GetProcAddress(hlib,'libvlc_video_set_key_input');
1113  pointer(libvlc_video_set_mouse_input):=GetProcAddress(hlib,'libvlc_video_set_mouse_input');
1114  pointer(libvlc_video_get_size):=GetProcAddress(hlib,'libvlc_video_get_size');
1115  pointer(libvlc_video_get_height):=GetProcAddress(hlib,'libvlc_video_get_height');
1116  pointer(libvlc_video_get_width):=GetProcAddress(hlib,'libvlc_video_get_width');
1117  pointer(libvlc_video_get_cursor):=GetProcAddress(hlib,'libvlc_video_get_cursor');
1118  pointer(libvlc_video_get_scale):=GetProcAddress(hlib,'libvlc_video_get_scale');
1119  pointer(libvlc_video_set_scale):=GetProcAddress(hlib,'libvlc_video_set_scale');
1120  pointer(libvlc_video_get_aspect_ratio):=GetProcAddress(hlib,'libvlc_video_get_aspect_ratio');
1121  pointer(libvlc_video_set_aspect_ratio):=GetProcAddress(hlib,'libvlc_video_set_aspect_ratio');
1122  pointer(libvlc_video_get_spu):=GetProcAddress(hlib,'libvlc_video_get_spu');
1123  pointer(libvlc_video_get_spu_count):=GetProcAddress(hlib,'libvlc_video_get_spu_count');
1124  pointer(libvlc_video_get_spu_description):=GetProcAddress(hlib,'libvlc_video_get_spu_description');
1125  pointer(libvlc_video_set_spu):=GetProcAddress(hlib,'libvlc_video_set_spu');
1126  pointer(libvlc_video_set_subtitle_file):=GetProcAddress(hlib,'libvlc_video_set_subtitle_file');
1127  pointer(libvlc_video_get_spu_delay):=GetProcAddress(hlib,'libvlc_video_get_spu_delay');
1128  pointer(libvlc_video_set_spu_delay):=GetProcAddress(hlib,'libvlc_video_set_spu_delay');
1129  pointer(libvlc_video_get_title_description):=GetProcAddress(hlib,'libvlc_video_get_title_description');
1130  pointer(libvlc_video_get_chapter_description):=GetProcAddress(hlib,'libvlc_video_get_chapter_description');
1131  pointer(libvlc_video_get_crop_geometry):=GetProcAddress(hlib,'libvlc_video_get_crop_geometry');
1132  pointer(libvlc_video_set_crop_geometry):=GetProcAddress(hlib,'libvlc_video_set_crop_geometry');
1133  pointer(libvlc_video_get_teletext):=GetProcAddress(hlib,'libvlc_video_get_teletext');
1134  pointer(libvlc_video_set_teletext):=GetProcAddress(hlib,'libvlc_video_set_teletext');
1135  pointer(libvlc_toggle_teletext):=GetProcAddress(hlib,'libvlc_toggle_teletext');
1136  pointer(libvlc_video_get_track_count):=GetProcAddress(hlib,'libvlc_video_get_track_count');
1137  pointer(libvlc_video_get_track_description):=GetProcAddress(hlib,'libvlc_video_get_track_description');
1138  pointer(libvlc_video_get_track):=GetProcAddress(hlib,'libvlc_video_get_track');
1139  pointer(libvlc_video_set_track):=GetProcAddress(hlib,'libvlc_video_set_track');
1140  pointer(libvlc_video_take_snapshot):=GetProcAddress(hlib,'libvlc_video_take_snapshot');
1141  pointer(libvlc_video_set_deinterlace):=GetProcAddress(hlib,'libvlc_video_set_deinterlace');
1142  pointer(libvlc_video_get_marquee_int):=GetProcAddress(hlib,'libvlc_video_get_marquee_int');
1143  pointer(libvlc_video_get_marquee_string):=GetProcAddress(hlib,'libvlc_video_get_marquee_string');
1144  pointer(libvlc_video_set_marquee_int):=GetProcAddress(hlib,'libvlc_video_set_marquee_int');
1145  pointer(libvlc_video_set_marquee_string):=GetProcAddress(hlib,'libvlc_video_set_marquee_string');
1146  pointer(libvlc_video_get_logo_int):=GetProcAddress(hlib,'libvlc_video_get_logo_int');
1147  pointer(libvlc_video_set_logo_int):=GetProcAddress(hlib,'libvlc_video_set_logo_int');
1148  pointer(libvlc_video_set_logo_string):=GetProcAddress(hlib,'libvlc_video_set_logo_string');
1149  pointer(libvlc_video_get_adjust_int):=GetProcAddress(hlib,'libvlc_video_get_adjust_int');
1150  pointer(libvlc_video_set_adjust_int):=GetProcAddress(hlib,'libvlc_video_set_adjust_int');
1151  pointer(libvlc_video_get_adjust_float):=GetProcAddress(hlib,'libvlc_video_get_adjust_float');
1152  pointer(libvlc_video_set_adjust_float):=GetProcAddress(hlib,'libvlc_video_set_adjust_float');
1153  pointer(libvlc_audio_output_list_get):=GetProcAddress(hlib,'libvlc_audio_output_list_get');
1154  pointer(libvlc_audio_output_list_release):=GetProcAddress(hlib,'libvlc_audio_output_list_release');
1155  pointer(libvlc_audio_output_set):=GetProcAddress(hlib,'libvlc_audio_output_set');
1156  pointer(libvlc_audio_output_device_count):=GetProcAddress(hlib,'libvlc_audio_output_device_count');
1157  pointer(libvlc_audio_output_device_longname):=GetProcAddress(hlib,'libvlc_audio_output_device_longname');
1158  pointer(libvlc_audio_output_device_id):=GetProcAddress(hlib,'libvlc_audio_output_device_id');
1159  pointer(libvlc_audio_output_device_set):=GetProcAddress(hlib,'libvlc_audio_output_device_set');
1160  pointer(libvlc_audio_output_get_device_type):=GetProcAddress(hlib,'libvlc_audio_output_get_device_type');
1161  pointer(libvlc_audio_output_set_device_type):=GetProcAddress(hlib,'libvlc_audio_output_set_device_type');
1162  pointer(libvlc_audio_toggle_mute):=GetProcAddress(hlib,'libvlc_audio_toggle_mute');
1163  pointer(libvlc_audio_get_mute):=GetProcAddress(hlib,'libvlc_audio_get_mute');
1164  pointer(libvlc_audio_set_mute):=GetProcAddress(hlib,'libvlc_audio_set_mute');
1165  pointer(libvlc_audio_get_volume):=GetProcAddress(hlib,'libvlc_audio_get_volume');
1166  pointer(libvlc_audio_set_volume):=GetProcAddress(hlib,'libvlc_audio_set_volume');
1167  pointer(libvlc_audio_get_track_count):=GetProcAddress(hlib,'libvlc_audio_get_track_count');
1168  pointer(libvlc_audio_get_track_description):=GetProcAddress(hlib,'libvlc_audio_get_track_description');
1169  pointer(libvlc_audio_get_track):=GetProcAddress(hlib,'libvlc_audio_get_track');
1170  pointer(libvlc_audio_set_track):=GetProcAddress(hlib,'libvlc_audio_set_track');
1171  pointer(libvlc_audio_get_channel):=GetProcAddress(hlib,'libvlc_audio_get_channel');
1172  pointer(libvlc_audio_set_channel):=GetProcAddress(hlib,'libvlc_audio_set_channel');
1173  pointer(libvlc_audio_get_delay):=GetProcAddress(hlib,'libvlc_audio_get_delay');
1174  pointer(libvlc_audio_set_delay):=GetProcAddress(hlib,'libvlc_audio_set_delay');
1175  pointer(libvlc_media_list_new):=GetProcAddress(hlib,'libvlc_media_list_new');
1176  pointer(libvlc_media_list_release):=GetProcAddress(hlib,'libvlc_media_list_release');
1177  pointer(libvlc_media_list_retain):=GetProcAddress(hlib,'libvlc_media_list_retain');
1178  pointer(libvlc_media_list_add_file_content):=GetProcAddress(hlib,'libvlc_media_list_add_file_content');
1179  pointer(libvlc_media_list_set_media):=GetProcAddress(hlib,'libvlc_media_list_set_media');
1180  pointer(libvlc_media_list_media):=GetProcAddress(hlib,'libvlc_media_list_media');
1181  pointer(libvlc_media_list_add_media):=GetProcAddress(hlib,'libvlc_media_list_add_media');
1182  pointer(libvlc_media_list_insert_media):=GetProcAddress(hlib,'libvlc_media_list_insert_media');
1183  pointer(libvlc_media_list_remove_index):=GetProcAddress(hlib,'libvlc_media_list_remove_index');
1184  pointer(libvlc_media_list_count):=GetProcAddress(hlib,'libvlc_media_list_count');
1185  pointer(libvlc_media_list_item_at_index):=GetProcAddress(hlib,'libvlc_media_list_item_at_index');
1186  pointer(libvlc_media_list_index_of_item):=GetProcAddress(hlib,'libvlc_media_list_index_of_item');
1187  pointer(libvlc_media_list_is_readonly):=GetProcAddress(hlib,'libvlc_media_list_is_readonly');
1188  pointer(libvlc_media_list_lock):=GetProcAddress(hlib,'libvlc_media_list_lock');
1189  pointer(libvlc_media_list_unlock):=GetProcAddress(hlib,'libvlc_media_list_unlock');
1190  pointer(libvlc_media_list_event_manager):=GetProcAddress(hlib,'libvlc_media_list_event_manager');
1191  pointer(libvlc_media_list_player_new):=GetProcAddress(hlib,'libvlc_media_list_player_new');
1192  pointer(libvlc_media_list_player_release):=GetProcAddress(hlib,'libvlc_media_list_player_release');
1193  pointer(libvlc_media_list_player_retain):=GetProcAddress(hlib,'libvlc_media_list_player_retain');
1194  pointer(libvlc_media_list_player_event_manager):=GetProcAddress(hlib,'libvlc_media_list_player_event_manager');
1195  pointer(libvlc_media_list_player_set_media_player):=GetProcAddress(hlib,'libvlc_media_list_player_set_media_player');
1196  pointer(libvlc_media_list_player_set_media_list):=GetProcAddress(hlib,'libvlc_media_list_player_set_media_list');
1197  pointer(libvlc_media_list_player_play):=GetProcAddress(hlib,'libvlc_media_list_player_play');
1198  pointer(libvlc_media_list_player_pause):=GetProcAddress(hlib,'libvlc_media_list_player_pause');
1199  pointer(libvlc_media_list_player_is_playing):=GetProcAddress(hlib,'libvlc_media_list_player_is_playing');
1200  pointer(libvlc_media_list_player_get_state):=GetProcAddress(hlib,'libvlc_media_list_player_get_state');
1201  pointer(libvlc_media_list_player_play_item_at_index):=GetProcAddress(hlib,'libvlc_media_list_player_play_item_at_index');
1202  pointer(libvlc_media_list_player_play_item):=GetProcAddress(hlib,'libvlc_media_list_player_play_item');
1203  pointer(libvlc_media_list_player_stop):=GetProcAddress(hlib,'libvlc_media_list_player_stop');
1204  pointer(libvlc_media_list_player_next):=GetProcAddress(hlib,'libvlc_media_list_player_next');
1205  pointer(libvlc_media_list_player_previous):=GetProcAddress(hlib,'libvlc_media_list_player_previous');
1206  pointer(libvlc_media_list_player_set_playback_mode):=GetProcAddress(hlib,'libvlc_media_list_player_set_playback_mode');
1207  pointer(libvlc_media_library_new):=GetProcAddress(hlib,'libvlc_media_library_new');
1208  pointer(libvlc_media_library_release):=GetProcAddress(hlib,'libvlc_media_library_release');
1209  pointer(libvlc_media_library_retain):=GetProcAddress(hlib,'libvlc_media_library_retain');
1210  pointer(libvlc_media_library_load):=GetProcAddress(hlib,'libvlc_media_library_load');
1211  pointer(libvlc_media_library_media_list):=GetProcAddress(hlib,'libvlc_media_library_media_list');
1212  pointer(libvlc_media_discoverer_new_from_name):=GetProcAddress(hlib,'libvlc_media_discoverer_new_from_name');
1213  pointer(libvlc_media_discoverer_release):=GetProcAddress(hlib,'libvlc_media_discoverer_release');
1214  pointer(libvlc_media_discoverer_localized_name):=GetProcAddress(hlib,'libvlc_media_discoverer_localized_name');
1215  pointer(libvlc_media_discoverer_media_list):=GetProcAddress(hlib,'libvlc_media_discoverer_media_list');
1216  pointer(libvlc_media_discoverer_event_manager):=GetProcAddress(hlib,'libvlc_media_discoverer_event_manager');
1217  pointer(libvlc_media_discoverer_is_running):=GetProcAddress(hlib,'libvlc_media_discoverer_is_running');
1218  pointer(libvlc_vlm_release):=GetProcAddress(hlib,'libvlc_vlm_release');
1219  pointer(libvlc_vlm_add_broadcast):=GetProcAddress(hlib,'libvlc_vlm_add_broadcast');
1220  pointer(libvlc_vlm_add_vod):=GetProcAddress(hlib,'libvlc_vlm_add_vod');
1221  pointer(libvlc_vlm_del_media):=GetProcAddress(hlib,'libvlc_vlm_del_media');
1222  pointer(libvlc_vlm_set_enabled):=GetProcAddress(hlib,'libvlc_vlm_set_enabled');
1223  pointer(libvlc_vlm_set_output):=GetProcAddress(hlib,'libvlc_vlm_set_output');
1224  pointer(libvlc_vlm_set_input):=GetProcAddress(hlib,'libvlc_vlm_set_input');
1225  pointer(libvlc_vlm_add_input):=GetProcAddress(hlib,'libvlc_vlm_add_input');
1226  pointer(libvlc_vlm_set_loop):=GetProcAddress(hlib,'libvlc_vlm_set_loop');
1227  pointer(libvlc_vlm_set_mux):=GetProcAddress(hlib,'libvlc_vlm_set_mux');
1228  pointer(libvlc_vlm_change_media):=GetProcAddress(hlib,'libvlc_vlm_change_media');
1229  pointer(libvlc_vlm_play_media):=GetProcAddress(hlib,'libvlc_vlm_play_media');
1230  pointer(libvlc_vlm_stop_media):=GetProcAddress(hlib,'libvlc_vlm_stop_media');
1231  pointer(libvlc_vlm_pause_media):=GetProcAddress(hlib,'libvlc_vlm_pause_media');
1232  pointer(libvlc_vlm_seek_media):=GetProcAddress(hlib,'libvlc_vlm_seek_media');
1233  pointer(libvlc_vlm_show_media):=GetProcAddress(hlib,'libvlc_vlm_show_media');
1234  pointer(libvlc_vlm_get_media_instance_position):=GetProcAddress(hlib,'libvlc_vlm_get_media_instance_position');
1235  pointer(libvlc_vlm_get_media_instance_time):=GetProcAddress(hlib,'libvlc_vlm_get_media_instance_time');
1236  pointer(libvlc_vlm_get_media_instance_length):=GetProcAddress(hlib,'libvlc_vlm_get_media_instance_length');
1237  pointer(libvlc_vlm_get_media_instance_rate):=GetProcAddress(hlib,'libvlc_vlm_get_media_instance_rate');
1238  pointer(libvlc_vlm_get_event_manager):=GetProcAddress(hlib,'libvlc_vlm_get_event_manager');
1239  pointer(libvlc_playlist_play):=GetProcAddress(hlib,'libvlc_playlist_play');
1240end;
1241
1242
1243end.
1244