X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fmisc%2Fdummy%2Fvout.c;h=1c20e40c2631c033e0df9225b91ae6727c7a3308;hb=80fde19dfe7b9e5875e0f891fe29aa0f6c0ec82e;hp=000ebe55c91634fee8804bb82341dc2fd97101c2;hpb=19ea8feb6db01c1deafb19f35ecee8eff81aeb02;p=vlc diff --git a/modules/misc/dummy/vout.c b/modules/misc/dummy/vout.c index 000ebe55c9..1c20e40c26 100644 --- a/modules/misc/dummy/vout.c +++ b/modules/misc/dummy/vout.c @@ -1,8 +1,8 @@ /***************************************************************************** * vout_dummy.c: Dummy video output display method for testing purposes ***************************************************************************** - * Copyright (C) 2000, 2001 VideoLAN - * $Id: vout.c,v 1.1 2002/08/04 17:23:43 sam Exp $ + * Copyright (C) 2000, 2001 the VideoLAN team + * $Id$ * * Authors: Samuel Hocevar * @@ -10,7 +10,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -18,31 +18,33 @@ * * 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. *****************************************************************************/ /***************************************************************************** * Preamble *****************************************************************************/ -#include /* ENOMEM */ #include /* free() */ #include /* strerror() */ #include -#include +#include #define DUMMY_WIDTH 16 #define DUMMY_HEIGHT 16 #define DUMMY_MAX_DIRECTBUFFERS 10 +#include "dummy.h" + /***************************************************************************** * Local prototypes *****************************************************************************/ -static int Init ( vout_thread_t * ); -static void End ( vout_thread_t * ); -static int Manage ( vout_thread_t * ); -static void Render ( vout_thread_t *, picture_t * ); -static void Display ( vout_thread_t *, picture_t * ); +static int Init ( vout_thread_t * ); +static void End ( vout_thread_t * ); +static int Manage ( vout_thread_t * ); +static void Render ( vout_thread_t *, picture_t * ); +static void Display ( vout_thread_t *, picture_t * ); +static void SetPalette ( vout_thread_t *, uint16_t *, uint16_t *, uint16_t * ); /***************************************************************************** * OpenVideo: activates dummy video thread output method @@ -77,11 +79,8 @@ static int Init( vout_thread_t *p_vout ) { if( strlen( psz_chroma ) >= 4 ) { - i_chroma = (unsigned char)psz_chroma[0] << 0; - i_chroma |= (unsigned char)psz_chroma[1] << 8; - i_chroma |= (unsigned char)psz_chroma[2] << 16; - i_chroma |= (unsigned char)psz_chroma[3] << 24; - + i_chroma = VLC_FOURCC( psz_chroma[0], psz_chroma[1], + psz_chroma[2], psz_chroma[3] ); b_chroma = 1; } @@ -96,16 +95,21 @@ static int Init( vout_thread_t *p_vout ) msg_Dbg( p_vout, "forcing chroma 0x%.8x (%4.4s)", i_chroma, (char*)&i_chroma ); p_vout->output.i_chroma = i_chroma; + if ( i_chroma == VLC_FOURCC( 'R', 'G', 'B', '2' ) ) + { + p_vout->output.pf_setpalette = SetPalette; + } p_vout->output.i_width = p_vout->render.i_width; p_vout->output.i_height = p_vout->render.i_height; p_vout->output.i_aspect = p_vout->render.i_aspect; } else { - p_vout->output.i_chroma = VLC_FOURCC('R','V','1','6'); - p_vout->output.i_rmask = 0xf800; - p_vout->output.i_gmask = 0x07e0; - p_vout->output.i_bmask = 0x001f; + /* Use same chroma as input */ + p_vout->output.i_chroma = p_vout->render.i_chroma; + p_vout->output.i_rmask = p_vout->render.i_rmask; + p_vout->output.i_gmask = p_vout->render.i_gmask; + p_vout->output.i_bmask = p_vout->render.i_bmask; p_vout->output.i_width = p_vout->render.i_width; p_vout->output.i_height = p_vout->render.i_height; p_vout->output.i_aspect = p_vout->render.i_aspect; @@ -132,9 +136,9 @@ static int Init( vout_thread_t *p_vout ) break; } - vout_AllocatePicture( p_vout, p_pic, p_vout->output.i_width, - p_vout->output.i_height, - p_vout->output.i_chroma ); + vout_AllocatePicture( VLC_OBJECT(p_vout), p_pic, p_vout->output.i_chroma, + p_vout->output.i_width, p_vout->output.i_height, + p_vout->output.i_aspect ); if( p_pic->i_planes == 0 ) { @@ -194,3 +198,11 @@ static void Display( vout_thread_t *p_vout, picture_t *p_pic ) /* No need to do anything, the fake direct buffers stay as they are */ } +/***************************************************************************** + * SetPalette: set the palette for the picture + *****************************************************************************/ +static void SetPalette ( vout_thread_t *p_vout, + uint16_t *red, uint16_t *green, uint16_t *blue ) +{ + /* No need to do anything, the fake direct buffers stay as they are */ +}