Mercurial > pt1
changeset 54:080414aa8f21
updated to arib25 0.2.4
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Sun, 13 Sep 2009 02:57:13 +0900 |
parents | 41a5481db56f |
children | 3a0c1a24c03b |
files | arib25/Makefile arib25/readme.txt arib25/src/Makefile arib25/src/arib_std_b25.c arib25/src/td.c |
diffstat | 5 files changed, 39 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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 - +
--- 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 カード
--- 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
--- 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;
--- 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");