Commit Message
Kimmo Taskinen wrote:
> I am still using 1.6.0-2 and have patched it for FullHD OSD (http://www.vdrportal.de/board/thread.php?threadid=79647&threadview=0&hilight=&hilightuser=0&page=1
> ). Frontend is xineliboutput-cvs (vdr-sxfe in other computer; tcp
> connection) and skinenigmang-0.1.0 is in use. Everything seems fine
> except that if I use antialiased fonts there is one problem that I
> have noticed only with epgsearch plugin "Schedule" view. The problem
> is that Schedule is not shown if the OSD should be really full. With
> short EPG info the schedule is shown.
>
> The problem seems to be in buffering as I get following message in /
> var/log/messages:
> Aug 25 18:04:35 server vdr: [7573] [xine..put] write_osd_command:
> socket buffer full, OSD send skipped (got 262142 ; need 302366
>
> 256k seems to be the limit.
>
> Is it the problem in vdr, xineliboutput, epgsearch or somewhere else?
xineliboutput limits compressed OSD bitmap size.
> OK I understand that these versions were not designed for fullHD
> support but anyways it would be nice fix this.
Does the attached patch fix the problem ?
- Petri
Comments
The patch fixed the problem. Thanks a lot :-).
- Kimmo
On 26 Sep 2009, at 21:11, Petri Hintukainen wrote:
> Kimmo Taskinen wrote:
>> I am still using 1.6.0-2 and have patched it for FullHD OSD (http://www.vdrportal.de/board/thread.php?threadid=79647&threadview=0&hilight=&hilightuser=0&page=1
>> ). Frontend is xineliboutput-cvs (vdr-sxfe in other computer; tcp
>> connection) and skinenigmang-0.1.0 is in use. Everything seems fine
>> except that if I use antialiased fonts there is one problem that I
>> have noticed only with epgsearch plugin "Schedule" view. The problem
>> is that Schedule is not shown if the OSD should be really full. With
>> short EPG info the schedule is shown.
>>
>> The problem seems to be in buffering as I get following message in /
>> var/log/messages:
>> Aug 25 18:04:35 server vdr: [7573] [xine..put] write_osd_command:
>> socket buffer full, OSD send skipped (got 262142 ; need 302366
>>
>> 256k seems to be the limit.
>>
>> Is it the problem in vdr, xineliboutput, epgsearch or somewhere else?
>
> xineliboutput limits compressed OSD bitmap size.
>
>> OK I understand that these versions were not designed for fullHD
>> support but anyways it would be nice fix this.
>
> Does the attached patch fix the problem ?
>
>
> - Petri
> <xineliboutput-osd_send_max_size.diff>
===================================================================
RCS file: /cvsroot/xineliboutput/vdr-xineliboutput/frontend_svr.c,v
retrieving revision 1.81
@@ -52,6 +52,9 @@
#define PLAYFILE_CTRL_TIMEOUT 300 /* ms */
#define PLAYFILE_TIMEOUT 20000 /* ms */
+#undef MIN
+#define MIN(a,b) ( (a) < (b) ? (a) : (b))
+
typedef struct {
int Size;
uchar *Data;
@@ -241,7 +244,7 @@
(ssize_t)(sizeof(xine_clut_t) * ntohl(cmd->colors)) +
(ssize_t)(ntohl(cmd->datalen));
- if(max > 0 && max < size) {
+ if(max > 0 && max < MIN(size, 32768)) {
/* #warning TODO: buffer latest failed OSD and retry
-> skipped OSDs can be left out but
latest will be always delivered */