summaryrefslogtreecommitdiff
path: root/src/3rdparty/libvlc/libvlc.pas
blob: cfdc1e52a25d4e5519b923180238fa4cdc299b7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156

{$mode objfpc}
unit libvlc;
interface

uses
  ctypes;

{$IFDEF FPC}
{$PACKRECORDS C}
{$ENDIF}

Const

{$ifdef unix}
  libname = 'libvlc.so';
{$else}
{$ifdef windows}
  DefaultlibPath = 'C:\Program files\Videolan\VLC\';
  corelibname    = 'libvlccore.dll';
  libname        = 'libvlc.dll';
{$endif}
{$endif}

  Type
  _bool = cint;
   Ppcchar = ^Pcchar;

  // Opaque types.  
  libvlc_event_manager_t = record end;
  Libvlc_instance_t = record end;
  Libvlc_log_iterator_t = record end;
  Libvlc_log_t = record end;
  Libvlc_media_discoverer_t = record end;
  Libvlc_media_library_t = record end;
  Libvlc_media_list_player_t = record end;
  Libvlc_media_list_t = record end;
  Libvlc_media_player_t = record end;
  Libvlc_media_t = record end;
  
  Plibvlc_audio_output_t  = ^libvlc_audio_output_t;
  Plibvlc_event_manager_t  = ^libvlc_event_manager_t;
  Plibvlc_event_t  = ^libvlc_event_t;
  Plibvlc_instance_t  = ^libvlc_instance_t;
  Plibvlc_log_iterator_t  = ^libvlc_log_iterator_t;
  Plibvlc_log_message_t  = ^libvlc_log_message_t;
  Plibvlc_log_t  = ^libvlc_log_t;
  Plibvlc_media_discoverer_t  = ^libvlc_media_discoverer_t;
  Plibvlc_media_library_t  = ^libvlc_media_library_t;
  Plibvlc_media_list_player_t  = ^libvlc_media_list_player_t;
  Plibvlc_media_list_t  = ^libvlc_media_list_t;
  Plibvlc_media_player_t  = ^libvlc_media_player_t;
  Plibvlc_media_stats_t  = ^libvlc_media_stats_t;
  Plibvlc_media_t  = ^libvlc_media_t;
  Plibvlc_media_track_info_t  = ^libvlc_media_track_info_t;
  Plibvlc_module_description_t  = ^libvlc_module_description_t;
  Plibvlc_track_description_t  = ^libvlc_track_description_t;

  int8_t = cschar;
  int16_t = csint;
  int32_t = cint;
  int64_t = clong;
  uint8_t = cuchar;
  uint16_t = csint;
  uint32_t = cuint;
  uint64_t = culong;
  int_least8_t = cschar;
  int_least16_t = csint;
  int_least32_t = cint;
  int_least64_t = clong;
  uint_least8_t = cuchar;
  uint_least16_t = csint;
  uint_least32_t = cuint;
  uint_least64_t = culong;
  int_fast8_t = cschar;
  int_fast16_t = clong;
  int_fast32_t = clong;
  int_fast64_t = clong;
  uint_fast8_t = cuchar;
  uint_fast16_t = culong;
  uint_fast32_t = culong;
  uint_fast64_t = culong;
  intptr_t = clong;
  uintptr_t = culong;
  intmax_t = clong;
  uintmax_t = culong;

  libvlc_time_t = int64_t;
  libvlc_log_message_t = record
    i_severity : cint;
    psz_type : ^cchar;
    psz_name : ^cchar;
    psz_header : ^cchar;
    psz_message : ^cchar;
  end;

  libvlc_event_type_t = cint;
  libvlc_callback_t = procedure (_para1:Plibvlc_event_t; _para2:pointer);cdecl;

  libvlc_module_description_t = record
    psz_name : ^cchar;
    psz_shortname : ^cchar;
    psz_longname : ^cchar;
    psz_help : ^cchar;
    p_next : ^libvlc_module_description_t;
  end;

{
static inline int64_t libvlc_delay(int64_t pts)

    return pts - libvlc_clock();

 }


  libvlc_meta_t = (libvlc_meta_Title,libvlc_meta_Artist,
    libvlc_meta_Genre,libvlc_meta_Copyright,
    libvlc_meta_Album,libvlc_meta_TrackNumber,
    libvlc_meta_Description,libvlc_meta_Rating,
    libvlc_meta_Date,libvlc_meta_Setting,
    libvlc_meta_URL,libvlc_meta_Language,
    libvlc_meta_NowPlaying,libvlc_meta_Publisher,
    libvlc_meta_EncodedBy,libvlc_meta_ArtworkURL,
    libvlc_meta_TrackID);

  libvlc_state_t = (libvlc_NothingSpecial := 0,libvlc_Opening,
    libvlc_Buffering,libvlc_Playing,libvlc_Paused,
    libvlc_Stopped,libvlc_Ended,libvlc_Error
    );

  libvlc_media_option_t = (libvlc_media_option_trusted := $2,libvlc_media_option_unique := $100
    );

  libvlc_track_type_t = (libvlc_track_unknown := -(1),libvlc_track_audio := 0,
    libvlc_track_video := 1,libvlc_track_text := 2
    );

  libvlc_media_stats_t = record
    i_read_bytes : cint;
    f_input_bitrate : cfloat;
    i_demux_read_bytes : cint;
    f_demux_bitrate : cfloat;
    i_demux_corrupted : cint;
    i_demux_discontinuity : cint;
    i_decoded_video : cint;
    i_decoded_audio : cint;
    i_displayed_pictures : cint;
    i_lost_pictures : cint;
    i_played_abuffers : cint;
    i_lost_abuffers : cint;
    i_sent_packets : cint;
    i_sent_bytes : cint;
    f_send_bitrate : cfloat;
  end;

  libvlc_media_track_info_t = record
    i_codec : uint32_t;
    i_id : cint;
    i_type : libvlc_track_type_t;
    i_profile : cint;
    i_level : cint;
    u : record
      case longint of
        0 : ( audio : record
            i_channels : cunsigned;
            i_rate : cunsigned;
          end );
        1 : ( video : record
            i_height : cunsigned;
            i_width : cunsigned;
          end );
      end;
  end;


  libvlc_track_description_t = record
    i_id : cint;
    psz_name : ^cchar;
    p_next : ^libvlc_track_description_t;
  end;

  libvlc_audio_output_t = record
    psz_name : ^cchar;
    psz_description : ^cchar;
    p_next : ^libvlc_audio_output_t;
  end;

  libvlc_rectangle_t = record
    top : cint;
    left : cint;
    bottom : cint;
    right : cint;
  end;

  libvlc_video_marquee_option_t = (libvlc_marquee_Enable := 0,libvlc_marquee_Text,
    libvlc_marquee_Color,libvlc_marquee_Opacity,
    libvlc_marquee_Position,libvlc_marquee_Refresh,
    libvlc_marquee_Size,libvlc_marquee_Timeout,
    libvlc_marquee_X,libvlc_marquee_Y);

  libvlc_navigate_mode_t = (libvlc_navigate_activate := 0,libvlc_navigate_up,
    libvlc_navigate_down,libvlc_navigate_left,
    libvlc_navigate_right);


  libvlc_video_lock_cb = function (opaque:pointer; planes:Ppointer):pointer;cdecl;
  libvlc_video_unlock_cb = procedure (opaque:pointer; picture:pointer; planes:Ppointer);cdecl;
  libvlc_video_display_cb = procedure (opaque:pointer; picture:pointer);cdecl;
  libvlc_video_format_cb = function (opaque:Ppointer; chroma:pcchar; width:pcunsigned; height:pcunsigned; pitches:pcunsigned;
               lines:pcunsigned):cunsigned;cdecl;
  libvlc_video_cleanup_cb = procedure (opaque:pointer);cdecl;
  libvlc_audio_play_cb = procedure (data:pointer; samples:pointer; count:cunsigned; pts:int64_t);cdecl;
  libvlc_audio_pause_cb = procedure (data:pointer; pts:int64_t);cdecl;
  libvlc_audio_resume_cb = procedure (data:pointer; pts:int64_t);cdecl;
  libvlc_audio_flush_cb = procedure (data:pointer; pts:int64_t);cdecl;
  libvlc_audio_drain_cb = procedure (data:pointer);cdecl;
  libvlc_audio_set_volume_cb = procedure (data:pointer; volume:cfloat; mute:_Bool);cdecl;
  libvlc_audio_setup_cb = function (data:Ppointer; format:pcchar; rate:pcunsigned; channels:pcunsigned):cint;cdecl;
  libvlc_audio_cleanup_cb = procedure (data:pointer);cdecl;
  libvlc_video_logo_option_t = (libvlc_logo_enable,libvlc_logo_file,libvlc_logo_x,
    libvlc_logo_y,libvlc_logo_delay,libvlc_logo_repeat,
    libvlc_logo_opacity,libvlc_logo_position
    );
  libvlc_video_adjust_option_t = (libvlc_adjust_Enable := 0,libvlc_adjust_Contrast,
    libvlc_adjust_Brightness,libvlc_adjust_Hue,
    libvlc_adjust_Saturation,libvlc_adjust_Gamma
    );
  libvlc_audio_output_device_types_t = (libvlc_AudioOutputDevice_Error := -(1),
    libvlc_AudioOutputDevice_Mono := 1,
    libvlc_AudioOutputDevice_Stereo := 2,
    libvlc_AudioOutputDevice_2F2R := 4,
    libvlc_AudioOutputDevice_3F2R := 5,
    libvlc_AudioOutputDevice_5_1 := 6,libvlc_AudioOutputDevice_6_1 := 7,
    libvlc_AudioOutputDevice_7_1 := 8,libvlc_AudioOutputDevice_SPDIF := 10
    );

  libvlc_audio_output_channel_t = (libvlc_AudioChannel_Error := -(1),libvlc_AudioChannel_Stereo := 1,
    libvlc_AudioChannel_RStereo := 2,libvlc_AudioChannel_Left := 3,
    libvlc_AudioChannel_Right := 4,libvlc_AudioChannel_Dolbys := 5
    );
  libvlc_playback_mode_t = (libvlc_playback_mode_default,libvlc_playback_mode_loop,
    libvlc_playback_mode_repeat);

  libvlc_event_e = (libvlc_MediaMetaChanged := 0,
    libvlc_MediaSubItemAdded,
    libvlc_MediaDurationChanged,libvlc_MediaParsedChanged,
    libvlc_MediaFreed,libvlc_MediaStateChanged,
    libvlc_MediaPlayerMediaChanged := $100,
    libvlc_MediaPlayerNothingSpecial,libvlc_MediaPlayerOpening,
    libvlc_MediaPlayerBuffering,libvlc_MediaPlayerPlaying,
    libvlc_MediaPlayerPaused,libvlc_MediaPlayerStopped,
    libvlc_MediaPlayerForward,libvlc_MediaPlayerBackward,
    libvlc_MediaPlayerEndReached,libvlc_MediaPlayerEncounteredError,
    libvlc_MediaPlayerTimeChanged,libvlc_MediaPlayerPositionChanged,
    libvlc_MediaPlayerSeekableChanged,libvlc_MediaPlayerPausableChanged,
    libvlc_MediaPlayerTitleChanged,libvlc_MediaPlayerSnapshotTaken,
    libvlc_MediaPlayerLengthChanged,libvlc_MediaPlayerVout,
    libvlc_MediaListItemAdded := $200,libvlc_MediaListWillAddItem,
    libvlc_MediaListItemDeleted,libvlc_MediaListWillDeleteItem,
    libvlc_MediaListViewItemAdded := $300,
    libvlc_MediaListViewWillAddItem,libvlc_MediaListViewItemDeleted,
    libvlc_MediaListViewWillDeleteItem,libvlc_MediaListPlayerPlayed := $400,
    libvlc_MediaListPlayerNextItemSet,libvlc_MediaListPlayerStopped,
    libvlc_MediaDiscovererStarted := $500,
    libvlc_MediaDiscovererEnded,libvlc_VlmMediaAdded := $600,
    libvlc_VlmMediaRemoved,libvlc_VlmMediaChanged,
    libvlc_VlmMediaInstanceStarted,libvlc_VlmMediaInstanceStopped,
    libvlc_VlmMediaInstanceStatusInit,libvlc_VlmMediaInstanceStatusOpening,
    libvlc_VlmMediaInstanceStatusPlaying,
    libvlc_VlmMediaInstanceStatusPause,libvlc_VlmMediaInstanceStatusEnd,
    libvlc_VlmMediaInstanceStatusError);


  libvlc_event_t = record
    _type : cint;
    p_obj : pointer;
      case longint of
        0 : ( media_meta_changed : record
            meta_type : libvlc_meta_t;
          end );
        1 : ( media_subitem_added : record
            new_child : ^libvlc_media_t;
          end );
        2 : ( media_duration_changed : record
            new_duration : int64_t;
          end );
        3 : ( media_parsed_changed : record
            new_status : cint;
          end );
        4 : ( media_freed : record
            md : ^libvlc_media_t;
          end );
        5 : ( media_state_changed : record
            new_state : libvlc_state_t;
          end );
        6 : ( media_player_buffering : record
            new_cache : cfloat;
          end );
        7 : ( media_player_position_changed : record
            new_position : cfloat;
          end );
        8 : ( media_player_time_changed : record
            new_time : libvlc_time_t;
          end );
        9 : ( media_player_title_changed : record
            new_title : cint;
          end );
        10 : ( media_player_seekable_changed : record
            new_seekable : cint;
          end );
        11 : ( media_player_pausable_changed : record
            new_pausable : cint;
          end );
        12 : ( media_player_vout : record
            new_count : cint;
          end );
        13 : ( media_list_item_added : record
            item : ^libvlc_media_t;
            index : cint;
          end );
        14 : ( media_list_will_add_item : record
            item : ^libvlc_media_t;
            index : cint;
          end );
        15 : ( media_list_item_deleted : record
            item : ^libvlc_media_t;
            index : cint;
          end );
        16 : ( media_list_will_delete_item : record
            item : ^libvlc_media_t;
            index : cint;
          end );
        17 : ( media_list_player_next_item_set : record
            item : ^libvlc_media_t;
          end );
        18 : ( media_player_snapshot_taken : record
            psz_filename : ^cchar;
          end );
        19 : ( media_player_length_changed : record
            new_length : libvlc_time_t;
          end );
        20 : ( vlm_media_event : record
            psz_media_name : ^cchar;
            psz_instance_name : ^cchar;
          end );
        21 : ( media_player_media_changed : record
            new_media : ^libvlc_media_t;
          end );
    end;

  PPlibvlc_media_track_info_t = ^Plibvlc_media_track_info_t;
  cbtype1 = procedure (_para1:pointer); cdecl;

