CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-python-vlc

VLC bindings for Python providing comprehensive multimedia functionality through LibVLC API.

Pending
Overview
Eval results
Files

low-level-functions.mddocs/

Low-Level LibVLC Functions

Direct access to all LibVLC C API functions for advanced use cases and maximum control. These functions provide the raw LibVLC interface that the high-level wrapper classes are built upon.

Capabilities

Core LibVLC Functions

Fundamental LibVLC instance and lifecycle management functions.

def libvlc_new(argc, argv):
    """Create a LibVLC instance.
    
    Args:
        argc (int): Number of command line arguments
        argv (list): List of command line argument strings
        
    Returns:
        ctypes.c_void_p: LibVLC instance pointer
    """
    ...

def libvlc_release(instance):
    """Decrement the reference count of a libvlc instance.
    
    Args:
        instance (ctypes.c_void_p): LibVLC instance pointer
    """
    ...

def libvlc_retain(instance):
    """Increment the reference count of a libvlc instance.
    
    Args:
        instance (ctypes.c_void_p): LibVLC instance pointer
    """
    ...

def libvlc_get_version():
    """Get LibVLC version.
    
    Returns:
        str: Version string
    """
    ...

def libvlc_get_compiler():
    """Get LibVLC compiler version.
    
    Returns:
        str: Compiler version string
    """
    ...

def libvlc_get_changeset():
    """Get LibVLC changeset.
    
    Returns:
        str: Changeset string
    """
    ...

def libvlc_free(ptr):
    """Free memory allocated by LibVLC.
    
    Args:
        ptr (ctypes.c_void_p): Pointer to free
    """
    ...

def libvlc_event_attach(event_manager, event_type, callback, user_data):
    """Register for an event notification.
    
    Args:
        event_manager (ctypes.c_void_p): Event manager
        event_type (int): Event type to listen for
        callback (function): Callback function
        user_data (ctypes.c_void_p): User data for callback
        
    Returns:
        int: 0 on success, ENOMEM on error
    """
    ...

def libvlc_event_detach(event_manager, event_type, callback, user_data):
    """Unregister an event notification.
    
    Args:
        event_manager (ctypes.c_void_p): Event manager
        event_type (int): Event type
        callback (function): Callback function  
        user_data (ctypes.c_void_p): User data
    """
    ...

Media Functions

Low-level media object creation and manipulation functions.

def libvlc_media_new_location(instance, mrl):
    """Create a media object from a media resource locator.
    
    Args:
        instance (ctypes.c_void_p): LibVLC instance
        mrl (str): Media resource locator
        
    Returns:
        ctypes.c_void_p: Media object pointer
    """
    ...

def libvlc_media_new_path(instance, path):
    """Create a media object from a file path.
    
    Args:
        instance (ctypes.c_void_p): LibVLC instance
        path (str): File path
        
    Returns:
        ctypes.c_void_p: Media object pointer
    """
    ...

def libvlc_media_new_fd(instance, fd):
    """Create a media object from a file descriptor.
    
    Args:
        instance (ctypes.c_void_p): LibVLC instance
        fd (int): File descriptor
        
    Returns:
        ctypes.c_void_p: Media object pointer
    """
    ...

def libvlc_media_new_callbacks(instance, open_cb, read_cb, seek_cb, close_cb, opaque):
    """Create a media object with custom callbacks.
    
    Args:
        instance (ctypes.c_void_p): LibVLC instance
        open_cb (function): Open callback
        read_cb (function): Read callback
        seek_cb (function): Seek callback
        close_cb (function): Close callback
        opaque (ctypes.c_void_p): User data
        
    Returns:
        ctypes.c_void_p: Media object pointer
    """
    ...

def libvlc_media_release(media):
    """Decrement the reference count of a media object.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
    """
    ...

def libvlc_media_retain(media):
    """Increment the reference count of a media object.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
    """
    ...

def libvlc_media_get_mrl(media):
    """Get the media resource locator.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
        
    Returns:
        str: MRL string
    """
    ...

