[vlc-devel] libvlc marquee API proposition

jboileau jboileau at gmail.com
Mon Jun 2 23:17:36 CEST 2008


Here is what I would propose as API for the marquee filter:

void libvlc_video_new_marq(
                 libvlc_media_player_t *p_mi,
                 const char *psz_target_name,
                 libvlc_exception_t *p_e);

void libvlc_video_release_marq(
                 libvlc_media_player_t *p_mi,
                 const char *psz_target_name,
                 libvlc_exception_t *p_e);

void libvlc_video_set_marq_settings(
                 libvlc_media_player_t *p_mi,
                 const char *psz_target_name,
                 int i_position,
                 int i_x,
                 int i_y,
                 int i_opacity,
                 int i_color,
                 int i_size,
                 int i_timeout,
                 libvlc_exception_t *p_e);

void libvlc_video_set_marq_marquee(
                 libvlc_media_player_t *p_mi,
                 const char *psz_target_name,
                 const char *psz_marquee,
                 libvlc_exception_t *p_e);

Target name is the name provided after the "@" in the new 0.9.0 rc
interface. I have made the marquee option (text) a separate call from
the rest of the options because I believe the usual way to use it will
be to set the position color etc. of the marq filter once and then
send text to it many times. With the target name we will be able to
create many text zone and send text individually to each one.

I am unsure how the timeout works and it may have to be moved to the
libvlc_video_set_marq_marquee function if the timer starts the instant
it is set or each time text is set. Also I am unsure how to name the
first two functions: new/release, create/destroy, enable/disable. Any
comments would be most welcomed.

I will provide the same kind of API, assuming it is satisfactory, for
the adjust, logo and magnify filters. I toyed with the idea of having
a generic API for filter but that would burden the user of the API to
know more of how the underlying filter structure works. I don't think
this would be in line with the design philosophy of libvlc.

Jacques Boileau

More information about the vlc-devel mailing list