# HG changeset patch # User Yoshiki Yazawa # Date 1267181163 -32400 # Node ID 387d18563ef8039e742b81e50bbf9592b9e17a82 # Parent 6e661e828b435582e2cf417fe399e76c75b6313b temporary workaround: disable splitter if decoder is disabled. diff -r 6e661e828b43 -r 387d18563ef8 recpt1/recpt1.c --- a/recpt1/recpt1.c Wed Feb 24 22:44:06 2010 +0900 +++ b/recpt1/recpt1.c Fri Feb 26 19:46:03 2010 +0900 @@ -336,15 +336,16 @@ if(use_b25) { code = b25_decode(dec, &sbuf, &dbuf); if(code < 0) { - fprintf(stderr, "b25_decode failed. fall back to encrypted recording.\n"); - use_b25 = FALSE; /* local flag */ + fprintf(stderr, "b25_decode failed (code=%d). fall back to encrypted recording.\n", code); + use_b25 = FALSE; + use_splitter = FALSE; /* should not split when decode failed */ } else buf = dbuf; } - if(use_splitter) { + if(use_b25 && use_splitter) { splitbuf.size = 0; while(buf.size) { @@ -435,7 +436,7 @@ buf = dbuf; } - if(use_splitter) { + if(use_b25 && use_splitter) { /* 分離対象以外をふるい落とす */ code = split_ts(splitter, &buf, &splitbuf); if(code != TSS_SUCCESS) { @@ -1041,17 +1042,21 @@ if(!dec) { fprintf(stderr, "Cannot start b25 decoder\n"); fprintf(stderr, "Fall back to encrypted recording\n"); - use_b25 = 0; + use_b25 = FALSE; + use_splitter = FALSE; /* should not split when decode failed */ } } /* initialize splitter */ - if(use_splitter) - { - splitter = split_startup(sid_list); - if ( splitter->sid_list == NULL ) - { - fprintf(stderr, "Cannot start TS splitter\n"); - return 1; + if(use_splitter) { + if(!use_b25) { + fprintf(stderr, "TS splitter does not work without b25 decoder currently.\n"); + } + else { + splitter = split_startup(sid_list); + if(splitter->sid_list == NULL) { + fprintf(stderr, "Cannot start TS splitter\n"); + return 1; + } } }