Mercurial > mplayer.hg
comparison mplayer.c @ 28378:45ddc04c30a1
increase max OSD message size limit
patch by Scaevolus on irc
author | compn |
---|---|
date | Sun, 01 Feb 2009 00:00:21 +0000 |
parents | 21504ba0f5d3 |
children | f02a92b6d0a4 |
comparison
equal
deleted
inserted
replaced
28377:089df060f944 | 28378:45ddc04c30a1 |
---|---|
1323 typedef struct mp_osd_msg mp_osd_msg_t; | 1323 typedef struct mp_osd_msg mp_osd_msg_t; |
1324 struct mp_osd_msg { | 1324 struct mp_osd_msg { |
1325 /// Previous message on the stack. | 1325 /// Previous message on the stack. |
1326 mp_osd_msg_t* prev; | 1326 mp_osd_msg_t* prev; |
1327 /// Message text. | 1327 /// Message text. |
1328 char msg[64]; | 1328 char msg[128]; |
1329 int id,level,started; | 1329 int id,level,started; |
1330 /// Display duration in ms. | 1330 /// Display duration in ms. |
1331 unsigned time; | 1331 unsigned time; |
1332 }; | 1332 }; |
1333 | 1333 |
1360 msg->prev = osd_msg_stack; | 1360 msg->prev = osd_msg_stack; |
1361 osd_msg_stack = msg; | 1361 osd_msg_stack = msg; |
1362 } | 1362 } |
1363 // write the msg | 1363 // write the msg |
1364 va_start(va,fmt); | 1364 va_start(va,fmt); |
1365 r = vsnprintf(msg->msg, 64, fmt, va); | 1365 r = vsnprintf(msg->msg, 128, fmt, va); |
1366 va_end(va); | 1366 va_end(va); |
1367 if(r >= 64) msg->msg[63] = 0; | 1367 if(r >= 128) msg->msg[127] = 0; |
1368 // set id and time | 1368 // set id and time |
1369 msg->id = id; | 1369 msg->id = id; |
1370 msg->level = level; | 1370 msg->level = level; |
1371 msg->time = time; | 1371 msg->time = time; |
1372 | 1372 |
1503 * | 1503 * |
1504 */ | 1504 */ |
1505 | 1505 |
1506 static void update_osd_msg(void) { | 1506 static void update_osd_msg(void) { |
1507 mp_osd_msg_t *msg; | 1507 mp_osd_msg_t *msg; |
1508 static char osd_text[64] = ""; | 1508 static char osd_text[128] = ""; |
1509 static char osd_text_timer[64]; | 1509 static char osd_text_timer[128]; |
1510 | 1510 |
1511 // we need some mem for vo_osd_text | 1511 // we need some mem for vo_osd_text |
1512 vo_osd_text = (unsigned char*)osd_text; | 1512 vo_osd_text = (unsigned char*)osd_text; |
1513 | 1513 |
1514 // Look if we have a msg | 1514 // Look if we have a msg |
1515 if((msg = get_osd_msg())) { | 1515 if((msg = get_osd_msg())) { |
1516 if(strcmp(osd_text,msg->msg)) { | 1516 if(strcmp(osd_text,msg->msg)) { |
1517 strncpy((char*)osd_text, msg->msg, 63); | 1517 strncpy((char*)osd_text, msg->msg, 127); |
1518 if(mpctx->sh_video) vo_osd_changed(OSDTYPE_OSD); else | 1518 if(mpctx->sh_video) vo_osd_changed(OSDTYPE_OSD); else |
1519 if(term_osd) mp_msg(MSGT_CPLAYER,MSGL_STATUS,"%s%s\n",term_osd_esc,msg->msg); | 1519 if(term_osd) mp_msg(MSGT_CPLAYER,MSGL_STATUS,"%s%s\n",term_osd_esc,msg->msg); |
1520 } | 1520 } |
1521 return; | 1521 return; |
1522 } | 1522 } |