def libvlc_media_duplicate(media):
    """Duplicate a media object.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
        
    Returns:
        ctypes.c_void_p: Duplicated media object pointer
    """
    ...

def libvlc_media_get_meta(media, meta_type):
    """Get metadata for a media object.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
        meta_type (int): Metadata type
        
    Returns:
        str: Metadata value or None
    """
    ...

def libvlc_media_set_meta(media, meta_type, value):
    """Set metadata for a media object.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
        meta_type (int): Metadata type
        value (str): Metadata value
    """
    ...

def libvlc_media_save_meta(media):
    """Save metadata to the media file.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
        
    Returns:
        bool: True on success
    """
    ...

def libvlc_media_get_state(media):
    """Get the current state of a media object.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
        
    Returns:
        int: Media state
    """
    ...

def libvlc_media_get_duration(media):
    """Get the duration of a media object.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
        
    Returns:
        int: Duration in milliseconds
    """
    ...

def libvlc_media_parse(media):
    """Parse a media object synchronously.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
    """
    ...

def libvlc_media_parse_async(media):
    """Parse a media object asynchronously.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
    """
    ...

def libvlc_media_parse_with_options(media, parse_flag, timeout):
    """Parse a media object with options.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
        parse_flag (int): Parse options
        timeout (int): Timeout in milliseconds
        
    Returns:
        int: Parse status
    """
    ...

def libvlc_media_get_parsed_status(media):
    """Get the parsed status of a media object.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
        
    Returns:
        int: Parsed status
    """
    ...

Media Player Functions

Low-level media player control and state management functions.

def libvlc_media_player_new(instance):
    """Create a media player.
    
    Args:
        instance (ctypes.c_void_p): LibVLC instance
        
    Returns:
        ctypes.c_void_p: Media player pointer
    """
    ...

def libvlc_media_player_new_from_media(media):
    """Create a media player from a media object.
    
    Args:
        media (ctypes.c_void_p): Media object pointer
        
    Returns:
        ctypes.c_void_p: Media player pointer
    """
    ...

def libvlc_media_player_release(player):
    """Release a media player.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
    """
    ...

def libvlc_media_player_retain(player):
    """Retain a media player.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
    """
    ...

def libvlc_media_player_set_media(player, media):
    """Set the media for a player.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        media (ctypes.c_void_p): Media object pointer
    """
    ...

def libvlc_media_player_get_media(player):
    """Get the media from a player.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        ctypes.c_void_p: Media object pointer
    """
    ...

def libvlc_media_player_play(player):
    """Play media.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

def libvlc_media_player_pause(player):
    """Pause media playback.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
    """
    ...

def libvlc_media_player_set_pause(player, do_pause):
    """Set pause state.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        do_pause (int): 1 to pause, 0 to resume
    """
    ...

def libvlc_media_player_stop(player):
    """Stop media playback.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
    """
    ...

def libvlc_media_player_is_playing(player):
    """Check if media is playing.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: 1 if playing, 0 otherwise
    """
    ...

def libvlc_media_player_get_state(player):
    """Get player state.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Player state
    """
    ...

def libvlc_media_player_get_time(player):
    """Get current playback time.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Time in milliseconds
    """
    ...

def libvlc_media_player_set_time(player, time):
    """Set current playback time.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        time (int): Time in milliseconds
    """
    ...

def libvlc_media_player_get_position(player):
    """Get playback position.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        float: Position between 0.0 and 1.0
    """
    ...

def libvlc_media_player_set_position(player, position):
    """Set playback position.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        position (float): Position between 0.0 and 1.0
    """
    ...

def libvlc_media_player_get_length(player):
    """Get media length.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Length in milliseconds
    """
    ...

def libvlc_media_player_get_rate(player):
    """Get playback rate.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        float: Playback rate
    """
    ...

def libvlc_media_player_set_rate(player, rate):
    """Set playback rate.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        rate (float): Playback rate
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

Audio Functions

Low-level audio control functions.

def libvlc_audio_get_volume(player):
    """Get audio volume.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Volume (0-100)
    """
    ...

