N_("Teal"), N_("Lime"), N_("Purple"), N_("Navy"), N_("Blue"),
N_("Aqua") };
-vlc_module_begin();
- set_shortname( "fbosd" );
- set_category( CAT_INTERFACE );
- set_subcategory( SUBCAT_INTERFACE_MAIN );
+vlc_module_begin ()
+ set_shortname( "fbosd" )
+ set_category( CAT_INTERFACE )
+ set_subcategory( SUBCAT_INTERFACE_MAIN )
- add_file( "fbosd-dev", "/dev/fb1", NULL, DEVICE_TEXT, DEVICE_LONGTEXT,
- false );
+ add_file( "fbosd-dev", "/dev/fb0", NULL, DEVICE_TEXT, DEVICE_LONGTEXT,
+ false )
add_string( "fbosd-aspect-ratio", "", NULL, ASPECT_RATIO_TEXT,
- ASPECT_RATIO_LONGTEXT, true );
+ ASPECT_RATIO_LONGTEXT, true )
add_string( "fbosd-image", NULL, NULL, FBOSD_IMAGE_TEXT,
- FBOSD_IMAGE_LONGTEXT, true );
+ FBOSD_IMAGE_LONGTEXT, true )
add_string( "fbosd-text", NULL, NULL, FBOSD_TEXT,
- FBOSD_LONGTEXT, true );
+ FBOSD_LONGTEXT, true )
add_integer_with_range( "fbosd-alpha", 255, 0, 255, NULL, ALPHA_TEXT,
- ALPHA_LONGTEXT, true );
+ ALPHA_LONGTEXT, true )
- set_section( N_("Position"), NULL );
+ set_section( N_("Position"), NULL )
add_integer( "fbosd-x", 0, NULL, POSX_TEXT,
- POSX_LONGTEXT, false );
+ POSX_LONGTEXT, false )
add_integer( "fbosd-y", 0, NULL, POSY_TEXT,
- POSY_LONGTEXT, false );
- add_integer( "fbosd-position", 8, NULL, POS_TEXT, POS_LONGTEXT, true );
+ POSY_LONGTEXT, false )
+ add_integer( "fbosd-position", 8, NULL, POS_TEXT, POS_LONGTEXT, true )
change_integer_list( pi_pos_values, ppsz_pos_descriptions, NULL );
- set_section( N_("Font"), NULL );
+ set_section( N_("Font"), NULL )
add_integer_with_range( "fbosd-font-opacity", 255, 0, 255, NULL,
- OPACITY_TEXT, OPACITY_LONGTEXT, false );
+ OPACITY_TEXT, OPACITY_LONGTEXT, false )
add_integer( "fbosd-font-color", 0x00FFFFFF, NULL, COLOR_TEXT, COLOR_LONGTEXT,
- false );
+ false )
change_integer_list( pi_color_values, ppsz_color_descriptions, NULL );
add_integer( "fbosd-font-size", -1, NULL, SIZE_TEXT, SIZE_LONGTEXT,
- false );
+ false )
- set_section( N_("Commands"), NULL );
- add_bool( "fbosd-clear", false, NULL, CLEAR_TEXT, CLEAR_LONGTEXT, true );
- add_bool( "fbosd-render", false, NULL, RENDER_TEXT, RENDER_LONGTEXT, true );
- add_bool( "fbosd-display", false, NULL, DISPLAY_TEXT, DISPLAY_LONGTEXT, true );
+ set_section( N_("Commands"), NULL )
+ add_bool( "fbosd-clear", false, NULL, CLEAR_TEXT, CLEAR_LONGTEXT, true )
+ add_bool( "fbosd-render", false, NULL, RENDER_TEXT, RENDER_LONGTEXT, true )
+ add_bool( "fbosd-display", false, NULL, DISPLAY_TEXT, DISPLAY_LONGTEXT, true )
- set_description( N_("GNU/Linux osd/overlay framebuffer interface") );
- set_capability( "interface", 10 );
- set_callbacks( Create, Destroy );
-vlc_module_end();
+ set_description( N_("GNU/Linux osd/overlay framebuffer interface") )
+ set_capability( "interface", 10 )
+ set_callbacks( Create, Destroy )
+vlc_module_end ()
/*****************************************************************************
* fbosd_render_t: render descriptor
int i;
/* Allocate instance and initialize some members */
- p_intf->p_sys = p_sys = malloc( sizeof( intf_sys_t ) );
+ p_intf->p_sys = p_sys = calloc( 1, sizeof( intf_sys_t ) );
if( !p_intf->p_sys )
return VLC_ENOMEM;
- memset( p_sys, 0, sizeof(intf_sys_t) );
p_sys->p_style = malloc( sizeof( text_style_t ) );
if( !p_sys->p_style )
p_sys->p_image = image_HandlerCreate( p_this );
if( !p_sys->p_image )
{
- free( p_intf->p_sys->p_style );
- free( p_intf->p_sys );
+ free( p_sys->p_style );
+ free( p_sys );
return VLC_ENOMEM;
}
atoi( psz_aspect ), atoi( psz_parser ) );
free( psz_aspect );
- psz_aspect = NULL;
}
/* Use PAL by default */
static void Destroy( vlc_object_t *p_this )
{
intf_thread_t *p_intf = (intf_thread_t *)p_this;
- intf_sys_t *p_sys = (intf_sys_t *) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
int i;
+
p_sys->b_need_update = false;
p_sys->b_render = false;
p_sys->b_clear = false;
VLC_FOURCC('Y','U','V','A');
p_intf->p_sys->p_blend->p_module =
- module_need( p_intf->p_sys->p_blend, "video blending", 0, 0 );
+ module_need( p_intf->p_sys->p_blend, "video blending", NULL, false );
if( !p_intf->p_sys->p_blend->p_module )
return VLC_EGENERIC;
if( !p_intf->p_sys->p_text->p_module )
{
p_intf->p_sys->p_text->p_module =
- module_need( p_intf->p_sys->p_text, "text renderer", 0, 0 );
+ module_need( p_intf->p_sys->p_text, "text renderer", NULL, false );
}
free( psz_modulename );
static void SetOverlayTransparency( intf_thread_t *p_intf,
bool b_transparent )
{
- intf_sys_t *p_sys = (intf_sys_t *) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
size_t i_size = p_sys->fmt_out.i_width * p_sys->fmt_out.i_height
* p_sys->i_bytes_per_pixel;
size_t i_page_size = (p_sys->i_page_size > i_size) ?
video_format_t *p_fmt_dst, picture_t *p_pic_src,
picture_t *p_pic_dst )
{
- intf_sys_t *p_sys = (intf_sys_t *) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
if( p_sys->p_blend && p_sys->p_blend->p_module )
{
int i_x_offset = p_sys->i_x;
static picture_t *RenderText( intf_thread_t *p_intf, const char *psz_string,
text_style_t *p_style, video_format_t *p_fmt )
{
- intf_sys_t *p_sys = (intf_sys_t *) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
subpicture_region_t *p_region;
picture_t *p_dest = NULL;
picture_Copy( p_dest, p_region->p_picture );
#else
fmt_out.i_chroma = p_fmt->i_chroma;
- p_dest = ConvertImage( p_intf, &p_region->p_picture,
+ p_dest = ConvertImage( p_intf, p_region->p_picture,
&p_region->fmt, &fmt_out );
#endif
subpicture_region_Delete( p_region );
static picture_t *ConvertImage( intf_thread_t *p_intf, picture_t *p_pic,
video_format_t *p_fmt_in, video_format_t *p_fmt_out )
{
- intf_sys_t *p_sys = (intf_sys_t *) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
picture_t *p_old = NULL;
if( p_sys->p_image )
*****************************************************************************/
static int Init( intf_thread_t *p_intf )
{
- intf_sys_t *p_sys = (intf_sys_t *) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
/* Initialize the output structure: RGB with square pixels, whatever
* the input format is, since it's the only format we know */
*****************************************************************************/
static void End( intf_thread_t *p_intf )
{
- intf_sys_t *p_sys = (intf_sys_t *) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
/* CleanUp */
SetOverlayTransparency( p_intf, false );
*****************************************************************************/
static int OpenDisplay( intf_thread_t *p_intf )
{
- intf_sys_t *p_sys = (intf_sys_t *) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
char *psz_device; /* framebuffer device path */
struct fb_fix_screeninfo fix_info; /* framebuffer fix information */
*****************************************************************************/
static void CloseDisplay( intf_thread_t *p_intf )
{
- intf_sys_t *p_sys = (intf_sys_t *) p_intf;
+ intf_sys_t *p_sys = p_intf->p_sys;
/* Restore palette */
if( p_sys->var_info.bits_per_pixel == 8 )
static void Render( intf_thread_t *p_intf, struct fbosd_render_t *render )
{
- intf_sys_t *p_sys = (intf_sys_t*) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
if( render->i_state != FBOSD_STATE_RENDER ) return;
if( !render->psz_string ) return;
static void RenderClear( intf_thread_t *p_intf, struct fbosd_render_t *render )
{
- intf_sys_t *p_sys = (intf_sys_t*) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
vlc_memcpy( &render->text_style, &default_text_style,
sizeof( text_style_t ) );
static bool isRendererReady( intf_thread_t *p_intf )
{
- intf_sys_t *p_sys = (intf_sys_t*) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
int i;
/* Check if there are more items to render */
*****************************************************************************/
static void Run( intf_thread_t *p_intf )
{
- intf_sys_t *p_sys = (intf_sys_t*) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
int canc = vlc_savecancel();
while( vlc_object_alive( p_intf ) )
vlc_value_t oldval, vlc_value_t newval, void *p_data )
{
intf_thread_t *p_intf = (intf_thread_t *) p_this;
- intf_sys_t *p_sys = (intf_sys_t*) p_intf->p_sys;
+ intf_sys_t *p_sys = p_intf->p_sys;
VLC_UNUSED(oldval); VLC_UNUSED(p_data);
if( !strncmp( psz_cmd, "fbosd-display", 13 ) )