From 9f919801465f49be6b2118f54bd54df846e2f865 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 13 Apr 2003 18:00:00 +0200 Subject: =?UTF-8?q?Version=201.1.27=20-=20The=20CAM=20is=20now=20accessed?= =?UTF-8?q?=20only=20if=20the=20current=20channel=20actually=20has=20a=20n?= =?UTF-8?q?on-zero=20Ca=20=20=20value,=20and=20CAM=20access=20is=20complet?= =?UTF-8?q?ely=20suppressed=20during=20replay,=20which=20avoids=20=20=20pr?= =?UTF-8?q?oblems=20in=20case=20the=20CAM=20is=20attached=20to=20the=20pri?= =?UTF-8?q?mary=20DVB=20device.=20-=20The=20"Left"=20and=20"Right"=20butto?= =?UTF-8?q?ns=20now=20set=20the=20cursor=20to=20the=20first=20or=20last=20?= =?UTF-8?q?list=20item=20=20=20even=20if=20the=20list=20consist=20only=20o?= =?UTF-8?q?f=20a=20single=20page,=20like,=20for=20instance,=20the=20Main?= =?UTF-8?q?=20menu=20=20=20(thanks=20to=20Oliver=20Endriss).=20-=20Made=20?= =?UTF-8?q?the=20log=20message=20"OSD=20window=20width=20must=20be=20a=20m?= =?UTF-8?q?ultiple=20of=204..."=20a=20debug=20message=20=20=20instead=20of?= =?UTF-8?q?=20an=20error=20message,=20so=20it=20can=20be=20avoided=20by=20?= =?UTF-8?q?using=20a=20log=20level=20less=20than=203.=20-=20Updated=20Gree?= =?UTF-8?q?k=20language=20texts=20(thanks=20to=20Dimitrios=20Dimitrakos).?= =?UTF-8?q?=20-=20Fixed=20faulty=20behaviour=20of=20the=20"Mute"=20key=20i?= =?UTF-8?q?n=20case=20the=20channel=20display=20is=20visible=20=20=20(than?= =?UTF-8?q?ks=20to=20Florian=20Bartels=20for=20reporting=20this=20one=20an?= =?UTF-8?q?d=20Sascha=20Volkenandt=20for=20=20=20helping=20to=20fix=20it).?= =?UTF-8?q?=20-=20Modified=20LOF=20handling=20to=20allow=20for=20C-band=20?= =?UTF-8?q?reception=20(thanks=20to=20Malcolm=20Caldwell).=20-=20Added=20s?= =?UTF-8?q?ome=20missing=20cAudio=20handling=20calls=20(thanks=20to=20Wern?= =?UTF-8?q?er=20Fink).=20-=20Replaced=20the=20'for'=20loops=20in=20StripAu?= =?UTF-8?q?dioPackets()=20with=20memset()=20calls=20(thanks=20to=20=20=20W?= =?UTF-8?q?erner=20Fink).=20-=20Further=20increased=20the=20timeout=20unti?= =?UTF-8?q?l=20an=20index=20file=20is=20considerd=20no=20longer=20to=20be?= =?UTF-8?q?=20=20=20written.=20-=20Fixed=20a=20crash=20in=20case=20the=20i?= =?UTF-8?q?ndex=20file=20can't=20be=20accessed=20any=20more=20during=20rep?= =?UTF-8?q?lay=20=20=20(thanks=20to=20Stefan=20Huelswitt=20for=20reporting?= =?UTF-8?q?=20this=20one).=20-=20Fixed=20displaying=20messages=20in=20the?= =?UTF-8?q?=20status=20line=20in=20case=20they=20exceed=20the=20OSD=20widt?= =?UTF-8?q?h=20=20=20(thanks=20to=20Gerhard=20Steiner=20for=20reporting=20?= =?UTF-8?q?this=20one).=20-=20Avoiding=20high=20CPU=20load=20in=20case=20t?= =?UTF-8?q?he=20connection=20to=20LIRC=20gets=20lost=20(thanks=20to=20=20?= =?UTF-8?q?=20Ludwig=20Nussel).=20-=20Fixed=20handling=20repeat=20function?= =?UTF-8?q?=20with=20LIRC=20(thanks=20to=20Ludwig=20Nussel).=20-=20Fixed?= =?UTF-8?q?=20handling=20min/max=20borders=20when=20entering=20integer=20v?= =?UTF-8?q?alues=20(thanks=20to=20Andy=20=20=20Grobb=20for=20reporting=20t?= =?UTF-8?q?his=20one).=20-=20Implemented=20a=20"resume=20ID"=20which=20all?= =?UTF-8?q?ows=20several=20users=20to=20each=20have=20their=20own=20=20=20?= =?UTF-8?q?resume.vdr=20files=20(thanks=20to=20Martin=20Hammerschmid).=20T?= =?UTF-8?q?his=20parameter=20can=20be=20set=20in=20=20=20the=20"Setup/Repl?= =?UTF-8?q?ay"=20menu=20(see=20MANUAL=20for=20details).=20-=20Now=20using?= =?UTF-8?q?=20'libdtv'=20version=200.0.5=20(thanks=20to=20Rolf=20Hakenes?= =?UTF-8?q?=20for=20the=20new=20version=20=20=20and=20Stefan=20Huelswitt?= =?UTF-8?q?=20for=20adapting=20VDR=20to=20it).=20-=20If=20no=20device=20wi?= =?UTF-8?q?th=20an=20MPEG=20decoder=20can=20be=20found=20at=20startup,=20t?= =?UTF-8?q?he=20first=20device=20=20=20is=20now=20used=20as=20primary=20de?= =?UTF-8?q?vice=20(just=20to=20have=20some=20device).=20-=20Adjusted=20som?= =?UTF-8?q?e=20Premiere=20channels=20in=20'channels.conf'=20(thanks=20to?= =?UTF-8?q?=20Thomas=20Koch).=20-=20Updated=20'channels.conf.cable'=20(tha?= =?UTF-8?q?nks=20to=20Stefan=20Hu=C3=9Ffeldt).=20-=20The=20'epg.data'=20fi?= =?UTF-8?q?le=20is=20now=20read=20after=20all=20plugins=20have=20been=20st?= =?UTF-8?q?arted=20(thanks=20=20=20to=20Sascha=20Volkenandt).=20-=20The=20?= =?UTF-8?q?LIRC=20remote=20control=20no=20longer=20tries=20to=20learn=20ke?= =?UTF-8?q?ys=20if=20it=20can't=20connect=20to=20=20=20the=20LIRC=20daemon?= =?UTF-8?q?=20(thanks=20to=20Ludwig=20Nussel=20for=20reporting=20this=20on?= =?UTF-8?q?e).=20The=20same=20=20=20applies=20to=20the=20RCU=20remote=20co?= =?UTF-8?q?ntrol=20in=20case=20of=20errors=20during=20startup.=20-=20Fixed?= =?UTF-8?q?=20handling=20of=20Ca=20parameters=20with=20values=20<=3D=20MAX?= =?UTF-8?q?DEVICES,=20which=20don't=20indicate=20=20=20an=20actual=20encry?= =?UTF-8?q?pted=20channel=20(thanks=20to=20Stefan=20Huelswitt=20for=20repo?= =?UTF-8?q?rting=20this=20one).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libdtv/libsi/si_debug_services.c | 130 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 122 insertions(+), 8 deletions(-) (limited to 'libdtv/libsi/si_debug_services.c') diff --git a/libdtv/libsi/si_debug_services.c b/libdtv/libsi/si_debug_services.c index ae2a92a..ac8de34 100644 --- a/libdtv/libsi/si_debug_services.c +++ b/libdtv/libsi/si_debug_services.c @@ -4,11 +4,13 @@ /// /// ////////////////////////////////////////////////////////////// -// $Revision: 1.4 $ -// $Date: 2001/10/07 10:24:46 $ +// $Revision: 1.5 $ +// $Date: 2003/02/04 18:45:35 $ // $Author: hakenes $ // -// (C) 2001 Rolf Hakenes , under the GNU GPL. +// (C) 2001-03 Rolf Hakenes , under the +// GNU GPL with contribution of Oleg Assovski, +// www.satmania.com // // libsi is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -26,11 +28,13 @@ // Boston, MA 02111-1307, USA. #include +#include #include #include #include "../liblx/liblx.h" #include "libsi.h" +#include "si_tables.h" #include "si_debug_services.h" @@ -208,6 +212,8 @@ void siDebugPids (char *Prepend, struct LIST *PidList) printf ("%s ProgramID: %d\n", Prepend, Pid->ProgramID); printf ("%s PcrPid: %d\n", Prepend, Pid->PcrPID); printf ("%s PmtVersion: %d\n", Prepend, Pid->PmtVersion); + sprintf (NewPrepend, "%s ", Prepend); + siDebugDescriptors (NewPrepend, Pid->Descriptors); xForeach (Pid->InfoList, PidInfo) { @@ -256,6 +262,11 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors) printf ("\n"); break; + case DESCR_NW_NAME: + printf ("%sDescriptor: Network Name\n", Prepend); + printf ("%s Name: %s\n", Prepend, xName (Descriptor)); + break; + case DESCR_BOUQUET_NAME: printf ("%sDescriptor: Bouquet Name\n", Prepend); printf ("%s Name: %s\n", Prepend, xName (Descriptor)); @@ -336,12 +347,38 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors) case DESCR_CA_IDENT: printf ("%sDescriptor: Conditional Access Identity\n", Prepend); { - int j; + int j,k; for (j = 0; j < ((struct CaIdentifierDescriptor *)Descriptor)->Amount; j++) - printf ("%s SystemID: 0x%04x\n", Prepend, GetCaIdentifierID (Descriptor, j)); + { + printf ("%s SystemID: 0x%04x", Prepend, GetCaIdentifierID (Descriptor, j)); + k = GetCaIdentifierID (Descriptor, j) >> 8; + if (k < 0 || k > MAX_CA_IDENT) printf (" (unknown)\n"); + else printf (" (%s)\n", CaIdents[k]); + } } break; + case DESCR_CA: + { + int j,k; + + printf ("%sDescriptor: Conditional Access\n", Prepend); + printf ("%s CA type: 0x%04x", Prepend, (((struct CaDescriptor *)Descriptor)->CA_type)); + k = (((struct CaDescriptor *)Descriptor)->CA_type) >> 8; + if (k < 0 || k > MAX_CA_IDENT) printf (" (unknown)\n"); + else printf (" (%s)\n", CaIdents[k]); + printf ("%s CA PID: %d\n", Prepend, (((struct CaDescriptor *)Descriptor)->CA_PID)); + printf ("%s ProviderID: 0x%04X\n", Prepend, (((struct CaDescriptor *)Descriptor)->ProviderID)); + if (((struct CaDescriptor *)Descriptor)->DataLength > 0) + { + printf ("%s CA data:", Prepend); + for (j = 0; j < ((struct CaDescriptor *)Descriptor)->DataLength; j++) + printf (" 0x%02x", GetCaData (Descriptor, j)); + printf ("\n"); + } + } + break; + case DESCR_CONTENT: printf ("%sDescriptor: Content\n", Prepend); { @@ -489,16 +526,57 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors) } break; - case DESCR_NW_NAME: + case DESCR_SAT_DEL_SYS: + { + struct SatelliteDeliverySystemDescriptor *sds = + (struct SatelliteDeliverySystemDescriptor *)Descriptor; + + printf ("%sDescriptor: Satellite Delivery System\n", Prepend); + printf ("%s Frequency: %ld\n", Prepend, sds->Frequency); + printf ("%s OrbitalPosition: %d\n", Prepend, sds->OrbitalPosition); + printf ("%s Polarization: %c\n", Prepend, sds->Polarization); + printf ("%s SymbolRate: %ld\n", Prepend, sds->SymbolRate); + printf ("%s FEC: %c\n", Prepend, sds->FEC); + } + break; + case DESCR_SERVICE_LIST: + { + struct ServiceListEntry *Entry; + + printf ("%sDescriptor: Service List\n", Prepend); + xForeach (((struct ServiceListDescriptor *)Descriptor)->ServiceList, Entry) + { + printf ("%s Entry:\n"); + printf ("%s ServiceID: %d\n", Prepend, Entry->ServiceID); + printf ("%s ServiceType: %04x\n", Prepend, Entry->ServiceType); + } + } + break; + + case DESCR_LOCAL_TIME_OFF: + { + struct LocalTimeOffsetEntry *Offset; + + printf ("%sDescriptor: Local Time Offset\n", Prepend); + xForeach (((struct LocalTimeOffsetDescriptor *)Descriptor)->LocalTimeOffsets, Offset) + { + printf ("%s Offset:\n"); + printf ("%s CountryCode: %s\n", Offset->CountryCode); + printf ("%s RegionID: %c\n", Offset->RegionID); + printf ("%s CurrentOffset: %ld\n", Offset->CurrentOffset); + printf ("%s ChangeTime: %ld\n", Offset->ChangeTime); + printf ("%s NextOffset: %ld\n", Offset->NextOffset); + } + } + break; + case DESCR_STUFFING: - case DESCR_SAT_DEL_SYS: case DESCR_CABLE_DEL_SYS: case DESCR_VBI_DATA: case DESCR_VBI_TELETEXT: case DESCR_MOSAIC: case DESCR_TELEPHONE: - case DESCR_LOCAL_TIME_OFF: case DESCR_TERR_DEL_SYS: case DESCR_ML_NW_NAME: case DESCR_ML_BQ_NAME: @@ -527,3 +605,39 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors) return; } +void siDumpDescriptor (void * Descriptor) +{ + int Length, i; + unsigned char *ptr; + + Length = GetDescriptorLength (Descriptor); + for (i = 0, ptr = (char*) Descriptor; i < Length; i++) { + if ((i % 8) == 0) + printf ("\n"); + printf ("0x%02X ", (unsigned int) ptr[i]); + } + printf ( "\n"); +} + +void siDumpSection (void *Section) +{ + int Length, i; + unsigned char *ptr; + char str[9]; + + Length = GetSectionLength (Section) + 3; + for (i = 0, ptr = (unsigned char*) Section, memset (str, 0, 9); i < Length; i++) { + if ((i % 8) == 0) + { + printf (" %s\n", str); + memset (str, 0, 8); + } + printf ("0x%02X ", (unsigned int) ptr[i]); + if (ptr[i] < 0x20 || (ptr[i] > 'z' && ptr[i] < ((unsigned char )'À')) ) + str[i % 8] = '.'; + else + str[i % 8] = ptr[i]; + } + printf (" %*s\n", (8 - ((abs(i - 1) % 8) ? (abs(i - 1) % 8) : 8)) * 5, str); +} + -- cgit v1.2.3