def libvlc_audio_set_volume(player, volume):
    """Set audio volume.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        volume (int): Volume (0-100)
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

def libvlc_audio_get_mute(player):
    """Get mute status.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: 1 if muted, 0 otherwise
    """
    ...

def libvlc_audio_set_mute(player, mute):
    """Set mute status.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        mute (int): 1 to mute, 0 to unmute
    """
    ...

def libvlc_audio_get_track_count(player):
    """Get audio track count.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Number of audio tracks
    """
    ...

def libvlc_audio_get_track(player):
    """Get current audio track.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Audio track ID
    """
    ...

def libvlc_audio_set_track(player, track):
    """Set audio track.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        track (int): Audio track ID
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

def libvlc_audio_get_delay(player):
    """Get audio delay.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Audio delay in microseconds
    """
    ...

def libvlc_audio_set_delay(player, delay):
    """Set audio delay.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        delay (int): Audio delay in microseconds
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

def libvlc_audio_equalizer_new():
    """Create a new audio equalizer.
    
    Returns:
        ctypes.c_void_p: Audio equalizer pointer
    """
    ...

def libvlc_audio_equalizer_new_from_preset(preset):
    """Create an audio equalizer from preset.
    
    Args:
        preset (int): Preset index
        
    Returns:
        ctypes.c_void_p: Audio equalizer pointer
    """
    ...

def libvlc_audio_equalizer_release(equalizer):
    """Release an audio equalizer.
    
    Args:
        equalizer (ctypes.c_void_p): Audio equalizer pointer
    """
    ...

def libvlc_audio_equalizer_set_preamp(equalizer, preamp):
    """Set equalizer preamp.
    
    Args:
        equalizer (ctypes.c_void_p): Audio equalizer pointer
        preamp (float): Preamp value in dB
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

def libvlc_audio_equalizer_get_preamp(equalizer):
    """Get equalizer preamp.
    
    Args:
        equalizer (ctypes.c_void_p): Audio equalizer pointer
        
    Returns:
        float: Preamp value in dB
    """
    ...

def libvlc_audio_equalizer_set_amp_at_index(equalizer, amp, band):
    """Set equalizer band amplitude.
    
    Args:
        equalizer (ctypes.c_void_p): Audio equalizer pointer
        amp (float): Amplitude in dB
        band (int): Band index
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

def libvlc_audio_equalizer_get_amp_at_index(equalizer, band):
    """Get equalizer band amplitude.
    
    Args:
        equalizer (ctypes.c_void_p): Audio equalizer pointer
        band (int): Band index
        
    Returns:
        float: Amplitude in dB
    """
    ...

Video Functions

Low-level video control and display functions.

def libvlc_video_get_size(player, num):
    """Get video dimensions.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        num (int): Video output number
        
    Returns:
        tuple: (width, height)
    """
    ...

def libvlc_video_get_width(player):
    """Get video width.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Video width
    """
    ...

def libvlc_video_get_height(player):
    """Get video height.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Video height
    """
    ...

def libvlc_video_get_aspect_ratio(player):
    """Get video aspect ratio.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        str: Aspect ratio string
    """
    ...

def libvlc_video_set_aspect_ratio(player, aspect):
    """Set video aspect ratio.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        aspect (str): Aspect ratio string
    """
    ...

def libvlc_video_get_scale(player):
    """Get video scale.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        float: Video scale
    """
    ...

def libvlc_video_set_scale(player, scale):
    """Set video scale.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        scale (float): Video scale
    """
    ...

def libvlc_video_take_snapshot(player, num, filepath, width, height):
    """Take video snapshot.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        num (int): Video output number
        filepath (str): Snapshot file path
        width (int): Snapshot width
        height (int): Snapshot height
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

def libvlc_video_get_track_count(player):
    """Get video track count.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Number of video tracks
    """
    ...

def libvlc_video_get_track(player):
    """Get current video track.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Video track ID
    """
    ...

