X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fvideo_output%2Fhd1000v.cpp;h=51f62cad4aa742677b46ad068e2e5bff6db05929;hb=13ae40b0efc4f1b1ce205d9a057537047fcab3f4;hp=ebfdace0252dda9360b0a2f1822c4010280a1492;hpb=85b29bdc288a1573d43bd524908be5748a9b3640;p=vlc diff --git a/modules/video_output/hd1000v.cpp b/modules/video_output/hd1000v.cpp index ebfdace025..51f62cad4a 100644 --- a/modules/video_output/hd1000v.cpp +++ b/modules/video_output/hd1000v.cpp @@ -1,10 +1,10 @@ /***************************************************************************** * hd1000v.cpp: HD1000 video output display method ***************************************************************************** - * Copyright (C) 2004 VideoLAN (Centrale Réseaux) and its contributors - * $Id: hd1000v.cpp 6961 2004-03-05 17:34:23Z jpsaman $ + * Copyright (C) 2004 the VideoLAN team + * $Id$ * - * Authors: Jean-Paul Saman + * Authors: Jean-Paul Saman * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ /***************************************************************************** @@ -26,12 +26,15 @@ *****************************************************************************/ extern "C" { #include /* ENOMEM */ -#include /* free() */ -#include /* strerror() */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif #include -#include -#include +#include +#include +#include } #include @@ -54,7 +57,7 @@ static void FreePicture( vout_thread_t *, picture_t * ); * Module descriptor *****************************************************************************/ vlc_module_begin(); - set_description( _("HD1000 video output") ); + set_description( N_("HD1000 video output") ); set_capability( "video output", 100 ); add_shortcut( "hd1000v" ); set_callbacks( Create, Destroy ); @@ -71,8 +74,8 @@ struct vout_sys_t uint32_t i_width; /* width of main window */ uint32_t i_height; /* height of main window */ uint32_t i_screen_depth; - vlc_bool_t b_double_buffered; - + bool b_double_buffered; + uint32_t u_current; /* Current output resolution. */ CascadeScreen *p_screen; }; @@ -91,7 +94,7 @@ static int Create( vlc_object_t *p_this ) { vout_thread_t *p_vout = (vout_thread_t *)p_this; bool b_double_buffered = false; - + p_vout->p_sys = (struct vout_sys_t*) malloc( sizeof(struct vout_sys_t) ); if( p_vout->p_sys == NULL ) { @@ -117,7 +120,7 @@ static int Create( vlc_object_t *p_this ) /* Get current screen resolution */ msg_Dbg( p_vout, "number of screen resolutions supported %u", p_vout->p_sys->p_screen->GetNumScreenResolutionsSupported() ); - + p_vout->p_sys->p_screen->GetCurrentScreenResolution( (u32) p_vout->p_sys->u_current ); p_vout->p_sys->p_screen->SetScreenResolution( (u32) p_vout->p_sys->u_current ); @@ -125,31 +128,31 @@ static int Create( vlc_object_t *p_this ) msg_Dbg( p_vout, "available screen resolutions:" ); for (u32 i=0; ip_sys->p_screen->GetNumScreenResolutionsSupported(); i++) { - u32 i_width=0; - u32 i_height=0; - u8 i_screen_depth=0; - bool b_buffered; - + u32 i_width=0; + u32 i_height=0; + u8 i_screen_depth=0; + bool b_buffered; + p_vout->p_sys->p_screen->GetSupportedScreenResolutionAt( i, i_width, i_height, i_screen_depth, b_buffered); msg_Dbg( p_vout, " screen index = %u, width = %u, height = %u, depth = %u, double buffered = %s", i, i_width, i_height, i_screen_depth, (b_buffered ? "yes" : "no") ); } -#endif - +#endif + p_vout->p_sys->p_screen->GetSupportedScreenResolutionAt( (u32) p_vout->p_sys->u_current, (u32) p_vout->p_sys->i_width, (u32) p_vout->p_sys->i_height, (u8) p_vout->p_sys->i_screen_depth, b_double_buffered ); - p_vout->p_sys->b_double_buffered = (vlc_bool_t) b_double_buffered; + p_vout->p_sys->b_double_buffered = (bool) b_double_buffered; msg_Dbg( p_vout, "using screen index = %u, width = %u, height = %u, depth = %u, double buffered = %d", p_vout->p_sys->u_current, /* Current screen. */ p_vout->p_sys->i_width, p_vout->p_sys->i_height, p_vout->p_sys->i_screen_depth, p_vout->p_sys->b_double_buffered ); - + return VLC_SUCCESS; } @@ -276,7 +279,7 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic ) free( p_pic->p_sys ); return -1; } - + p_pic->p->i_lines = p_vout->output.i_height; p_pic->p->i_visible_lines = p_vout->output.i_height; p_pic->p->p_pixels = (uint8_t*) p_pic->p_sys->p_image->MapLock(); @@ -284,7 +287,7 @@ static int NewPicture( vout_thread_t *p_vout, picture_t *p_pic ) p_pic->p->i_visible_pitch = p_pic->p->i_pixel_pitch * p_vout->output.i_width; - return VLC_SUCCESS; + return VLC_SUCCESS; } /***************************************************************************** @@ -300,13 +303,13 @@ static void FreePicture( vout_thread_t *p_vout, picture_t *p_pic ) { /* Just a test to see the effect described above. REMOVE THIS */ msg_Err( p_vout, "unlocking shared memory failed, already unlocked" ); } - + if( p_pic->p_sys->p_image->Close() ) { msg_Err( p_vout, "closing shared memory failed. Leaking memory of %ul", p_pic->p_sys->p_image->GetSize() ); } - + delete p_pic->p_sys->p_image; free( p_pic->p_sys ); } @@ -318,7 +321,7 @@ static void Display( vout_thread_t *p_vout, picture_t *p_pic ) { uint32_t i_width, i_height, i_x, i_y; uint32_t i_offset = 0; - + vout_PlacePicture( p_vout, p_vout->p_sys->i_width, p_vout->p_sys->i_height, &i_x, &i_y, &i_width, &i_height ); @@ -327,13 +330,13 @@ static void Display( vout_thread_t *p_vout, picture_t *p_pic ) /* Currently the only pixel format supported is 32bpp RGBA.*/ p_vout->p_sys->p_screen->LockScreen(); - + /* Unlock the shared memory region first. */ - if( p_pic->p_sys->p_image->Unlock() ) + if( p_pic->p_sys->p_image->Unlock() ) { msg_Err( p_vout, "unlocking shared memory failed. Expect threading problems." ); } - + p_vout->p_sys->p_screen->Blit( CascadePoint( (u32) i_x, (u32) i_y ), /* Place bitmap at */ (*p_pic->p_sys->p_image) , /* Image data */ (u32) i_offset, /* Offset in SharedMemoryZone */ @@ -341,6 +344,6 @@ static void Display( vout_thread_t *p_vout, picture_t *p_pic ) (u32) i_height, /* Source bitmap height */ (u32) p_vout->p_sys->i_screen_depth, /* Source pixel depth */ CascadeRect( (u32) i_x, (u32) i_y, (u32) i_width, (u32) i_height ) ); - + p_vout->p_sys->p_screen->UnlockScreen(); }