# HG changeset patch # User Yoshiki Yazawa # Date 1252778233 -32400 # Node ID 080414aa8f21ca44a2324f8974067ee9cfbb7910 # Parent 41a5481db56f2d2db37606adaa16b6a00e1f122c updated to arib25 0.2.4 diff -r 41a5481db56f -r 080414aa8f21 arib25/Makefile --- a/arib25/Makefile Sun Sep 13 02:11:33 2009 +0900 +++ b/arib25/Makefile Sun Sep 13 02:57:13 2009 +0900 @@ -3,4 +3,4 @@ clean: cd src; make clean - + diff -r 41a5481db56f -r 080414aa8f21 arib25/readme.txt --- a/arib25/readme.txt Sun Sep 13 02:11:33 2009 +0900 +++ b/arib25/readme.txt Sun Sep 13 02:57:13 2009 +0900 @@ -191,6 +191,18 @@ 【更新履歴】 + ・2009, 4/19 - ver. 0.2.4 + +  終端パケットが野良パケット (PMT に記載されていない PID の +  パケット) だった場合に、ECM が 1 つだけでも復号が行われない +  バグを修正 + +  transport_error_indicator が立っている場合はパケット処理を +  行わず、そのまま素通しするように変更 + +  http://www.marumo.ne.jp/db2009_4.htm#19 又は +  http://www.marumo.ne.jp/junk/arib_std_b25-0.2.4.lzh +  ・2008, 12/30 - ver. 0.2.3   CA_descriptor の解釈を行う際に CA_system_id が B-CAS カード diff -r 41a5481db56f -r 080414aa8f21 arib25/src/Makefile --- a/arib25/src/Makefile Sun Sep 13 02:11:33 2009 +0900 +++ b/arib25/src/Makefile Sun Sep 13 02:57:13 2009 +0900 @@ -1,7 +1,7 @@ PREFIX = /usr/local MAJOR = 0 MINOR = 2 -REVISION = 3 +REVISION = 4 VER = $(MAJOR).$(MINOR).$(REVISION) DEST_HEADER = $(PREFIX)/include/arib25 diff -r 41a5481db56f -r 080414aa8f21 arib25/src/arib_std_b25.c --- a/arib25/src/arib_std_b25.c Sun Sep 13 02:11:33 2009 +0900 +++ b/arib25/src/arib_std_b25.c Sun Sep 13 02:57:13 2009 +0900 @@ -408,6 +408,8 @@ static uint8_t *resync(uint8_t *head, uint8_t *tail, int32_t unit); static uint8_t *resync_force(uint8_t *head, uint8_t *tail, int32_t unit); +static uint32_t crc32(uint8_t *head, uint8_t *tail); + /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ interface method implementation ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ @@ -568,6 +570,15 @@ extract_ts_header(&hdr, curr); crypt = hdr.transport_scrambling_control; pid = hdr.pid; + + if(hdr.transport_error_indicator != 0){ + /* bit error - append output buffer without parsing */ + if(!append_work_buffer(&(prv->dbuf), curr, 188)){ + r = ARIB_STD_B25_ERROR_NO_ENOUGH_MEMORY; + goto LAST; + } + goto NEXT; + } if( (pid == 0x1fff) && (prv->strip) ){ goto NEXT; @@ -589,6 +600,9 @@ if(prv->map[pid].type == PID_MAP_TYPE_OTHER){ dec = (DECRYPTOR_ELEM *)(prv->map[pid].target); + }else if( (prv->map[pid].type == 0) && + (prv->decrypt.count == 1) ){ + dec = prv->decrypt.head; }else{ dec = NULL; } @@ -996,7 +1010,7 @@ head = prv->sbuf.head; tail = prv->sbuf.tail; - + buf = head; memset(count, 0, sizeof(count)); @@ -1795,6 +1809,15 @@ crypt = hdr.transport_scrambling_control; pid = hdr.pid; + if(hdr.transport_error_indicator != 0){ + /* bit error - append output buffer without parsing */ + if(!append_work_buffer(&(prv->dbuf), curr, 188)){ + r = ARIB_STD_B25_ERROR_NO_ENOUGH_MEMORY; + goto LAST; + } + goto NEXT; + } + if( (pid == 0x1fff) && (prv->strip) ){ /* strip null(padding) stream */ goto NEXT; diff -r 41a5481db56f -r 080414aa8f21 arib25/src/td.c --- a/arib25/src/td.c Sun Sep 13 02:11:33 2009 +0900 +++ b/arib25/src/td.c Sun Sep 13 02:57:13 2009 +0900 @@ -64,7 +64,7 @@ static void show_usage() { - fprintf(stderr, "b25 - ARIB STD-B25 test program ver. 0.2.3 (2008, 12/30)\n"); + fprintf(stderr, "b25 - ARIB STD-B25 test program ver. 0.2.4 (2009, 4/18)\n"); fprintf(stderr, "usage: b25 [options] src.m2t dst.m2t\n"); fprintf(stderr, "options:\n"); fprintf(stderr, " -r round (integer, default=4)\n");