def libvlc_video_set_track(player, track):
    """Set video track.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        track (int): Video track ID
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

def libvlc_video_get_spu_count(player):
    """Get subtitle track count.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Number of subtitle tracks
    """
    ...

def libvlc_video_get_spu(player):
    """Get current subtitle track.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        
    Returns:
        int: Subtitle track ID
    """
    ...

def libvlc_video_set_spu(player, spu):
    """Set subtitle track.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        spu (int): Subtitle track ID
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

def libvlc_video_set_subtitle_file(player, filename):
    """Set subtitle file.
    
    Args:
        player (ctypes.c_void_p): Media player pointer
        filename (str): Subtitle file path
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

Media List Functions

Low-level media list management functions.

def libvlc_media_list_new(instance):
    """Create a media list.
    
    Args:
        instance (ctypes.c_void_p): LibVLC instance
        
    Returns:
        ctypes.c_void_p: Media list pointer
    """
    ...

def libvlc_media_list_release(media_list):
    """Release a media list.
    
    Args:
        media_list (ctypes.c_void_p): Media list pointer
    """
    ...

def libvlc_media_list_retain(media_list):
    """Retain a media list.
    
    Args:
        media_list (ctypes.c_void_p): Media list pointer
    """
    ...

def libvlc_media_list_add_media(media_list, media):
    """Add media to a list.
    
    Args:
        media_list (ctypes.c_void_p): Media list pointer
        media (ctypes.c_void_p): Media object pointer
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

