Index of /xtras/vlc_xtra/win

Icon  Name                    Last modified      Size  Description
[PARENTDIR] Parent Directory - [DIR] _old/ 2018-05-08 20:33 - [DIR] demos/ 2021-08-13 16:12 - [DIR] screenshots/ 2018-04-23 16:32 - [DIR] tools/ 2018-04-23 16:38 - [TXT] readme.txt 2018-05-08 21:45 6.5K [   ] vlc_xtra_win_v04.zip 2018-05-09 15:08 74M
xtra Vlc
-- v0.4 (c) 2018 Valentin Schmidt

new object me, *configPropList

vlc_open_file object me, string filename
vlc_open_url object me, string url
vlc_play object me
vlc_pause object me
vlc_stop object me
vlc_next_frame object me

vlc_get_fps object me
vlc_get_length object me
vlc_get_state object me
vlc_get_last_error object me
vlc_get_rate object me
vlc_set_rate object me, float rate
vlc_get_time object me
vlc_set_time object me, integer ms

-- AUDIO
vlc_audio_get_channel object me
vlc_audio_set_channel object me, integer channel
vlc_audio_get_mute object me
vlc_audio_set_mute object me, integer flag
vlc_audio_get_track_count object me
vlc_audio_get_track object me
vlc_audio_set_track object me, integer track
vlc_audio_get_volume object me
vlc_audio_set_volume object me, integer volume

-- VIDEO
vlc_video_get_height object me
vlc_video_get_width object me
vlc_video_get_track_count object me
vlc_video_get_track object me
vlc_video_set_track object me, integer track
vlc_video_get_aspect_ratio object me
vlc_video_set_aspect_ratio object me, string ratio
vlc_video_get_scale object me
vlc_video_set_scale object me, float scale
vlc_video_get_crop_geometry object me
vlc_video_set_crop_geometry object me, string geometry
vlc_video_set_subtitle_file object me, string filename
vlc_video_get_spu_count object me
vlc_video_get_spu object me
vlc_video_set_spu object me, integer track
vlc_video_take_snapshot object me, string filename, integer width, integer height

-- WINDOW
vlc_window_get_rect object me
vlc_window_set_rect object me, object rect
vlc_window_set_visible object me, integer flag
vlc_window_set_auto_resize object me, integer flag
vlc_window_get_fullscreen object me
vlc_window_set_fullscreen object me, integer flag, *screen

-- EVENTS

-- attaches an event to the event callback
vlc_event_attach object me, integer event

-- detaches an event from event callback
vlc_event_detach object me, integer event

-- FILE

-- returns [width, height] for video file, without loading it into the player
vlc_file_get_dimensions object me, string filename


Available properties (as strings) for (optional) 'configPropList'
=================================================================

"render_mode" (symbol, default = #movie):
    A symbol that specifies the render mode to be used.
    It can be one of the following 5 symbols:

    #movie (=default):
        The VLC video will be rendered into a Director window, specified by its
        index in _player.windowList.

    #hwnd:
        The VLC video will be rendered into an external window, specified by its
        HWND.

    #texture:
        The VLC video will be rendered into an OpenGL texture, specified by its
        texture ID.

    #bitmap:
        The VLC video will be rendered into a bitmap member.

    #image:
        The VLC video will be rendered into a Lingo image object.

"callback" (symbol):
    A symbol that specifies the callback handler that will be notified when VLC
    events occur. You can then "attach" to individual VLC events (specified by
    integers) by calling vlc_event_attach().
    If you don't attach to any events, there is also no need to specify such
    callback handler.

"target" (instance, default = _movie):
    If you specify a callback, you can optionally also specify a target object
    (script instance) that will receive the event notifications. If you don't
    specify such target, the callback is assumed to be a global handler in a
    movie script.

"args" (list):
    An optional list of argument strings that will be passed to the VLC
    instance. Those are exactly the same arguments that the command line version
    of VLC supports. For instance, to turn off all audio output you can pass
    ["--no-audio"].


Depending on "render_mode", the following additional properties can/must be specified:
======================================================================================

"movienum" (integer, default = 1):
    An integer that specifies the index of a Director window in
   _player.windowList - so 1 for the stage window.
    This window will then be used as container for the VLC video.
    Only available for render mode #movie.

"rect" (rect, optional):
    Specifies the rect of the VLC video, relative to its container window.
    Only available for render mode #movie.

"hwnd" (integer):
    An integer that specifies the HWND of an (external) window into which the
    VLC video will be "injected"
    Only available for render mode #hwnd.

"texture_id" (integer):
    An integer that specifies the OpenGL texture ID that will receive the VLC
    video.
    Only available for render mode #texture.

"member" (member):
    The memberRef of a bitmap member that will receive the VLC video.
    Only available for render mode #bitmap.

    NOTES
    =====
    - The receiving bitmap member MUST have exactly the same dimensions as all
      videos you want to load. If you want to load videos with different
      dimensions in #bitmap render mode, you have to create a new VLC xtra
      instance whenever the dimensions change.
    - The passed bitmap member then "belongs" to VLC xtra, so don't try to do anything
      with it by Lingo means (especially not assigning a new image to it).
      But you can do whatever you like with sprites based on this bitmap member.

"image" (image):
    A Lingo image object that will receive the VLC video.
    Only available for render mode #image.

    NOTES
    =====
    - The receiving image object MUST have exactly the same dimensions as all
      videos you want to load. If you want to load videos with different dimensions
      in #image render mode, you have to create a new VLC xtra instance whenever
      the dimensions change.
    - In contrast to #bitmap render mode, Director will not know when VLC updated
      the image, so you have to force visual updates manually, e.g. in an
      enterFrame handler.
    - The passed image object then "belongs" to VLC xtra, so don't try to do anything
      with it by Lingo means.

GENERAL NOTES
=============

- If you use a render mode other than #movie, but pass incorrect or insufficient
  additional parameters, the render mode will default to #movie, so the video will
  be rendered into the stage window instead.

- VLC xtra is currently not fully secured against wrong usage yet, so such
  wrong usage therefor might cause crashes. Check out the included demos
  (Lingo scripts that are called *.lsw) to learn about the intended usage.