<div dir="ltr">Hello, <br> 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. <br>For this i have realised that the initial trigger should come from function <i>vout_Snapshot @ </i><b>src/video_output/vout_intf.c.</b><i><br>
<br></i>I also know that somewhere i should register a new event type to the media_player event_manager. The correct place seems to be <b>src/control/media_player.c</b>. There a new function should be created like input_position_changed :<br>
*<br> * snapshotTaken (Private) (input var "?????" Callback)<br> */<br>static int<br>snapshotTaken( vlc_object_t * p_this, char const * psz_cmd,<br> vlc_value_t oldval, vlc_value_t newval,<br>
void * p_userdata )<br>{<br> VLC_UNUSED(oldval);<br> libvlc_media_player_t * p_mi = p_userdata;<br> vlc_value_t val;<br><br> <br> /*TODO: get value of filename */<br><br> libvlc_event_t event;<br>
event.type = libvlc_MediaPlayerSnapshotTaken;<br> /*TODO: Add snapshot filename<br> event.u.media_player_position_changed.new_position = val.f_float;<br> */<br><br> libvlc_event_send( p_mi->p_event_manager, &event );<br>
return VLC_SUCCESS;<br>}<br><br>Now the first problem is how do i connect snapshotTaken with a trigger ? In libvlc_media_player_play there is a line<br><i> var_AddCallback( p_input_thread, "snapshot-taken", snapshotTaken, p_mi );<br>
</i>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.<br>
<br>Lest go to the other part of the event chain. I know that given the <i>vout_thread_t</i> ine can take l<i>ibvlc_int_t.</i> 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 )?<br>
<br>Thanks in advance <br> basOS<br><br>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 ?<br><br><br>
</div>