[vlc-devel] New libvlc_media_player Event

basOS G noxelia at gmail.com
Wed Aug 6 12:22:48 CEST 2008


Hello,
  i'm new to vlc coding. I'm thinking to add a new event to the
libvlc_media_player that will be triggered when a snapshot is taken.
For this i have realised that the initial trigger should come from function
*vout_Snapshot @ **src/video_output/vout_intf.c.**

*I also know that somewhere i should register a new event type to the
media_player event_manager. The correct place seems to be *
src/control/media_player.c*. There a new function should be created like
input_position_changed :
*
 * snapshotTaken (Private) (input var "?????" Callback)
 */
static int
snapshotTaken( vlc_object_t * p_this, char const * psz_cmd,
                     vlc_value_t oldval, vlc_value_t newval,
                     void * p_userdata )
{
    VLC_UNUSED(oldval);
    libvlc_media_player_t * p_mi = p_userdata;
    vlc_value_t val;


    /*TODO: get value of filename */

    libvlc_event_t event;
    event.type = libvlc_MediaPlayerSnapshotTaken;
    /*TODO: Add snapshot filename
           event.u.media_player_position_changed.new_position = val.f_float;
    */

    libvlc_event_send( p_mi->p_event_manager, &event );
    return VLC_SUCCESS;
}

Now the first problem is how do i connect snapshotTaken with a trigger ? In
libvlc_media_player_play there is a line
* var_AddCallback( p_input_thread, "snapshot-taken", snapshotTaken, p_mi );
*Im not familiar with the variable subsystem (is there a documentation for
it?). What does var_AddCallback suppose to do and how can someone trigger
the callback? I assume that when someone calls var_Set for the input_thread
the callback is triggered.

Lest go to the other part of the event chain. I know that given the *
vout_thread_t* ine can take l*ibvlc_int_t.* Assuming that we "attached" that
snapshot-taken var with the p_input_thread from within the media_player that
we got from media_player->p_input_thread. How can we find this input_thread
from withing vout_thread and call a var_Set( p_input_thread,
"snapshot-taken",  &val )?

Thanks in advance
  basOS

ps. i have a video filter ready (detects static images and takes snapshots -
yes thats why i need the snapshot event). Should i post it here? Could i
make commits to git ?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20080806/a8e43c21/attachment.html>


More information about the vlc-devel mailing list