Var
    libvlc_media_player_new : function(p_libvlc_instance:Plibvlc_instance_t):plibvlc_media_player_t; cdecl;
    libvlc_media_player_new_from_media : function(p_md:Plibvlc_media_t):plibvlc_media_player_t; cdecl;
    libvlc_media_player_release : procedure(p_mi:Plibvlc_media_player_t); cdecl;
    libvlc_media_player_retain : procedure(p_mi:Plibvlc_media_player_t); cdecl;
    libvlc_media_player_set_media : procedure(p_mi:Plibvlc_media_player_t; p_md:Plibvlc_media_t); cdecl;
    libvlc_media_player_get_media : function(p_mi:Plibvlc_media_player_t):plibvlc_media_t; cdecl;
    libvlc_media_player_event_manager : function(p_mi:Plibvlc_media_player_t):plibvlc_event_manager_t; cdecl;
    libvlc_media_player_is_playing : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_media_player_play : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_media_player_set_pause : procedure(mp:Plibvlc_media_player_t; do_pause:cint); cdecl;
    libvlc_media_player_pause : procedure(p_mi:Plibvlc_media_player_t); cdecl;
    libvlc_media_player_stop : procedure(p_mi:Plibvlc_media_player_t); cdecl;
    libvlc_media_new_location : function(p_instance:Plibvlc_instance_t; psz_mrl:pcchar):plibvlc_media_t; cdecl;
    libvlc_media_new_path : function(p_instance:Plibvlc_instance_t; path:pcchar):plibvlc_media_t; cdecl;
    libvlc_media_new_fd : function(p_instance:Plibvlc_instance_t; fd:cint):plibvlc_media_t; cdecl;
    libvlc_media_new_as_node : function(p_instance:Plibvlc_instance_t; psz_name:pcchar):plibvlc_media_t; cdecl;
    libvlc_media_add_option : procedure(p_md:Plibvlc_media_t; ppsz_options:pcchar); cdecl;
    libvlc_media_add_option_flag : procedure(p_md:Plibvlc_media_t; ppsz_options:pcchar; i_flags:cunsigned); cdecl;
    libvlc_media_retain : procedure(p_md:Plibvlc_media_t); cdecl;
    libvlc_media_release : procedure(p_md:Plibvlc_media_t); cdecl;
    libvlc_media_get_mrl : function(p_md:Plibvlc_media_t):pcchar; cdecl;
    libvlc_media_duplicate : function(p_md:Plibvlc_media_t):plibvlc_media_t; cdecl;
    libvlc_media_get_meta : function(p_md:Plibvlc_media_t; e_meta:libvlc_meta_t):pcchar; cdecl;
    libvlc_media_set_meta : procedure(p_md:Plibvlc_media_t; e_meta:libvlc_meta_t; psz_value:pcchar); cdecl;
    libvlc_media_save_meta : function(p_md:Plibvlc_media_t):cint; cdecl;
    libvlc_media_get_state : function(p_md:Plibvlc_media_t):libvlc_state_t; cdecl;
    libvlc_media_get_stats : function(p_md:Plibvlc_media_t; p_stats:Plibvlc_media_stats_t):cint; cdecl;
    libvlc_media_subitems : function(p_md:Plibvlc_media_t):plibvlc_media_list_t; cdecl;
    libvlc_media_event_manager : function(p_md:Plibvlc_media_t):plibvlc_event_manager_t; cdecl;
    libvlc_media_get_duration : function(p_md:Plibvlc_media_t):libvlc_time_t; cdecl;
    libvlc_media_parse : procedure(p_md:Plibvlc_media_t); cdecl;
    libvlc_media_parse_async : procedure(p_md:Plibvlc_media_t); cdecl;
    libvlc_media_is_parsed : function(p_md:Plibvlc_media_t):cint; cdecl;
    libvlc_media_set_user_data : procedure(p_md:Plibvlc_media_t; p_new_user_data:pointer); cdecl;
    libvlc_media_get_user_data : function(p_md:Plibvlc_media_t):pointer; cdecl;
    libvlc_media_get_tracks_info : function(p_md:Plibvlc_media_t; tracks:PPlibvlc_media_track_info_t):cint; cdecl;
    libvlc_module_description_list_release : procedure(p_list:Plibvlc_module_description_t); cdecl;
    libvlc_audio_filter_list_get : function(p_instance:Plibvlc_instance_t):plibvlc_module_description_t; cdecl;
    libvlc_video_filter_list_get : function(p_instance:Plibvlc_instance_t):plibvlc_module_description_t; cdecl;
    libvlc_clock : function:int64_t; cdecl;

    libvlc_errmsg : function:pcchar; cdecl;
    libvlc_clearerr : procedure; cdecl;
    libvlc_printerr : function(fmt:pcchar):pcchar;varargs; cdecl;

    libvlc_new : function(argc:cint; argv:Ppcchar):plibvlc_instance_t; cdecl;
    libvlc_release : procedure(p_instance:Plibvlc_instance_t); cdecl;
    libvlc_retain : procedure(p_instance:Plibvlc_instance_t); cdecl;
    libvlc_add_intf : function(p_instance:Plibvlc_instance_t; name:pcchar):cint; cdecl;
    libvlc_set_exit_handler : procedure(p_instance:Plibvlc_instance_t; cb:cbtype1; opaque:pointer); cdecl;
    libvlc_wait : procedure(p_instance:Plibvlc_instance_t); cdecl;
    libvlc_set_user_agent : procedure(p_instance:Plibvlc_instance_t; name:pcchar; http:pcchar); cdecl;
    libvlc_get_version : function:pcchar; cdecl;
    libvlc_get_compiler : function:pcchar; cdecl;
    libvlc_get_changeset : function:pcchar; cdecl;
    libvlc_free : procedure(ptr:pointer); cdecl;
    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;
    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;
    libvlc_event_type_name : function(event_type:libvlc_event_type_t):pcchar; cdecl;
    libvlc_get_log_verbosity : function(p_instance:Plibvlc_instance_t):cunsigned; cdecl;
    libvlc_set_log_verbosity : procedure(p_instance:Plibvlc_instance_t; level:cunsigned); cdecl;
    libvlc_log_open : function(p_instance:Plibvlc_instance_t):plibvlc_log_t; cdecl;
    libvlc_log_close : procedure(p_log:Plibvlc_log_t); cdecl;
    libvlc_log_count : function(p_log:Plibvlc_log_t):cunsigned; cdecl;
    libvlc_log_clear : procedure(p_log:Plibvlc_log_t); cdecl;
    libvlc_log_get_iterator : function(p_log:Plibvlc_log_t):plibvlc_log_iterator_t; cdecl;
    libvlc_log_iterator_free : procedure(p_iter:Plibvlc_log_iterator_t); cdecl;
    libvlc_log_iterator_has_next : function(p_iter:Plibvlc_log_iterator_t):cint; cdecl;
    libvlc_log_iterator_next : function(p_iter:Plibvlc_log_iterator_t; p_buffer:Plibvlc_log_message_t):plibvlc_log_message_t; cdecl;
    libvlc_audio_output_list_get : function(p_instance:Plibvlc_instance_t):plibvlc_audio_output_t; cdecl;
    libvlc_audio_output_list_release : procedure(p_list:Plibvlc_audio_output_t); cdecl;
    libvlc_audio_output_set : function(p_mi:Plibvlc_media_player_t; psz_name:pcchar):cint; cdecl;
    libvlc_audio_output_device_count : function(p_instance:Plibvlc_instance_t; psz_audio_output:pcchar):cint; cdecl;
    libvlc_audio_output_device_longname : function(p_instance:Plibvlc_instance_t; psz_audio_output:pcchar; i_device:cint):pcchar; cdecl;
    libvlc_audio_output_device_id : function(p_instance:Plibvlc_instance_t; psz_audio_output:pcchar; i_device:cint):pcchar; cdecl;
    libvlc_audio_output_device_set : procedure(p_mi:Plibvlc_media_player_t; psz_audio_output:pcchar; psz_device_id:pcchar); cdecl;
    libvlc_audio_output_get_device_type : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_audio_output_set_device_type : procedure(p_mi:Plibvlc_media_player_t; device_type:cint); cdecl;
    libvlc_audio_toggle_mute : procedure(p_mi:Plibvlc_media_player_t); cdecl;
    libvlc_audio_get_mute : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_audio_set_mute : procedure(p_mi:Plibvlc_media_player_t; status:cint); cdecl;
    libvlc_audio_get_volume : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_audio_set_volume : function(p_mi:Plibvlc_media_player_t; i_volume:cint):cint; cdecl;
    libvlc_audio_get_track_count : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_audio_get_track_description : function(p_mi:Plibvlc_media_player_t):plibvlc_track_description_t; cdecl;
    libvlc_audio_get_track : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_audio_set_track : function(p_mi:Plibvlc_media_player_t; i_track:cint):cint; cdecl;
    libvlc_audio_get_channel : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_audio_set_channel : function(p_mi:Plibvlc_media_player_t; channel:cint):cint; cdecl;
    libvlc_audio_get_delay : function(p_mi:Plibvlc_media_player_t):int64_t; cdecl;
    libvlc_audio_set_delay : function(p_mi:Plibvlc_media_player_t; i_delay:int64_t):cint; cdecl;
    libvlc_media_list_new : function(p_instance:Plibvlc_instance_t):plibvlc_media_list_t; cdecl;
    libvlc_media_list_release : procedure(p_ml:Plibvlc_media_list_t); cdecl;
    libvlc_media_list_retain : procedure(p_ml:Plibvlc_media_list_t); cdecl;

    libvlc_media_list_add_file_content : function(p_ml:Plibvlc_media_list_t; psz_uri:pcchar):cint; cdecl;
    libvlc_media_list_set_media : procedure(p_ml:Plibvlc_media_list_t; p_md:Plibvlc_media_t); cdecl;
    libvlc_media_list_media : function(p_ml:Plibvlc_media_list_t):plibvlc_media_t; cdecl;
    libvlc_media_list_add_media : function(p_ml:Plibvlc_media_list_t; p_md:Plibvlc_media_t):cint; cdecl;
    libvlc_media_list_insert_media : function(p_ml:Plibvlc_media_list_t; p_md:Plibvlc_media_t; i_pos:cint):cint; cdecl;
    libvlc_media_list_remove_index : function(p_ml:Plibvlc_media_list_t; i_pos:cint):cint; cdecl;
    libvlc_media_list_count : function(p_ml:Plibvlc_media_list_t):cint; cdecl;
    libvlc_media_list_item_at_index : function(p_ml:Plibvlc_media_list_t; i_pos:cint):plibvlc_media_t; cdecl;
    libvlc_media_list_index_of_item : function(p_ml:Plibvlc_media_list_t; p_md:Plibvlc_media_t):cint; cdecl;
    libvlc_media_list_is_readonly : function(p_ml:Plibvlc_media_list_t):cint; cdecl;
    libvlc_media_list_lock : procedure(p_ml:Plibvlc_media_list_t); cdecl;
    libvlc_media_list_unlock : procedure(p_ml:Plibvlc_media_list_t); cdecl;
    libvlc_media_list_event_manager : function(p_ml:Plibvlc_media_list_t):plibvlc_event_manager_t; cdecl;
    libvlc_media_list_player_new : function(p_instance:Plibvlc_instance_t):plibvlc_media_list_player_t; cdecl;
    libvlc_media_list_player_release : procedure(p_mlp:Plibvlc_media_list_player_t); cdecl;
    libvlc_media_list_player_retain : procedure(p_mlp:Plibvlc_media_list_player_t); cdecl;
    libvlc_media_list_player_event_manager : function(p_mlp:Plibvlc_media_list_player_t):plibvlc_event_manager_t; cdecl;
    libvlc_media_list_player_set_media_player : procedure(p_mlp:Plibvlc_media_list_player_t; p_mi:Plibvlc_media_player_t); cdecl;
    libvlc_media_list_player_set_media_list : procedure(p_mlp:Plibvlc_media_list_player_t; p_mlist:Plibvlc_media_list_t); cdecl;
    libvlc_media_list_player_play : procedure(p_mlp:Plibvlc_media_list_player_t); cdecl;
    libvlc_media_list_player_pause : procedure(p_mlp:Plibvlc_media_list_player_t); cdecl;
    libvlc_media_list_player_is_playing : function(p_mlp:Plibvlc_media_list_player_t):cint; cdecl;
    libvlc_media_list_player_get_state : function(p_mlp:Plibvlc_media_list_player_t):libvlc_state_t; cdecl;
    libvlc_media_list_player_play_item_at_index : function(p_mlp:Plibvlc_media_list_player_t; i_index:cint):cint; cdecl;
    libvlc_media_list_player_play_item : function(p_mlp:Plibvlc_media_list_player_t; p_md:Plibvlc_media_t):cint; cdecl;
    libvlc_media_list_player_stop : procedure(p_mlp:Plibvlc_media_list_player_t); cdecl;
    libvlc_media_list_player_next : function(p_mlp:Plibvlc_media_list_player_t):cint; cdecl;
    libvlc_media_list_player_previous : function(p_mlp:Plibvlc_media_list_player_t):cint; cdecl;
    libvlc_media_list_player_set_playback_mode : procedure(p_mlp:Plibvlc_media_list_player_t; e_mode:libvlc_playback_mode_t); cdecl;
    libvlc_media_library_new : function(p_instance:Plibvlc_instance_t):plibvlc_media_library_t; cdecl;
    libvlc_media_library_release : procedure(p_mlib:Plibvlc_media_library_t); cdecl;
    libvlc_media_library_retain : procedure(p_mlib:Plibvlc_media_library_t); cdecl;
    libvlc_media_library_load : function(p_mlib:Plibvlc_media_library_t):cint; cdecl;
    libvlc_media_library_media_list : function(p_mlib:Plibvlc_media_library_t):plibvlc_media_list_t; cdecl;
    libvlc_video_get_adjust_int : function(p_mi:Plibvlc_media_player_t; option:cunsigned):cint; cdecl;
    libvlc_video_set_adjust_int : procedure(p_mi:Plibvlc_media_player_t; option:cunsigned; value:cint); cdecl;
    libvlc_video_get_adjust_float : function(p_mi:Plibvlc_media_player_t; option:cunsigned):cfloat; cdecl;
    libvlc_video_set_adjust_float : procedure(p_mi:Plibvlc_media_player_t; option:cunsigned; value:cfloat); cdecl;
    libvlc_video_get_logo_int : function(p_mi:Plibvlc_media_player_t; option:cunsigned):cint; cdecl;
    libvlc_video_set_logo_int : procedure(p_mi:Plibvlc_media_player_t; option:cunsigned; value:cint); cdecl;
    libvlc_video_set_logo_string : procedure(p_mi:Plibvlc_media_player_t; option:cunsigned; psz_value:pcchar); cdecl;
    libvlc_audio_set_format_callbacks : procedure(mp:Plibvlc_media_player_t; setup:libvlc_audio_setup_cb; cleanup:libvlc_audio_cleanup_cb); cdecl;
    libvlc_audio_set_format : procedure(mp:Plibvlc_media_player_t; format:pcchar; rate:cunsigned; channels:cunsigned); cdecl;
    libvlc_media_player_get_length : function(p_mi:Plibvlc_media_player_t):libvlc_time_t; cdecl;
    libvlc_media_player_get_time : function(p_mi:Plibvlc_media_player_t):libvlc_time_t; cdecl;
    libvlc_media_player_set_time : procedure(p_mi:Plibvlc_media_player_t; i_time:libvlc_time_t); cdecl;
    libvlc_media_player_get_position : function(p_mi:Plibvlc_media_player_t):cfloat; cdecl;
    libvlc_media_player_set_position : procedure(p_mi:Plibvlc_media_player_t; f_pos:cfloat); cdecl;
    libvlc_media_player_set_chapter : procedure(p_mi:Plibvlc_media_player_t; i_chapter:cint); cdecl;
    libvlc_media_player_get_chapter : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_media_player_get_chapter_count : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_media_player_will_play : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_media_player_get_chapter_count_for_title : function(p_mi:Plibvlc_media_player_t; i_title:cint):cint; cdecl;
    libvlc_media_player_set_title : procedure(p_mi:Plibvlc_media_player_t; i_title:cint); cdecl;
    libvlc_media_player_get_title : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_media_player_get_title_count : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_media_player_previous_chapter : procedure(p_mi:Plibvlc_media_player_t); cdecl;
    libvlc_media_player_next_chapter : procedure(p_mi:Plibvlc_media_player_t); cdecl;
    libvlc_media_player_get_rate : function(p_mi:Plibvlc_media_player_t):cfloat; cdecl;
    libvlc_media_player_set_rate : function(p_mi:Plibvlc_media_player_t; rate:cfloat):cint; cdecl;
    libvlc_media_player_get_state : function(p_mi:Plibvlc_media_player_t):libvlc_state_t; cdecl;
    libvlc_media_player_get_fps : function(p_mi:Plibvlc_media_player_t):cfloat; cdecl;
    libvlc_media_player_has_vout : function(p_mi:Plibvlc_media_player_t):cunsigned; cdecl;
    libvlc_media_player_is_seekable : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_media_player_can_pause : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_media_player_next_frame : procedure(p_mi:Plibvlc_media_player_t); cdecl;
    libvlc_media_player_navigate : procedure(p_mi:Plibvlc_media_player_t; navigate:cunsigned); cdecl;
    libvlc_track_description_list_release : procedure(p_track_description:Plibvlc_track_description_t); cdecl;
    libvlc_track_description_release : procedure(p_track_description:Plibvlc_track_description_t); cdecl;
    libvlc_toggle_fullscreen : procedure(p_mi:Plibvlc_media_player_t); cdecl;
    libvlc_set_fullscreen : procedure(p_mi:Plibvlc_media_player_t; b_fullscreen:cint); cdecl;
    libvlc_get_fullscreen : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_video_set_key_input : procedure(p_mi:Plibvlc_media_player_t; on:cunsigned); cdecl;
    libvlc_video_set_mouse_input : procedure(p_mi:Plibvlc_media_player_t; on:cunsigned); cdecl;
    libvlc_video_get_size : function(p_mi:Plibvlc_media_player_t; num:cunsigned; px:pcunsigned; py:pcunsigned):cint; cdecl;
    libvlc_video_get_height : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_video_get_width : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_video_get_cursor : function(p_mi:Plibvlc_media_player_t; num:cunsigned; px:pcint; py:pcint):cint; cdecl;
    libvlc_video_get_scale : function(p_mi:Plibvlc_media_player_t):cfloat; cdecl;
    libvlc_video_set_scale : procedure(p_mi:Plibvlc_media_player_t; f_factor:cfloat); cdecl;
    libvlc_video_get_aspect_ratio : function(p_mi:Plibvlc_media_player_t):pcchar; cdecl;
    libvlc_video_set_aspect_ratio : procedure(p_mi:Plibvlc_media_player_t; psz_aspect:pcchar); cdecl;
    libvlc_video_get_spu : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_video_get_spu_count : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_video_get_spu_description : function(p_mi:Plibvlc_media_player_t):plibvlc_track_description_t; cdecl;
    libvlc_video_set_spu : function(p_mi:Plibvlc_media_player_t; i_spu:cunsigned):cint; cdecl;
    libvlc_video_set_subtitle_file : function(p_mi:Plibvlc_media_player_t; psz_subtitle:pcchar):cint; cdecl;
    libvlc_video_get_spu_delay : function(p_mi:Plibvlc_media_player_t):int64_t; cdecl;
    libvlc_video_set_spu_delay : function(p_mi:Plibvlc_media_player_t; i_delay:int64_t):cint; cdecl;
    libvlc_video_get_title_description : function(p_mi:Plibvlc_media_player_t):plibvlc_track_description_t; cdecl;
    libvlc_video_get_chapter_description : function(p_mi:Plibvlc_media_player_t; i_title:cint):plibvlc_track_description_t; cdecl;
    libvlc_video_get_crop_geometry : function(p_mi:Plibvlc_media_player_t):pcchar; cdecl;
    libvlc_video_set_crop_geometry : procedure(p_mi:Plibvlc_media_player_t; psz_geometry:pcchar); cdecl;
    libvlc_video_get_teletext : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_video_set_teletext : procedure(p_mi:Plibvlc_media_player_t; i_page:cint); cdecl;
    libvlc_toggle_teletext : procedure(p_mi:Plibvlc_media_player_t); cdecl;
    libvlc_video_get_track_count : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_video_get_track_description : function(p_mi:Plibvlc_media_player_t):plibvlc_track_description_t; cdecl;
    libvlc_video_get_track : function(p_mi:Plibvlc_media_player_t):cint; cdecl;
    libvlc_video_set_track : function(p_mi:Plibvlc_media_player_t; i_track:cint):cint; cdecl;
    libvlc_video_take_snapshot : function(p_mi:Plibvlc_media_player_t; num:cunsigned; psz_filepath:pcchar; i_width:cuint; i_height:cuint):cint; cdecl;
    libvlc_video_set_deinterlace : procedure(p_mi:Plibvlc_media_player_t; psz_mode:pcchar); cdecl;
    libvlc_video_get_marquee_int : function(p_mi:Plibvlc_media_player_t; option:cunsigned):cint; cdecl;
    libvlc_video_get_marquee_string : function(p_mi:Plibvlc_media_player_t; option:cunsigned):pcchar; cdecl;
    libvlc_video_set_marquee_int : procedure(p_mi:Plibvlc_media_player_t; option:cunsigned; i_val:cint); cdecl;
    libvlc_video_set_marquee_string : procedure(p_mi:Plibvlc_media_player_t; option:cunsigned; psz_text:pcchar); cdecl;
    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; 
      drain:libvlc_audio_drain_cb; opaque:pointer); cdecl;
    libvlc_audio_set_volume_callback : procedure(mp:Plibvlc_media_player_t; set_volume:libvlc_audio_set_volume_cb); cdecl;
    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;
    libvlc_video_set_format : procedure(mp:Plibvlc_media_player_t; chroma:pcchar; width:cunsigned; height:cunsigned; pitch:cunsigned); cdecl;
    libvlc_video_set_format_callbacks : procedure(mp:Plibvlc_media_player_t; setup:libvlc_video_format_cb; cleanup:libvlc_video_cleanup_cb); cdecl;
    libvlc_media_player_set_nsobject : procedure(p_mi:Plibvlc_media_player_t; drawable:pointer); cdecl;
    libvlc_media_player_get_nsobject : function(p_mi:Plibvlc_media_player_t):pointer; cdecl;
    libvlc_media_player_set_agl : procedure(p_mi:Plibvlc_media_player_t; drawable:uint32_t); cdecl;
    libvlc_media_player_get_agl : function(p_mi:Plibvlc_media_player_t):uint32_t; cdecl;
    libvlc_media_player_set_xwindow : procedure(p_mi:Plibvlc_media_player_t; drawable:uint32_t); cdecl;
    libvlc_media_player_get_xwindow : function(p_mi:Plibvlc_media_player_t):uint32_t; cdecl;
    libvlc_media_player_set_hwnd : procedure(p_mi:Plibvlc_media_player_t; drawable:pointer); cdecl;
    libvlc_media_player_get_hwnd : function(p_mi:Plibvlc_media_player_t):pointer; cdecl;
    libvlc_media_discoverer_new_from_name : function(p_inst:Plibvlc_instance_t; psz_name:pcchar):plibvlc_media_discoverer_t; cdecl;
    libvlc_media_discoverer_release : procedure(p_mdis:Plibvlc_media_discoverer_t); cdecl;
    libvlc_media_discoverer_localized_name : function(p_mdis:Plibvlc_media_discoverer_t):pcchar; cdecl;
    libvlc_media_discoverer_media_list : function(p_mdis:Plibvlc_media_discoverer_t):plibvlc_media_list_t; cdecl;
    libvlc_media_discoverer_event_manager : function(p_mdis:Plibvlc_media_discoverer_t):plibvlc_event_manager_t; cdecl;
    libvlc_media_discoverer_is_running : function(p_mdis:Plibvlc_media_discoverer_t):cint; cdecl;
    libvlc_vlm_release : procedure(p_instance:Plibvlc_instance_t); cdecl;
    libvlc_vlm_add_broadcast : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_input:pcchar; psz_output:pcchar; i_options:cint; 
      ppsz_options:Ppcchar; b_enabled:cint; b_loop:cint):cint; cdecl;
    libvlc_vlm_add_vod : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_input:pcchar; i_options:cint; ppsz_options:Ppcchar; 
      b_enabled:cint; psz_mux:pcchar):cint; cdecl;
    libvlc_vlm_del_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar):cint; cdecl;
    libvlc_vlm_set_enabled : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; b_enabled:cint):cint; cdecl;
    libvlc_vlm_set_output : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_output:pcchar):cint; cdecl;
    libvlc_vlm_set_input : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_input:pcchar):cint; cdecl;
    libvlc_vlm_add_input : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_input:pcchar):cint; cdecl;
    libvlc_vlm_set_loop : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; b_loop:cint):cint; cdecl;
    libvlc_vlm_set_mux : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_mux:pcchar):cint; cdecl;
    libvlc_vlm_change_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; psz_input:pcchar; psz_output:pcchar; i_options:cint; 
      ppsz_options:Ppcchar; b_enabled:cint; b_loop:cint):cint; cdecl;
    libvlc_vlm_play_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar):cint; cdecl;
    libvlc_vlm_stop_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar):cint; cdecl;
    libvlc_vlm_pause_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar):cint; cdecl;
    libvlc_vlm_seek_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; f_percentage:cfloat):cint; cdecl;
    libvlc_vlm_show_media : function(p_instance:Plibvlc_instance_t; psz_name:pcchar):pcchar; cdecl;
    libvlc_vlm_get_media_instance_position : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; i_instance:cint):cfloat; cdecl;
    libvlc_vlm_get_media_instance_time : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; i_instance:cint):cint; cdecl;
    libvlc_vlm_get_media_instance_length : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; i_instance:cint):cint; cdecl;
    libvlc_vlm_get_media_instance_rate : function(p_instance:Plibvlc_instance_t; psz_name:pcchar; i_instance:cint):cint; cdecl;
    libvlc_vlm_get_event_manager : function(p_instance:Plibvlc_instance_t):plibvlc_event_manager_t; cdecl;
    libvlc_playlist_play : procedure(p_instance:Plibvlc_instance_t; i_id:cint; i_options:cint; ppsz_options:Ppcchar); cdecl;