def libvlc_media_list_insert_media(media_list, media, index):
    """Insert media into a list.
    
    Args:
        media_list (ctypes.c_void_p): Media list pointer
        media (ctypes.c_void_p): Media object pointer
        index (int): Index to insert at
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

def libvlc_media_list_remove_index(media_list, index):
    """Remove media from a list by index.
    
    Args:
        media_list (ctypes.c_void_p): Media list pointer
        index (int): Index to remove
        
    Returns:
        int: 0 on success, -1 on error
    """
    ...

def libvlc_media_list_count(media_list):
    """Get media list count.
    
    Args:
        media_list (ctypes.c_void_p): Media list pointer
        
    Returns:
        int: Number of items in list
    """
    ...

def libvlc_media_list_item_at_index(media_list, index):
    """Get media item at index.
    
    Args:
        media_list (ctypes.c_void_p): Media list pointer
        index (int): Index of item
        
    Returns:
        ctypes.c_void_p: Media object pointer
    """
    ...

def libvlc_media_list_index_of_item(media_list, media):
    """Get index of media item.
    
    Args:
        media_list (ctypes.c_void_p): Media list pointer
        media (ctypes.c_void_p): Media object pointer
        
    Returns:
        int: Index of item or -1 if not found
    """
    ...

def libvlc_media_list_is_readonly(media_list):
    """Check if media list is readonly.
    
    Args:
        media_list (ctypes.c_void_p): Media list pointer
        
    Returns:
        int: 1 if readonly, 0 otherwise
    """
    ...

def libvlc_media_list_lock(media_list):
    """Lock a media list.
    
    Args:
        media_list (ctypes.c_void_p): Media list pointer
    """
    ...

def libvlc_media_list_unlock(media_list):
    """Unlock a media list.
    
    Args:
        media_list (ctypes.c_void_p): Media list pointer
    """
    ...

def libvlc_media_list_event_manager(media_list):
    """Get media list event manager.
    
    Args:
        media_list (ctypes.c_void_p): Media list pointer
        
    Returns:
        ctypes.c_void_p: Event manager pointer
    """
    ...

Usage Examples

Direct LibVLC Instance Management

import vlc
import ctypes

# Create instance with direct LibVLC function
argc = 2
argv = ['--no-audio', '--quiet']
instance_ptr = vlc.libvlc_new(argc, argv)

print(f"LibVLC version: {vlc.libvlc_get_version()}")
print(f"LibVLC compiler: {vlv.libvlc_get_compiler()}")

# Create media player directly
player_ptr = vlc.libvlc_media_player_new(instance_ptr)

# Create media directly
media_ptr = vlc.libvlc_media_new_path(instance_ptr, '/path/to/video.mp4')

# Set media to player
vlc.libvlc_media_player_set_media(player_ptr, media_ptr)

# Start playback
result = vlc.libvlc_media_player_play(player_ptr)
print(f"Play result: {result}")

# Check if playing
is_playing = vlc.libvlc_media_player_is_playing(player_ptr)
print(f"Is playing: {is_playing}")

# Clean up
vlc.libvlc_media_release(media_ptr)
vlc.libvlc_media_player_release(player_ptr)
vlc.libvlc_release(instance_ptr)

Custom Media Callbacks

import vlc
import ctypes

# Define callback functions
def media_open_cb(opaque, data_pointer, size_pointer):
    """Media open callback."""
    print("Media open callback called")
    # Custom media opening logic here
    return 0

def media_read_cb(opaque, buffer, length):
    """Media read callback."""
    print(f"Media read callback: {length} bytes")
    # Custom media reading logic here
    return length

def media_seek_cb(opaque, offset):
    """Media seek callback."""
    print(f"Media seek callback: offset {offset}")
    # Custom media seeking logic here
    return 0

def media_close_cb(opaque):
    """Media close callback."""
    print("Media close callback called")
    # Custom media closing logic here

# Create instance
instance_ptr = vlv.libvlc_new(0, None)

# Create media with callbacks
opaque_data = ctypes.c_void_p()
media_ptr = vlc.libvlc_media_new_callbacks(
    instance_ptr,
    media_open_cb,
    media_read_cb, 
    media_seek_cb,
    media_close_cb,
    opaque_data
)

# Use the media normally
player_ptr = vlc.libvlc_media_player_new_from_media(media_ptr)
vlc.libvlc_media_player_play(player_ptr)

# Clean up
vlc.libvlc_media_player_release(player_ptr)
vlc.libvlc_media_release(media_ptr)
vlc.libvlc_release(instance_ptr)

Low-Level Event Handling

import vlc
import ctypes

# Event callback function
def event_callback(event_ptr, user_data):
    """Low-level event callback."""
    # Access event structure directly
    event = ctypes.cast(event_ptr, ctypes.POINTER(vlc.Event)).contents
    print(f"Event type: {event.type}")
    
    # Handle specific event types
    if event.type == vlc.EventType.MediaPlayerPlaying:
        print("Player started playing")
    elif event.type == vlc.EventType.MediaPlayerPaused:
        print("Player paused")
    elif event.type == vlc.EventType.MediaPlayerStopped:
        print("Player stopped")

# Create instance and player
instance_ptr = vlc.libvlc_new(0, None)
player_ptr = vlc.libvlc_media_player_new(instance_ptr)

# Get event manager
player_obj = vlc.MediaPlayer._from_instance(player_ptr)
event_manager_ptr = player_obj.event_manager()._as_parameter_

# Attach event directly
user_data = ctypes.c_void_p()
result = vlc.libvlc_event_attach(
    event_manager_ptr,
    vlc.EventType.MediaPlayerPlaying,
    event_callback,
    user_data
)
print(f"Event attach result: {result}")

# Create and play media
media_ptr = vlc.libvlc_media_new_path(instance_ptr, '/path/to/video.mp4')
vlc.libvlc_media_player_set_media(player_ptr, media_ptr)
vlc.libvlc_media_player_play(player_ptr)

# Wait for events
import time
time.sleep(5)

# Detach event
vlc.libvlc_event_detach(
    event_manager_ptr,
    vlc.EventType.MediaPlayerPlaying,
    event_callback,
    user_data
)

# Clean up
vlc.libvlc_media_player_stop(player_ptr)
vlc.libvlc_media_release(media_ptr)
vlc.libvlc_media_player_release(player_ptr)
vlc.libvlc_release(instance_ptr)

Advanced Audio Control

import vlc
import ctypes

# Create player
instance_ptr = vlc.libvlc_new(0, None)
player_ptr = vlc.libvlc_media_player_new(instance_ptr)
media_ptr = vlc.libvlc_media_new_path(instance_ptr, '/path/to/audio.mp3')
vlc.libvlc_media_player_set_media(player_ptr, media_ptr)

# Start playback
vlc.libvlc_media_player_play(player_ptr)

# Direct audio control
current_volume = vlc.libvlc_audio_get_volume(player_ptr)
print(f"Current volume: {current_volume}")

# Set volume directly
vlc.libvlc_audio_set_volume(player_ptr, 75)
print(f"Volume set to: {vlc.libvlc_audio_get_volume(player_ptr)}")

# Mute control
vlc.libvlc_audio_set_mute(player_ptr, 1)  # Mute
print(f"Muted: {vlc.libvlc_audio_get_mute(player_ptr)}")

vlc.libvlc_audio_set_mute(player_ptr, 0)  # Unmute
print(f"Muted: {vlc.libvlc_audio_get_mute(player_ptr)}")

# Audio track control
track_count = vlc.libvlc_audio_get_track_count(player_ptr)
print(f"Audio tracks: {track_count}")

current_track = vlc.libvlc_audio_get_track(player_ptr)
print(f"Current track: {current_track}")

# Audio delay control
current_delay = vlc.libvlc_audio_get_delay(player_ptr)
print(f"Current audio delay: {current_delay}")

vlc.libvlc_audio_set_delay(player_ptr, 100000)  # 100ms delay
print(f"New audio delay: {vlc.libvlc_audio_get_delay(player_ptr)}")

# Create and use equalizer
equalizer_ptr = vlc.libvlc_audio_equalizer_new()

# Set preamp
vlc.libvlc_audio_equalizer_set_preamp(equalizer_ptr, 2.0)
preamp = vlc.libvlc_audio_equalizer_get_preamp(equalizer_ptr)
print(f"Equalizer preamp: {preamp}")

# Set band levels
for band in range(10):  # 10-band equalizer
    vlc.libvlc_audio_equalizer_set_amp_at_index(equalizer_ptr, 1.0, band)
    amp = vlc.libvlc_audio_equalizer_get_amp_at_index(equalizer_ptr, band)
    print(f"Band {band}: {amp}dB")

# Clean up
vlc.libvlc_audio_equalizer_release(equalizer_ptr)
vlc.libvlc_media_player_stop(player_ptr)
vlc.libvlc_media_release(media_ptr)
vlc.libvlc_media_player_release(player_ptr)
vlc.libvlc_release(instance_ptr)

Memory Management Example

import vlc
import ctypes

# Create instance with retain/release
instance_ptr = vlc.libvlc_new(0, None)
vlc.libvlc_retain(instance_ptr)  # Increment reference count

# Create media with retain/release
media_ptr = vlc.libvlc_media_new_path(instance_ptr, '/path/to/video.mp4')
vlc.libvlc_media_retain(media_ptr)  # Increment reference count

# Duplicate media
duplicate_ptr = vlc.libvlc_media_duplicate(media_ptr)

# Create player with retain/release
player_ptr = vlc.libvlc_media_player_new(instance_ptr)
vlc.libvlc_media_player_retain(player_ptr)  # Increment reference count

# Use media and player
vlc.libvlc_media_player_set_media(player_ptr, media_ptr)
vlc.libvlc_media_player_play(player_ptr)

import time
time.sleep(5)

# Proper cleanup with reference counting
vlc.libvlc_media_player_stop(player_ptr)

# Release all references
vlc.libvlc_media_player_release(player_ptr)  # Decrement
vlc.libvlc_media_player_release(player_ptr)  # Final release

vlc.libvlc_media_release(duplicate_ptr)
vlc.libvlc_media_release(media_ptr)  # Decrement  
vlc.libvlc_media_release(media_ptr)  # Final release

vlc.libvlc_release(instance_ptr)  # Decrement
vlc.libvlc_release(instance_ptr)  # Final release

print("All references properly released")

Install with Tessl CLI

npx tessl i tessl/pypi-python-vlc

docs

audio-control.md

core-playback.md

data-structures.md

discovery-renderers.md

event-system.md

index.md

low-level-functions.md

media-lists.md

video-control.md

tile.json