# HG changeset patch # User reimar # Date 1164492360 0 # Node ID 3ec5917cdae2d3fcb16295f72e2730acdfc897a6 # Parent 7c5e2e22a37e451b07f8ebe5c9d031a91f2c3c00 Cleanup for uselessly complicated closed-caption subtitle handling diff -r 7c5e2e22a37e -r 3ec5917cdae2 libmpdemux/video.c --- a/libmpdemux/video.c Sat Nov 25 20:53:43 2006 +0000 +++ b/libmpdemux/video.c Sat Nov 25 22:06:00 2006 +0000 @@ -366,7 +366,7 @@ /* if the user data starts with "CC", assume it is a CC info packet */ if(len>2 && buf[0]=='C' && buf[1]=='C'){ // mp_msg(MSGT_DECVIDEO,MSGL_DBG2,"video.c: process_userdata() detected Closed Captions!\n"); - if(subcc_enabled) subcc_process_data(buf+2,len-2); + subcc_process_data(buf+2,len-2); } if( len > 2 && buf[ 0 ] == 'T' && buf[ 1 ] == 'Y' ) { diff -r 7c5e2e22a37e -r 3ec5917cdae2 sub_cc.c --- a/sub_cc.c Sat Nov 25 20:53:43 2006 +0000 +++ b/sub_cc.c Sat Nov 25 22:06:00 2006 +0000 @@ -26,8 +26,6 @@ #include "libvo/sub.h" -#define CC_INPUTBUFFER_SIZE 256 - #define CC_MAX_LINE_LENGTH 64 static char chartbl[128]; @@ -38,8 +36,6 @@ static unsigned int cursor_pos=0; static int inited=0; -static unsigned char inputbuffer[CC_INPUTBUFFER_SIZE]; -static unsigned int inputlength; static void build_char_table(void) { @@ -186,7 +182,7 @@ lastcode=data; } -static void subcc_decode(void) +static void subcc_decode(unsigned char *inputbuffer, unsigned int inputlength) { /* The first number may denote a channel number. I don't have the * EIA-708 standard, so it is hard to say. @@ -284,13 +280,9 @@ void subcc_process_data(unsigned char *inputdata,unsigned int len) { - if (len > CC_INPUTBUFFER_SIZE) - return; if(!subcc_enabled) return; if(!inited) subcc_init(); - memcpy(inputbuffer,inputdata,len); - inputlength=len; - subcc_decode(); + subcc_decode(inputdata, len); }