Procedure Freelibvlc;
Procedure Loadlibvlc(lib : AnsiString; CheckProcNames : Boolean = False);

implementation

uses
  SysUtils, dynlibs;

var
  hlib : tlibhandle;
  LibRefCount : Integer;

procedure Freelibvlc;

begin
  if (LibRefCount>0) then
    Dec(LibRefCount);
  if LibRefCount>0 then
    exit;
  FreeLibrary(hlib);
  libvlc_errmsg:=nil;
  libvlc_clearerr:=nil;
  libvlc_printerr:=nil;
  libvlc_new:=nil;
  libvlc_release:=nil;
  libvlc_retain:=nil;
  libvlc_add_intf:=nil;
  libvlc_set_exit_handler:=nil;
  libvlc_wait:=nil;
  libvlc_set_user_agent:=nil;
  libvlc_get_version:=nil;
  libvlc_get_compiler:=nil;
  libvlc_get_changeset:=nil;
  libvlc_free:=nil;
  libvlc_event_attach:=nil;
  libvlc_event_detach:=nil;
  libvlc_event_type_name:=nil;
  libvlc_get_log_verbosity:=nil;
  libvlc_set_log_verbosity:=nil;
  libvlc_log_open:=nil;
  libvlc_log_close:=nil;
  libvlc_log_count:=nil;
  libvlc_log_clear:=nil;
  libvlc_log_get_iterator:=nil;
  libvlc_log_iterator_free:=nil;
  libvlc_log_iterator_has_next:=nil;
  libvlc_log_iterator_next:=nil;
  libvlc_module_description_list_release:=nil;
  libvlc_audio_filter_list_get:=nil;
  libvlc_video_filter_list_get:=nil;
  libvlc_clock:=nil;
  libvlc_media_new_location:=nil;
  libvlc_media_new_path:=nil;
  libvlc_media_new_fd:=nil;
  libvlc_media_new_as_node:=nil;
  libvlc_media_add_option:=nil;
  libvlc_media_add_option_flag:=nil;
  libvlc_media_retain:=nil;
  libvlc_media_release:=nil;
  libvlc_media_get_mrl:=nil;
  libvlc_media_duplicate:=nil;
  libvlc_media_get_meta:=nil;
  libvlc_media_set_meta:=nil;
  libvlc_media_save_meta:=nil;
  libvlc_media_get_state:=nil;
  libvlc_media_get_stats:=nil;
  libvlc_media_subitems:=nil;
  libvlc_media_event_manager:=nil;
  libvlc_media_get_duration:=nil;
  libvlc_media_parse:=nil;
  libvlc_media_parse_async:=nil;
  libvlc_media_is_parsed:=nil;
  libvlc_media_set_user_data:=nil;
  libvlc_media_get_user_data:=nil;
  libvlc_media_get_tracks_info:=nil;
  libvlc_media_player_new:=nil;
  libvlc_media_player_new_from_media:=nil;
  libvlc_media_player_release:=nil;
  libvlc_media_player_retain:=nil;
  libvlc_media_player_set_media:=nil;
  libvlc_media_player_get_media:=nil;
  libvlc_media_player_event_manager:=nil;
  libvlc_media_player_is_playing:=nil;
  libvlc_media_player_play:=nil;
  libvlc_media_player_set_pause:=nil;
  libvlc_media_player_pause:=nil;
  libvlc_media_player_stop:=nil;
  libvlc_video_set_callbacks:=nil;
  libvlc_video_set_format:=nil;
  libvlc_video_set_format_callbacks:=nil;
  libvlc_media_player_set_nsobject:=nil;
  libvlc_media_player_get_nsobject:=nil;
  libvlc_media_player_set_agl:=nil;
  libvlc_media_player_get_agl:=nil;
  libvlc_media_player_set_xwindow:=nil;
  libvlc_media_player_get_xwindow:=nil;
  libvlc_media_player_set_hwnd:=nil;
  libvlc_media_player_get_hwnd:=nil;
  libvlc_audio_set_callbacks:=nil;
  libvlc_audio_set_volume_callback:=nil;
  libvlc_audio_set_format_callbacks:=nil;
  libvlc_audio_set_format:=nil;
  libvlc_media_player_get_length:=nil;
  libvlc_media_player_get_time:=nil;
  libvlc_media_player_set_time:=nil;
  libvlc_media_player_get_position:=nil;
  libvlc_media_player_set_position:=nil;
  libvlc_media_player_set_chapter:=nil;
  libvlc_media_player_get_chapter:=nil;
  libvlc_media_player_get_chapter_count:=nil;
  libvlc_media_player_will_play:=nil;
  libvlc_media_player_get_chapter_count_for_title:=nil;
  libvlc_media_player_set_title:=nil;
  libvlc_media_player_get_title:=nil;
  libvlc_media_player_get_title_count:=nil;
  libvlc_media_player_previous_chapter:=nil;
  libvlc_media_player_next_chapter:=nil;
  libvlc_media_player_get_rate:=nil;
  libvlc_media_player_set_rate:=nil;
  libvlc_media_player_get_state:=nil;
  libvlc_media_player_get_fps:=nil;
  libvlc_media_player_has_vout:=nil;
  libvlc_media_player_is_seekable:=nil;
  libvlc_media_player_can_pause:=nil;
  libvlc_media_player_next_frame:=nil;
  libvlc_media_player_navigate:=nil;
  libvlc_track_description_list_release:=nil;
  libvlc_track_description_release:=nil;
  libvlc_toggle_fullscreen:=nil;
  libvlc_set_fullscreen:=nil;
  libvlc_get_fullscreen:=nil;
  libvlc_video_set_key_input:=nil;
  libvlc_video_set_mouse_input:=nil;
  libvlc_video_get_size:=nil;
  libvlc_video_get_height:=nil;
  libvlc_video_get_width:=nil;
  libvlc_video_get_cursor:=nil;
  libvlc_video_get_scale:=nil;
  libvlc_video_set_scale:=nil;
  libvlc_video_get_aspect_ratio:=nil;
  libvlc_video_set_aspect_ratio:=nil;
  libvlc_video_get_spu:=nil;
  libvlc_video_get_spu_count:=nil;
  libvlc_video_get_spu_description:=nil;
  libvlc_video_set_spu:=nil;
  libvlc_video_set_subtitle_file:=nil;
  libvlc_video_get_spu_delay:=nil;
  libvlc_video_set_spu_delay:=nil;
  libvlc_video_get_title_description:=nil;
  libvlc_video_get_chapter_description:=nil;
  libvlc_video_get_crop_geometry:=nil;
  libvlc_video_set_crop_geometry:=nil;
  libvlc_video_get_teletext:=nil;
  libvlc_video_set_teletext:=nil;
  libvlc_toggle_teletext:=nil;
  libvlc_video_get_track_count:=nil;
  libvlc_video_get_track_description:=nil;
  libvlc_video_get_track:=nil;
  libvlc_video_set_track:=nil;
  libvlc_video_take_snapshot:=nil;
  libvlc_video_set_deinterlace:=nil;
  libvlc_video_get_marquee_int:=nil;
  libvlc_video_get_marquee_string:=nil;
  libvlc_video_set_marquee_int:=nil;
  libvlc_video_set_marquee_string:=nil;
  libvlc_video_get_logo_int:=nil;
  libvlc_video_set_logo_int:=nil;
  libvlc_video_set_logo_string:=nil;
  libvlc_video_get_adjust_int:=nil;
  libvlc_video_set_adjust_int:=nil;
  libvlc_video_get_adjust_float:=nil;
  libvlc_video_set_adjust_float:=nil;
  libvlc_audio_output_list_get:=nil;
  libvlc_audio_output_list_release:=nil;
  libvlc_audio_output_set:=nil;
  libvlc_audio_output_device_count:=nil;
  libvlc_audio_output_device_longname:=nil;
  libvlc_audio_output_device_id:=nil;
  libvlc_audio_output_device_set:=nil;
  libvlc_audio_output_get_device_type:=nil;
  libvlc_audio_output_set_device_type:=nil;
  libvlc_audio_toggle_mute:=nil;
  libvlc_audio_get_mute:=nil;
  libvlc_audio_set_mute:=nil;
  libvlc_audio_get_volume:=nil;
  libvlc_audio_set_volume:=nil;
  libvlc_audio_get_track_count:=nil;
  libvlc_audio_get_track_description:=nil;
  libvlc_audio_get_track:=nil;
  libvlc_audio_set_track:=nil;
  libvlc_audio_get_channel:=nil;
  libvlc_audio_set_channel:=nil;
  libvlc_audio_get_delay:=nil;
  libvlc_audio_set_delay:=nil;
  libvlc_media_list_new:=nil;
  libvlc_media_list_release:=nil;
  libvlc_media_list_retain:=nil;
  libvlc_media_list_add_file_content:=nil;
  libvlc_media_list_set_media:=nil;
  libvlc_media_list_media:=nil;
  libvlc_media_list_add_media:=nil;
  libvlc_media_list_insert_media:=nil;
  libvlc_media_list_remove_index:=nil;
  libvlc_media_list_count:=nil;
  libvlc_media_list_item_at_index:=nil;
  libvlc_media_list_index_of_item:=nil;
  libvlc_media_list_is_readonly:=nil;
  libvlc_media_list_lock:=nil;
  libvlc_media_list_unlock:=nil;
  libvlc_media_list_event_manager:=nil;
  libvlc_media_list_player_new:=nil;
  libvlc_media_list_player_release:=nil;
  libvlc_media_list_player_retain:=nil;
  libvlc_media_list_player_event_manager:=nil;
  libvlc_media_list_player_set_media_player:=nil;
  libvlc_media_list_player_set_media_list:=nil;
  libvlc_media_list_player_play:=nil;
  libvlc_media_list_player_pause:=nil;
  libvlc_media_list_player_is_playing:=nil;
  libvlc_media_list_player_get_state:=nil;
  libvlc_media_list_player_play_item_at_index:=nil;
  libvlc_media_list_player_play_item:=nil;
  libvlc_media_list_player_stop:=nil;
  libvlc_media_list_player_next:=nil;
  libvlc_media_list_player_previous:=nil;
  libvlc_media_list_player_set_playback_mode:=nil;
  libvlc_media_library_new:=nil;
  libvlc_media_library_release:=nil;
  libvlc_media_library_retain:=nil;
  libvlc_media_library_load:=nil;
  libvlc_media_library_media_list:=nil;
  libvlc_media_discoverer_new_from_name:=nil;
  libvlc_media_discoverer_release:=nil;
  libvlc_media_discoverer_localized_name:=nil;
  libvlc_media_discoverer_media_list:=nil;
  libvlc_media_discoverer_event_manager:=nil;
  libvlc_media_discoverer_is_running:=nil;
  libvlc_vlm_release:=nil;
  libvlc_vlm_add_broadcast:=nil;
  libvlc_vlm_add_vod:=nil;
  libvlc_vlm_del_media:=nil;
  libvlc_vlm_set_enabled:=nil;
  libvlc_vlm_set_output:=nil;
  libvlc_vlm_set_input:=nil;
  libvlc_vlm_add_input:=nil;
  libvlc_vlm_set_loop:=nil;
  libvlc_vlm_set_mux:=nil;
  libvlc_vlm_change_media:=nil;
  libvlc_vlm_play_media:=nil;
  libvlc_vlm_stop_media:=nil;
  libvlc_vlm_pause_media:=nil;
  libvlc_vlm_seek_media:=nil;
  libvlc_vlm_show_media:=nil;
  libvlc_vlm_get_media_instance_position:=nil;
  libvlc_vlm_get_media_instance_time:=nil;
  libvlc_vlm_get_media_instance_length:=nil;
  libvlc_vlm_get_media_instance_rate:=nil;
  libvlc_vlm_get_event_manager:=nil;
  libvlc_playlist_play:=nil;
