[Xineliboutput-cvslog] vdr-xineliboutput xine_osd_command.h, 1.11, 1.12 setup_menu.c, 1.54, 1.55 de
Brought to you by:
phintuka
Update of /cvsroot/xineliboutput/vdr-xineliboutput In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv20908 Modified Files: xine_osd_command.h setup_menu.c device.h device.c frontend.h frontend.c osd.c xine_input_vdr.c Log Message: Signal unscaled OSD configuration options in xine_osd_command_t flags Index: xine_input_vdr.c =================================================================== RCS file: /cvsroot/xineliboutput/vdr-xineliboutput/xine_input_vdr.c,v retrieving revision 1.136 retrieving revision 1.137 diff -u -d -r1.136 -r1.137 --- xine_input_vdr.c 14 Apr 2008 13:19:45 -0000 1.136 +++ xine_input_vdr.c 14 Apr 2008 19:58:54 -0000 1.137 @@ -312,8 +312,6 @@ int vdr_osd_width, vdr_osd_height; int video_width, video_height; int video_changed; - int unscaled_osd; - int unscaled_osd_lowresvideo; int osdhandle[MAX_OSD_OBJECT]; int64_t last_changed_vpts[MAX_OSD_OBJECT]; osd_command_t osddata[MAX_OSD_OBJECT]; @@ -2116,7 +2114,7 @@ if(!(this->stream->video_out->get_capabilities(this->stream->video_out) & VO_CAP_UNSCALED_OVERLAY)) unscaled_supported = 0; - else if(this->unscaled_osd) + else if(cmd->flags & OSDFLAG_UNSCALED) use_unscaled = 1; /* store osd for later rescaling (done if video size changes) */ @@ -2159,7 +2157,7 @@ / this->vdr_osd_height)>>8; LOGOSD("Size out of margins, rescaling rle image"); if(width_diff < 0 || height_diff < 0) - if(unscaled_supported && this->unscaled_osd_lowresvideo) + if(unscaled_supported && (cmd->flags & OSDFLAG_UNSCALED_LOWRES)) use_unscaled = 1; if(!use_unscaled && cmd->scaling > 0) { @@ -3163,15 +3161,6 @@ return CONTROL_PARAM_ERROR; } -static int handle_control_osdscaling(vdr_input_plugin_t *this, const char *cmd) -{ - pthread_mutex_lock(&this->osd_lock); - this->unscaled_osd = strstr(cmd, "UnscaledAlways") ? 1 : 0; - this->unscaled_osd_lowresvideo = strstr(cmd, "UnscaledLowRes") ? 1 : 0; - pthread_mutex_unlock(&this->osd_lock); - return CONTROL_OK; -} - static int handle_control_osdcmd(vdr_input_plugin_t *this) { osd_command_t osdcmd; @@ -3490,10 +3479,7 @@ if(NULL != (pt = strstr(cmd, "\r\n"))) *((char*)pt) = 0; /* auts */ - if(!strncasecmp(cmd, "OSDSCALING", 10)) { - err = handle_control_osdscaling(this, cmd); - - } else if(!strncasecmp(cmd, "OSDCMD", 6)) { + if(!strncasecmp(cmd, "OSDCMD", 6)) { err = handle_control_osdcmd(this); } else if(!strncasecmp(cmd, "VIDEO_PROPERTIES ", 17)) { Index: frontend.h =================================================================== RCS file: /cvsroot/xineliboutput/vdr-xineliboutput/frontend.h,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- frontend.h 12 Apr 2008 19:37:41 -0000 1.21 +++ frontend.h 14 Apr 2008 19:58:50 -0000 1.22 @@ -115,7 +115,6 @@ // public: - virtual int ConfigureOSD(void); virtual int ConfigurePostprocessing(const char *deinterlace_method, int audio_delay, int audio_compression, Index: frontend.c =================================================================== RCS file: /cvsroot/xineliboutput/vdr-xineliboutput/frontend.c,v retrieving revision 1.58 retrieving revision 1.59 diff -u -d -r1.58 -r1.59 --- frontend.c 14 Apr 2008 13:19:45 -0000 1.58 +++ frontend.c 14 Apr 2008 19:58:54 -0000 1.59 @@ -781,7 +781,6 @@ void cXinelibThread::Configure(void) { - ConfigureOSD(); ConfigurePostprocessing(xc.deinterlace_method, xc.audio_delay, xc.audio_compression, xc.audio_equalizer, xc.audio_surround, xc.speaker_type); @@ -807,18 +806,6 @@ xc.scr_tunning ? xc.scr_hz : 90000)); } -int cXinelibThread::ConfigureOSD(void) -{ - char buf[256]; - strcpy(buf, "OSDSCALING "); - if(xc.unscaled_osd) - strcat(buf, " UnscaledAlways"); - if(xc.unscaled_osd_lowresvideo) - strcat(buf, " UnscaledLowRes"); - - return Xine_Control(buf); -} - int cXinelibThread::ConfigurePostprocessing(const char *deinterlace_method, int audio_delay, int audio_compression, Index: device.c =================================================================== RCS file: /cvsroot/xineliboutput/vdr-xineliboutput/device.c,v retrieving revision 1.56 retrieving revision 1.57 diff -u -d -r1.56 -r1.57 --- device.c 12 Apr 2008 19:37:41 -0000 1.56 +++ device.c 14 Apr 2008 19:58:50 -0000 1.57 @@ -414,13 +414,6 @@ // Configuration // -void cXinelibDevice::ConfigureOSD(void) -{ - TRACEF("cXinelibDevice::ConfigureOSD"); - - ForEach(m_clients, &cXinelibThread::ConfigureOSD); -} - void cXinelibDevice::ConfigurePostprocessing(const char *deinterlace_method, int audio_delay, int audio_compression, Index: osd.c =================================================================== RCS file: /cvsroot/xineliboutput/vdr-xineliboutput/osd.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- osd.c 12 Apr 2008 20:56:02 -0000 1.22 +++ osd.c 14 Apr 2008 19:58:54 -0000 1.23 @@ -224,6 +224,10 @@ memcpy(&osdcmd.dirty_area, DirtyArea, sizeof(osd_rect_t)); if(m_Refresh) osdcmd.flags |= OSDFLAG_REFRESH; + if(xc.unscaled_osd) + osdcmd.flags |= OSDFLAG_UNSCALED; + else if(xc.unscaled_osd_lowresvideo) + osdcmd.flags |= OSDFLAG_UNSCALED_LOWRES; prepare_palette(&clut[0], Palette, Colors, /*Top*/(Prev() == NULL), true); osdcmd.colors = Colors; Index: xine_osd_command.h =================================================================== RCS file: /cvsroot/xineliboutput/vdr-xineliboutput/xine_osd_command.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- xine_osd_command.h 4 Apr 2008 20:35:11 -0000 1.11 +++ xine_osd_command.h 14 Apr 2008 19:58:50 -0000 1.12 @@ -33,8 +33,10 @@ OSD_Commit = 7 /* All OSD areas have been updated, commit changes to display */ } osd_command_id_t; -#define OSDFLAG_YUV_CLUT 0x01 -#define OSDFLAG_REFRESH 0x02 /* OSD data refresh for new config, clients, etc. - no changes in bitmap */ +#define OSDFLAG_YUV_CLUT 0x01 /* palette is in YUV format */ +#define OSDFLAG_REFRESH 0x02 /* OSD data refresh for new config, clients, etc. - no changes in bitmap */ +#define OSDFLAG_UNSCALED 0x04 /* xine-lib unscaled (hardware) blending */ +#define OSDFLAG_UNSCALED_LOWRES 0x08 /* unscaled blending when video resolution < .95 * 720x576 */ typedef struct xine_clut_s { union { Index: device.h =================================================================== RCS file: /cvsroot/xineliboutput/vdr-xineliboutput/device.h,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- device.h 12 Apr 2008 19:37:41 -0000 1.33 +++ device.h 14 Apr 2008 19:58:50 -0000 1.34 @@ -211,7 +211,6 @@ cXinelibThread *m_local; public: - void ConfigureOSD(void); void ConfigurePostprocessing(const char *deinterlace_method, int audio_delay, int audio_compression, Index: setup_menu.c =================================================================== RCS file: /cvsroot/xineliboutput/vdr-xineliboutput/setup_menu.c,v retrieving revision 1.54 retrieving revision 1.55 diff -u -d -r1.54 -r1.55 --- setup_menu.c 14 Apr 2008 14:13:15 -0000 1.54 +++ setup_menu.c 14 Apr 2008 19:58:50 -0000 1.55 @@ -875,8 +875,6 @@ { xc.alpha_correction = orig_alpha_correction; xc.alpha_correction_abs = orig_alpha_correction_abs; - - cXinelibDevice::Instance().ConfigureOSD(); } void cMenuSetupOSD::Set(void) @@ -966,8 +964,6 @@ xc.alpha_correction = newconfig.alpha_correction; else if(item == ctrl_alpha_abs) xc.alpha_correction_abs = newconfig.alpha_correction_abs; - else if(item == ctrl_unscaled) - cXinelibDevice::Instance().ConfigureOSD(); if(!newconfig.unscaled_osd && !ctrl_lowres) Set(); |