end;


Procedure Loadlibvlc(lib : AnsiString; CheckProcNames : Boolean = False);

  Function GetProcAddress(h : TLibHandle; Name : AnsiString) : Pointer;
  
  begin
    Result:=dynlibs.GetProcAddress(h,Name);
    If (Result=Nil) and CheckProcNames then
      raise Exception.CreateFmt('Could not find procedure address: %s ',[Name]);
  end;
  
  Procedure EM(FN : String);
  
  begin
    {$ifndef VER2_6}
    Raise Exception.CreateFmt('Could not load library "%s": %s',[FN,GetLoadErrorStr]);
    {$else}
    raise Exception.CreateFmt('Could not load library "%s"',[FN]);
    {$endif}
  end;
  
  
  
Var
  D : String;
  
begin
  if (hLib<>NilHandle) then
    begin
    Inc(LibRefCount);
    Exit;
    end;
  D:=ExtractFilePath(lib);
  {$ifdef windows}
  if (LoadLibrary(d+corelibname)=NilHandle) then
    if (d='') and (LoadLibrary(DefaultlibPath+corelibname)=NilHandle) then
      EM(DefaultlibPath+corelibname);
  {$endif}
  hlib:=LoadLibrary(lib);
  if (hlib=NilHandle) then
{$ifndef windows}
    EM(Lib);
{$else}
    if (d='') then
      begin
      hlib:=LoadLibrary(DefaultlibPath+ExtractFileName(Lib));
      if (hlib=NilHandle) then
        EM(Lib);
      end;
{$endif}
  Inc(LibRefCount);
  pointer(libvlc_errmsg):=GetProcAddress(hlib,'libvlc_errmsg');
  pointer(libvlc_clearerr):=GetProcAddress(hlib,'libvlc_clearerr');
  pointer(libvlc_printerr):=GetProcAddress(hlib,'libvlc_printerr');
  pointer(libvlc_new):=GetProcAddress(hlib,'libvlc_new');
  pointer(libvlc_release):=GetProcAddress(hlib,'libvlc_release');
  pointer(libvlc_retain):=GetProcAddress(hlib,'libvlc_retain');
  pointer(libvlc_add_intf):=GetProcAddress(hlib,'libvlc_add_intf');
  pointer(libvlc_set_exit_handler):=GetProcAddress(hlib,'libvlc_set_exit_handler');
  pointer(libvlc_wait):=GetProcAddress(hlib,'libvlc_wait');
  pointer(libvlc_set_user_agent):=GetProcAddress(hlib,'libvlc_set_user_agent');
  pointer(libvlc_get_version):=GetProcAddress(hlib,'libvlc_get_version');
  pointer(libvlc_get_compiler):=GetProcAddress(hlib,'libvlc_get_compiler');
  pointer(libvlc_get_changeset):=GetProcAddress(hlib,'libvlc_get_changeset');
  pointer(libvlc_free):=GetProcAddress(hlib,'libvlc_free');
  pointer(libvlc_event_attach):=GetProcAddress(hlib,'libvlc_event_attach');
  pointer(libvlc_event_detach):=GetProcAddress(hlib,'libvlc_event_detach');
  pointer(libvlc_event_type_name):=GetProcAddress(hlib,'libvlc_event_type_name');
  pointer(libvlc_get_log_verbosity):=GetProcAddress(hlib,'libvlc_get_log_verbosity');
  pointer(libvlc_set_log_verbosity):=GetProcAddress(hlib,'libvlc_set_log_verbosity');
  pointer(libvlc_log_open):=GetProcAddress(hlib,'libvlc_log_open');
  pointer(libvlc_log_close):=GetProcAddress(hlib,'libvlc_log_close');
  pointer(libvlc_log_count):=GetProcAddress(hlib,'libvlc_log_count');
  pointer(libvlc_log_clear):=GetProcAddress(hlib,'libvlc_log_clear');
  pointer(libvlc_log_get_iterator):=GetProcAddress(hlib,'libvlc_log_get_iterator');
  pointer(libvlc_log_iterator_free):=GetProcAddress(hlib,'libvlc_log_iterator_free');
  pointer(libvlc_log_iterator_has_next):=GetProcAddress(hlib,'libvlc_log_iterator_has_next');
  pointer(libvlc_log_iterator_next):=GetProcAddress(hlib,'libvlc_log_iterator_next');
  pointer(libvlc_module_description_list_release):=GetProcAddress(hlib,'libvlc_module_description_list_release');
  pointer(libvlc_audio_filter_list_get):=GetProcAddress(hlib,'libvlc_audio_filter_list_get');
  pointer(libvlc_video_filter_list_get):=GetProcAddress(hlib,'libvlc_video_filter_list_get');
  pointer(libvlc_clock):=GetProcAddress(hlib,'libvlc_clock');
  pointer(libvlc_media_new_location):=GetProcAddress(hlib,'libvlc_media_new_location');
  pointer(libvlc_media_new_path):=GetProcAddress(hlib,'libvlc_media_new_path');
  pointer(libvlc_media_new_fd):=GetProcAddress(hlib,'libvlc_media_new_fd');
  pointer(libvlc_media_new_as_node):=GetProcAddress(hlib,'libvlc_media_new_as_node');
  pointer(libvlc_media_add_option):=GetProcAddress(hlib,'libvlc_media_add_option');
  pointer(libvlc_media_add_option_flag):=GetProcAddress(hlib,'libvlc_media_add_option_flag');
  pointer(libvlc_media_retain):=GetProcAddress(hlib,'libvlc_media_retain');
  pointer(libvlc_media_release):=GetProcAddress(hlib,'libvlc_media_release');
  pointer(libvlc_media_get_mrl):=GetProcAddress(hlib,'libvlc_media_get_mrl');
  pointer(libvlc_media_duplicate):=GetProcAddress(hlib,'libvlc_media_duplicate');
  pointer(libvlc_media_get_meta):=GetProcAddress(hlib,'libvlc_media_get_meta');
  pointer(libvlc_media_set_meta):=GetProcAddress(hlib,'libvlc_media_set_meta');
  pointer(libvlc_media_save_meta):=GetProcAddress(hlib,'libvlc_media_save_meta');
  pointer(libvlc_media_get_state):=GetProcAddress(hlib,'libvlc_media_get_state');
  pointer(libvlc_media_get_stats):=GetProcAddress(hlib,'libvlc_media_get_stats');
  pointer(libvlc_media_subitems):=GetProcAddress(hlib,'libvlc_media_subitems');
  pointer(libvlc_media_event_manager):=GetProcAddress(hlib,'libvlc_media_event_manager');
  pointer(libvlc_media_get_duration):=GetProcAddress(hlib,'libvlc_media_get_duration');
  pointer(libvlc_media_parse):=GetProcAddress(hlib,'libvlc_media_parse');
  pointer(libvlc_media_parse_async):=GetProcAddress(hlib,'libvlc_media_parse_async');
  pointer(libvlc_media_is_parsed):=GetProcAddress(hlib,'libvlc_media_is_parsed');
  pointer(libvlc_media_set_user_data):=GetProcAddress(hlib,'libvlc_media_set_user_data');
  pointer(libvlc_media_get_user_data):=GetProcAddress(hlib,'libvlc_media_get_user_data');
  pointer(libvlc_media_get_tracks_info):=GetProcAddress(hlib,'libvlc_media_get_tracks_info');
  pointer(libvlc_media_player_new):=GetProcAddress(hlib,'libvlc_media_player_new');
  pointer(libvlc_media_player_new_from_media):=GetProcAddress(hlib,'libvlc_media_player_new_from_media');
  pointer(libvlc_media_player_release):=GetProcAddress(hlib,'libvlc_media_player_release');
  pointer(libvlc_media_player_retain):=GetProcAddress(hlib,'libvlc_media_player_retain');
  pointer(libvlc_media_player_set_media):=GetProcAddress(hlib,'libvlc_media_player_set_media');
  pointer(libvlc_media_player_get_media):=GetProcAddress(hlib,'libvlc_media_player_get_media');
  pointer(libvlc_media_player_event_manager):=GetProcAddress(hlib,'libvlc_media_player_event_manager');
  pointer(libvlc_media_player_is_playing):=GetProcAddress(hlib,'libvlc_media_player_is_playing');
  pointer(libvlc_media_player_play):=GetProcAddress(hlib,'libvlc_media_player_play');
  pointer(libvlc_media_player_set_pause):=GetProcAddress(hlib,'libvlc_media_player_set_pause');
  pointer(libvlc_media_player_pause):=GetProcAddress(hlib,'libvlc_media_player_pause');
  pointer(libvlc_media_player_stop):=GetProcAddress(hlib,'libvlc_media_player_stop');
  pointer(libvlc_video_set_callbacks):=GetProcAddress(hlib,'libvlc_video_set_callbacks');
  pointer(libvlc_video_set_format):=GetProcAddress(hlib,'libvlc_video_set_format');
  pointer(libvlc_video_set_format_callbacks):=GetProcAddress(hlib,'libvlc_video_set_format_callbacks');
  pointer(libvlc_media_player_set_nsobject):=GetProcAddress(hlib,'libvlc_media_player_set_nsobject');
  pointer(libvlc_media_player_get_nsobject):=GetProcAddress(hlib,'libvlc_media_player_get_nsobject');
  pointer(libvlc_media_player_set_agl):=GetProcAddress(hlib,'libvlc_media_player_set_agl');
  pointer(libvlc_media_player_get_agl):=GetProcAddress(hlib,'libvlc_media_player_get_agl');
  pointer(libvlc_media_player_set_xwindow):=GetProcAddress(hlib,'libvlc_media_player_set_xwindow');
  pointer(libvlc_media_player_get_xwindow):=GetProcAddress(hlib,'libvlc_media_player_get_xwindow');
  pointer(libvlc_media_player_set_hwnd):=GetProcAddress(hlib,'libvlc_media_player_set_hwnd');
  pointer(libvlc_media_player_get_hwnd):=GetProcAddress(hlib,'libvlc_media_player_get_hwnd');
  pointer(libvlc_audio_set_callbacks):=GetProcAddress(hlib,'libvlc_audio_set_callbacks');
  pointer(libvlc_audio_set_volume_callback):=GetProcAddress(hlib,'libvlc_audio_set_volume_callback');
  pointer(libvlc_audio_set_format_callbacks):=GetProcAddress(hlib,'libvlc_audio_set_format_callbacks');
  pointer(libvlc_audio_set_format):=GetProcAddress(hlib,'libvlc_audio_set_format');
  pointer(libvlc_media_player_get_length):=GetProcAddress(hlib,'libvlc_media_player_get_length');
  pointer(libvlc_media_player_get_time):=GetProcAddress(hlib,'libvlc_media_player_get_time');
  pointer(libvlc_media_player_set_time):=GetProcAddress(hlib,'libvlc_media_player_set_time');
  pointer(libvlc_media_player_get_position):=GetProcAddress(hlib,'libvlc_media_player_get_position');
  pointer(libvlc_media_player_set_position):=GetProcAddress(hlib,'libvlc_media_player_set_position');
  pointer(libvlc_media_player_set_chapter):=GetProcAddress(hlib,'libvlc_media_player_set_chapter');
  pointer(libvlc_media_player_get_chapter):=GetProcAddress(hlib,'libvlc_media_player_get_chapter');
  pointer(libvlc_media_player_get_chapter_count):=GetProcAddress(hlib,'libvlc_media_player_get_chapter_count');
  pointer(libvlc_media_player_will_play):=GetProcAddress(hlib,'libvlc_media_player_will_play');
  pointer(libvlc_media_player_get_chapter_count_for_title):=GetProcAddress(hlib,'libvlc_media_player_get_chapter_count_for_title');
  pointer(libvlc_media_player_set_title):=GetProcAddress(hlib,'libvlc_media_player_set_title');
  pointer(libvlc_media_player_get_title):=GetProcAddress(hlib,'libvlc_media_player_get_title');
  pointer(libvlc_media_player_get_title_count):=GetProcAddress(hlib,'libvlc_media_player_get_title_count');
  pointer(libvlc_media_player_previous_chapter):=GetProcAddress(hlib,'libvlc_media_player_previous_chapter');
  pointer(libvlc_media_player_next_chapter):=GetProcAddress(hlib,'libvlc_media_player_next_chapter');
  pointer(libvlc_media_player_get_rate):=GetProcAddress(hlib,'libvlc_media_player_get_rate');
  pointer(libvlc_media_player_set_rate):=GetProcAddress(hlib,'libvlc_media_player_set_rate');
  pointer(libvlc_media_player_get_state):=GetProcAddress(hlib,'libvlc_media_player_get_state');
  pointer(libvlc_media_player_get_fps):=GetProcAddress(hlib,'libvlc_media_player_get_fps');
  pointer(libvlc_media_player_has_vout):=GetProcAddress(hlib,'libvlc_media_player_has_vout');
  pointer(libvlc_media_player_is_seekable):=GetProcAddress(hlib,'libvlc_media_player_is_seekable');
  pointer(libvlc_media_player_can_pause):=GetProcAddress(hlib,'libvlc_media_player_can_pause');
  pointer(libvlc_media_player_next_frame):=GetProcAddress(hlib,'libvlc_media_player_next_frame');
  pointer(libvlc_media_player_navigate):=GetProcAddress(hlib,'libvlc_media_player_navigate');
  pointer(libvlc_track_description_list_release):=GetProcAddress(hlib,'libvlc_track_description_list_release');
  pointer(libvlc_track_description_release):=GetProcAddress(hlib,'libvlc_track_description_release');
  pointer(libvlc_toggle_fullscreen):=GetProcAddress(hlib,'libvlc_toggle_fullscreen');
  pointer(libvlc_set_fullscreen):=GetProcAddress(hlib,'libvlc_set_fullscreen');
  pointer(libvlc_get_fullscreen):=GetProcAddress(hlib,'libvlc_get_fullscreen');
  pointer(libvlc_video_set_key_input):=GetProcAddress(hlib,'libvlc_video_set_key_input');
  pointer(libvlc_video_set_mouse_input):=GetProcAddress(hlib,'libvlc_video_set_mouse_input');
  pointer(libvlc_video_get_size):=GetProcAddress(hlib,'libvlc_video_get_size');
  pointer(libvlc_video_get_height):=GetProcAddress(hlib,'libvlc_video_get_height');
  pointer(libvlc_video_get_width):=GetProcAddress(hlib,'libvlc_video_get_width');
  pointer(libvlc_video_get_cursor):=GetProcAddress(hlib,'libvlc_video_get_cursor');
  pointer(libvlc_video_get_scale):=GetProcAddress(hlib,'libvlc_video_get_scale');
  pointer(libvlc_video_set_scale):=GetProcAddress(hlib,'libvlc_video_set_scale');
  pointer(libvlc_video_get_aspect_ratio):=GetProcAddress(hlib,'libvlc_video_get_aspect_ratio');
  pointer(libvlc_video_set_aspect_ratio):=GetProcAddress(hlib,'libvlc_video_set_aspect_ratio');
  pointer(libvlc_video_get_spu):=GetProcAddress(hlib,'libvlc_video_get_spu');
  pointer(libvlc_video_get_spu_count):=GetProcAddress(hlib,'libvlc_video_get_spu_count');
  pointer(libvlc_video_get_spu_description):=GetProcAddress(hlib,'libvlc_video_get_spu_description');
  pointer(libvlc_video_set_spu):=GetProcAddress(hlib,'libvlc_video_set_spu');
  pointer(libvlc_video_set_subtitle_file):=GetProcAddress(hlib,'libvlc_video_set_subtitle_file');
  pointer(libvlc_video_get_spu_delay):=GetProcAddress(hlib,'libvlc_video_get_spu_delay');
  pointer(libvlc_video_set_spu_delay):=GetProcAddress(hlib,'libvlc_video_set_spu_delay');
  pointer(libvlc_video_get_title_description):=GetProcAddress(hlib,'libvlc_video_get_title_description');
  pointer(libvlc_video_get_chapter_description):=GetProcAddress(hlib,'libvlc_video_get_chapter_description');
  pointer(libvlc_video_get_crop_geometry):=GetProcAddress(hlib,'libvlc_video_get_crop_geometry');
  pointer(libvlc_video_set_crop_geometry):=GetProcAddress(hlib,'libvlc_video_set_crop_geometry');
  pointer(libvlc_video_get_teletext):=GetProcAddress(hlib,'libvlc_video_get_teletext');
  pointer(libvlc_video_set_teletext):=GetProcAddress(hlib,'libvlc_video_set_teletext');
  pointer(libvlc_toggle_teletext):=GetProcAddress(hlib,'libvlc_toggle_teletext');
  pointer(libvlc_video_get_track_count):=GetProcAddress(hlib,'libvlc_video_get_track_count');
  pointer(libvlc_video_get_track_description):=GetProcAddress(hlib,'libvlc_video_get_track_description');
  pointer(libvlc_video_get_track):=GetProcAddress(hlib,'libvlc_video_get_track');
  pointer(libvlc_video_set_track):=GetProcAddress(hlib,'libvlc_video_set_track');
  pointer(libvlc_video_take_snapshot):=GetProcAddress(hlib,'libvlc_video_take_snapshot');
  pointer(libvlc_video_set_deinterlace):=GetProcAddress(hlib,'libvlc_video_set_deinterlace');
  pointer(libvlc_video_get_marquee_int):=GetProcAddress(hlib,'libvlc_video_get_marquee_int');
  pointer(libvlc_video_get_marquee_string):=GetProcAddress(hlib,'libvlc_video_get_marquee_string');
  pointer(libvlc_video_set_marquee_int):=GetProcAddress(hlib,'libvlc_video_set_marquee_int');
  pointer(libvlc_video_set_marquee_string):=GetProcAddress(hlib,'libvlc_video_set_marquee_string');
  pointer(libvlc_video_get_logo_int):=GetProcAddress(hlib,'libvlc_video_get_logo_int');
  pointer(libvlc_video_set_logo_int):=GetProcAddress(hlib,'libvlc_video_set_logo_int');
  pointer(libvlc_video_set_logo_string):=GetProcAddress(hlib,'libvlc_video_set_logo_string');
  pointer(libvlc_video_get_adjust_int):=GetProcAddress(hlib,'libvlc_video_get_adjust_int');
  pointer(libvlc_video_set_adjust_int):=GetProcAddress(hlib,'libvlc_video_set_adjust_int');
  pointer(libvlc_video_get_adjust_float):=GetProcAddress(hlib,'libvlc_video_get_adjust_float');
  pointer(libvlc_video_set_adjust_float):=GetProcAddress(hlib,'libvlc_video_set_adjust_float');
  pointer(libvlc_audio_output_list_get):=GetProcAddress(hlib,'libvlc_audio_output_list_get');
  pointer(libvlc_audio_output_list_release):=GetProcAddress(hlib,'libvlc_audio_output_list_release');
  pointer(libvlc_audio_output_set):=GetProcAddress(hlib,'libvlc_audio_output_set');
  pointer(libvlc_audio_output_device_count):=GetProcAddress(hlib,'libvlc_audio_output_device_count');
  pointer(libvlc_audio_output_device_longname):=GetProcAddress(hlib,'libvlc_audio_output_device_longname');
  pointer(libvlc_audio_output_device_id):=GetProcAddress(hlib,'libvlc_audio_output_device_id');
  pointer(libvlc_audio_output_device_set):=GetProcAddress(hlib,'libvlc_audio_output_device_set');
  pointer(libvlc_audio_output_get_device_type):=GetProcAddress(hlib,'libvlc_audio_output_get_device_type');
  pointer(libvlc_audio_output_set_device_type):=GetProcAddress(hlib,'libvlc_audio_output_set_device_type');
  pointer(libvlc_audio_toggle_mute):=GetProcAddress(hlib,'libvlc_audio_toggle_mute');
  pointer(libvlc_audio_get_mute):=GetProcAddress(hlib,'libvlc_audio_get_mute');
  pointer(libvlc_audio_set_mute):=GetProcAddress(hlib,'libvlc_audio_set_mute');
  pointer(libvlc_audio_get_volume):=GetProcAddress(hlib,'libvlc_audio_get_volume');
  pointer(libvlc_audio_set_volume):=GetProcAddress(hlib,'libvlc_audio_set_volume');
  pointer(libvlc_audio_get_track_count):=GetProcAddress(hlib,'libvlc_audio_get_track_count');
  pointer(libvlc_audio_get_track_description):=GetProcAddress(hlib,'libvlc_audio_get_track_description');
  pointer(libvlc_audio_get_track):=GetProcAddress(hlib,'libvlc_audio_get_track');
  pointer(libvlc_audio_set_track):=GetProcAddress(hlib,'libvlc_audio_set_track');
  pointer(libvlc_audio_get_channel):=GetProcAddress(hlib,'libvlc_audio_get_channel');
  pointer(libvlc_audio_set_channel):=GetProcAddress(hlib,'libvlc_audio_set_channel');
  pointer(libvlc_audio_get_delay):=GetProcAddress(hlib,'libvlc_audio_get_delay');
  pointer(libvlc_audio_set_delay):=GetProcAddress(hlib,'libvlc_audio_set_delay');
  pointer(libvlc_media_list_new):=GetProcAddress(hlib,'libvlc_media_list_new');
  pointer(libvlc_media_list_release):=GetProcAddress(hlib,'libvlc_media_list_release');
  pointer(libvlc_media_list_retain):=GetProcAddress(hlib,'libvlc_media_list_retain');
  pointer(libvlc_media_list_add_file_content):=GetProcAddress(hlib,'libvlc_media_list_add_file_content');
  pointer(libvlc_media_list_set_media):=GetProcAddress(hlib,'libvlc_media_list_set_media');
  pointer(libvlc_media_list_media):=GetProcAddress(hlib,'libvlc_media_list_media');
  pointer(libvlc_media_list_add_media):=GetProcAddress(hlib,'libvlc_media_list_add_media');
  pointer(libvlc_media_list_insert_media):=GetProcAddress(hlib,'libvlc_media_list_insert_media');
  pointer(libvlc_media_list_remove_index):=GetProcAddress(hlib,'libvlc_media_list_remove_index');
  pointer(libvlc_media_list_count):=GetProcAddress(hlib,'libvlc_media_list_count');
  pointer(libvlc_media_list_item_at_index):=GetProcAddress(hlib,'libvlc_media_list_item_at_index');
  pointer(libvlc_media_list_index_of_item):=GetProcAddress(hlib,'libvlc_media_list_index_of_item');
  pointer(libvlc_media_list_is_readonly):=GetProcAddress(hlib,'libvlc_media_list_is_readonly');
  pointer(libvlc_media_list_lock):=GetProcAddress(hlib,'libvlc_media_list_lock');
  pointer(libvlc_media_list_unlock):=GetProcAddress(hlib,'libvlc_media_list_unlock');
  pointer(libvlc_media_list_event_manager):=GetProcAddress(hlib,'libvlc_media_list_event_manager');
  pointer(libvlc_media_list_player_new):=GetProcAddress(hlib,'libvlc_media_list_player_new');
  pointer(libvlc_media_list_player_release):=GetProcAddress(hlib,'libvlc_media_list_player_release');
  pointer(libvlc_media_list_player_retain):=GetProcAddress(hlib,'libvlc_media_list_player_retain');
  pointer(libvlc_media_list_player_event_manager):=GetProcAddress(hlib,'libvlc_media_list_player_event_manager');
  pointer(libvlc_media_list_player_set_media_player):=GetProcAddress(hlib,'libvlc_media_list_player_set_media_player');
  pointer(libvlc_media_list_player_set_media_list):=GetProcAddress(hlib,'libvlc_media_list_player_set_media_list');
  pointer(libvlc_media_list_player_play):=GetProcAddress(hlib,'libvlc_media_list_player_play');
  pointer(libvlc_media_list_player_pause):=GetProcAddress(hlib,'libvlc_media_list_player_pause');
  pointer(libvlc_media_list_player_is_playing):=GetProcAddress(hlib,'libvlc_media_list_player_is_playing');
  pointer(libvlc_media_list_player_get_state):=GetProcAddress(hlib,'libvlc_media_list_player_get_state');
  pointer(libvlc_media_list_player_play_item_at_index):=GetProcAddress(hlib,'libvlc_media_list_player_play_item_at_index');
  pointer(libvlc_media_list_player_play_item):=GetProcAddress(hlib,'libvlc_media_list_player_play_item');
  pointer(libvlc_media_list_player_stop):=GetProcAddress(hlib,'libvlc_media_list_player_stop');
  pointer(libvlc_media_list_player_next):=GetProcAddress(hlib,'libvlc_media_list_player_next');
  pointer(libvlc_media_list_player_previous):=GetProcAddress(hlib,'libvlc_media_list_player_previous');
  pointer(libvlc_media_list_player_set_playback_mode):=GetProcAddress(hlib,'libvlc_media_list_player_set_playback_mode');
  pointer(libvlc_media_library_new):=GetProcAddress(hlib,'libvlc_media_library_new');
  pointer(libvlc_media_library_release):=GetProcAddress(hlib,'libvlc_media_library_release');
  pointer(libvlc_media_library_retain):=GetProcAddress(hlib,'libvlc_media_library_retain');
  pointer(libvlc_media_library_load):=GetProcAddress(hlib,'libvlc_media_library_load');
  pointer(libvlc_media_library_media_list):=GetProcAddress(hlib,'libvlc_media_library_media_list');
  pointer(libvlc_media_discoverer_new_from_name):=GetProcAddress(hlib,'libvlc_media_discoverer_new_from_name');
  pointer(libvlc_media_discoverer_release):=GetProcAddress(hlib,'libvlc_media_discoverer_release');
  pointer(libvlc_media_discoverer_localized_name):=GetProcAddress(hlib,'libvlc_media_discoverer_localized_name');
  pointer(libvlc_media_discoverer_media_list):=GetProcAddress(hlib,'libvlc_media_discoverer_media_list');
  pointer(libvlc_media_discoverer_event_manager):=GetProcAddress(hlib,'libvlc_media_discoverer_event_manager');
  pointer(libvlc_media_discoverer_is_running):=GetProcAddress(hlib,'libvlc_media_discoverer_is_running');
  pointer(libvlc_vlm_release):=GetProcAddress(hlib,'libvlc_vlm_release');
  pointer(libvlc_vlm_add_broadcast):=GetProcAddress(hlib,'libvlc_vlm_add_broadcast');
  pointer(libvlc_vlm_add_vod):=GetProcAddress(hlib,'libvlc_vlm_add_vod');
  pointer(libvlc_vlm_del_media):=GetProcAddress(hlib,'libvlc_vlm_del_media');
  pointer(libvlc_vlm_set_enabled):=GetProcAddress(hlib,'libvlc_vlm_set_enabled');
  pointer(libvlc_vlm_set_output):=GetProcAddress(hlib,'libvlc_vlm_set_output');
  pointer(libvlc_vlm_set_input):=GetProcAddress(hlib,'libvlc_vlm_set_input');
  pointer(libvlc_vlm_add_input):=GetProcAddress(hlib,'libvlc_vlm_add_input');
  pointer(libvlc_vlm_set_loop):=GetProcAddress(hlib,'libvlc_vlm_set_loop');
  pointer(libvlc_vlm_set_mux):=GetProcAddress(hlib,'libvlc_vlm_set_mux');
  pointer(libvlc_vlm_change_media):=GetProcAddress(hlib,'libvlc_vlm_change_media');
  pointer(libvlc_vlm_play_media):=GetProcAddress(hlib,'libvlc_vlm_play_media');
  pointer(libvlc_vlm_stop_media):=GetProcAddress(hlib,'libvlc_vlm_stop_media');
  pointer(libvlc_vlm_pause_media):=GetProcAddress(hlib,'libvlc_vlm_pause_media');
  pointer(libvlc_vlm_seek_media):=GetProcAddress(hlib,'libvlc_vlm_seek_media');
  pointer(libvlc_vlm_show_media):=GetProcAddress(hlib,'libvlc_vlm_show_media');
  pointer(libvlc_vlm_get_media_instance_position):=GetProcAddress(hlib,'libvlc_vlm_get_media_instance_position');
  pointer(libvlc_vlm_get_media_instance_time):=GetProcAddress(hlib,'libvlc_vlm_get_media_instance_time');
  pointer(libvlc_vlm_get_media_instance_length):=GetProcAddress(hlib,'libvlc_vlm_get_media_instance_length');
  pointer(libvlc_vlm_get_media_instance_rate):=GetProcAddress(hlib,'libvlc_vlm_get_media_instance_rate');
  pointer(libvlc_vlm_get_event_manager):=GetProcAddress(hlib,'libvlc_vlm_get_event_manager');
  pointer(libvlc_playlist_play):=GetProcAddress(hlib,'libvlc_playlist_play');
end;


end.