From 8465398c6d2a57bc30a07fb61353a7c8ba6db574 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 21 Oct 2001 18:00:00 +0200 Subject: =?UTF-8?q?Version=200.97=20-=20Implemented=20a=20lock=20file=20to?= =?UTF-8?q?=20prevent=20more=20than=20one=20instance=20of=20VDR=20from=20r?= =?UTF-8?q?emoving=20=20=20files=20from=20the=20video=20directory=20at=20t?= =?UTF-8?q?he=20same=20time.=20-=20The=20new=20setup=20parameter=20SplitEd?= =?UTF-8?q?itedFiles=20can=20be=20used=20to=20control=20whether=20or=20=20?= =?UTF-8?q?=20not=20the=20result=20of=20an=20editing=20process=20shall=20b?= =?UTF-8?q?e=20written=20into=20separate=20files.=20-=20Fixed=20handling?= =?UTF-8?q?=20repeat=20function=20when=20using=20LIRC=20(thanks=20to=20Mat?= =?UTF-8?q?thias=20Weingart).=20-=20The=20shutdown=20program=20(defined=20?= =?UTF-8?q?with=20the=20'-s'=20option)=20now=20also=20gets=20the=20channel?= =?UTF-8?q?=20=20=20number=20and=20recording=20title=20of=20the=20timer=20?= =?UTF-8?q?(see=20INSTALL).=20-=20New=20channel=20data=20for=20'Premiere?= =?UTF-8?q?=20One',=20'Premiere=20X-Action',=20'Fox=20Kids=20T=FCrkce'=20?= =?UTF-8?q?=20=20and=20'N24'=20(thanks=20to=20Andreas=20Share,=20Ulrich=20?= =?UTF-8?q?R=F6der,=20Uwe=20Scheffler=20and=20Simon=20=20=20Bauschulte).?= =?UTF-8?q?=20Note=20that=20if=20you=20are=20using=20the=20default=20'chan?= =?UTF-8?q?nels.conf'=20or=20=20=20'channels.conf.cable'=20files=20you=20m?= =?UTF-8?q?ay=20need=20to=20check=20any=20exiting=20timers=20to=20see=20?= =?UTF-8?q?=20=20whether=20they=20still=20use=20the=20correct=20channel=20?= =?UTF-8?q?number.=20-=20Fixed=20the=20"EPG=20bugfix"=20(sometimes=20had?= =?UTF-8?q?=20duplicate=20information=20in=20Subtitle=20and=20=20=20Extend?= =?UTF-8?q?ed=20Description).=20-=20Fixed=20checking=20for=20valid=20video?= =?UTF-8?q?=20device=20when=20setting=20the=20video=20mode.=20-=20The=20ex?= =?UTF-8?q?ternal=20command=20'sort'=20is=20no=20longer=20required.=20VDR?= =?UTF-8?q?=20now=20sorts=20the=20list=20of=20=20=20recordings=20itself,?= =?UTF-8?q?=20making=20sure=20that=20recordings=20that=20stem=20from=20rep?= =?UTF-8?q?eating=20timers=20=20=20are=20sorted=20chronologically.=20Sorti?= =?UTF-8?q?ng=20is=20done=20according=20to=20the=20setting=20of=20the=20?= =?UTF-8?q?=20=20current=20locale,=20so=20you=20may=20want=20to=20make=20s?= =?UTF-8?q?ure=20LC=5FCOLLATE=20is=20set=20to=20the=20desired=20=20=20valu?= =?UTF-8?q?e=20(see=20INSTALL).=20-=20Fixed=20handling=20'newline'=20chara?= =?UTF-8?q?cters=20in=20EPG=20texts=20(thanks=20to=20Rolf=20Hakenes=20for?= =?UTF-8?q?=20=20=20an=20improved=20version=20of=20his=20'libdtv').=20=20?= =?UTF-8?q?=20Newline=20characters=20are=20always=20mapped=20to=20a=20sing?= =?UTF-8?q?le=20"blank"=20in=20VDR,=20because=20they=20=20=20would=20other?= =?UTF-8?q?wise=20disturb=20the=20Title=20and=20Subtitle=20layout=20in=20t?= =?UTF-8?q?he=20channel=20display=20=20=20(where=20these=20are=20assumed?= =?UTF-8?q?=20to=20be=20single=20line=20texts)=20and=20would=20have=20to?= =?UTF-8?q?=20be=20=20=20specially=20handled=20in=20the=20'epg.data'=20fil?= =?UTF-8?q?e=20and=20the=20LSTE=20command=20in=20SVDRP.=20-=20Mapping=20`?= =?UTF-8?q?=20("backtick")=20characters=20in=20EPG=20texts=20to=20'=20(sin?= =?UTF-8?q?gle=20quote).=20-=20Fixed=20timers=20starting=20and=20ending=20?= =?UTF-8?q?at=20unexpected=20times.=20'localtime()'=20was=20not=20=20=20th?= =?UTF-8?q?read=20safe,=20now=20using=20localtime=5Fr().=20-=20Removed=20t?= =?UTF-8?q?he=20"system=20time=20seen..."=20message.=20-=20Fixed=20a=20bug?= =?UTF-8?q?=20in=20the=20replay=20mode=20display=20when=20pressing=20the?= =?UTF-8?q?=20Green=20or=20Yellow=20=20=20button=20while=20in=20trick=20mo?= =?UTF-8?q?de=20(thanks=20to=20Stefan=20Huelswitt)=20-=20Closing=20all=20o?= =?UTF-8?q?pen=20file=20descriptors=20when=20calling=20external=20programs?= =?UTF-8?q?.=20-=20The=20menu=20timeout=20now=20also=20works=20when=20pres?= =?UTF-8?q?sing=20the=20"Back"=20button=20during=20replay=20=20=20to=20ent?= =?UTF-8?q?er=20the=20"Recordings"=20menu.=20-=20Updated=20'channels.conf'?= =?UTF-8?q?=20for=20the=20"Bundesliga"=20channels=20of=20Premiere=20World?= =?UTF-8?q?=20=20=20(thanks=20to=20Helmut=20Sch=E4chner).=20-=20Fixed=20re?= =?UTF-8?q?ading=20timers.conf=20and=20channels.conf=20that=20contain=20bl?= =?UTF-8?q?anks=20after=20numeric=20=20=20values.=20-=20Fixed=20handling?= =?UTF-8?q?=20trick=20modes=20near=20the=20beginning=20and=20end=20of=20a?= =?UTF-8?q?=20recording.=20-=20Pressing=20the=20"Back"=20button=20while=20?= =?UTF-8?q?replaying=20a=20DVD=20now=20leads=20to=20the=20DVD=20menu.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libdtv/libsi/si_parser.c | 72 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 64 insertions(+), 8 deletions(-) (limited to 'libdtv/libsi/si_parser.c') diff --git a/libdtv/libsi/si_parser.c b/libdtv/libsi/si_parser.c index acafa7b..76d72c8 100644 --- a/libdtv/libsi/si_parser.c +++ b/libdtv/libsi/si_parser.c @@ -4,9 +4,9 @@ /// /// ////////////////////////////////////////////////////////////// -// $Revision: 1.1 $ -// $Date: 2001/08/15 14:41:45 $ -// $Author: kls $ +// $Revision: 1.4 $ +// $Date: 2001/10/07 10:24:46 $ +// $Author: hakenes $ // // (C) 2001 Rolf Hakenes , under the GNU GPL. // @@ -725,6 +725,62 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer) Ptr + DESCR_LINKAGE_LEN); break; + case DESCR_TELETEXT: + CreateTeletextDescriptor (Descriptor); + Length = GetDescriptorLength (Buffer) - DESCR_TELETEXT_LEN; + Ptr += DESCR_TELETEXT_LEN; + while (Length > 0) + { + AddTeletextItem (Descriptor, + CastTeletextItem(Ptr)->type, + CastTeletextItem(Ptr)->magazine_number, + CastTeletextItem(Ptr)->page_number, + CastTeletextItem(Ptr)->lang_code1, + CastTeletextItem(Ptr)->lang_code2, + CastTeletextItem(Ptr)->lang_code3); + Length -= ITEM_TELETEXT_LEN; + Ptr += ITEM_TELETEXT_LEN; + } + break; + + case DESCR_AC3: + CreateAc3Descriptor (Descriptor); + Length = GetDescriptorLength (Buffer); + if (CastAc3Descriptor(Buffer)->ac3_type_flag) + { Length -= 1; Ptr += 1; AddAc3FlagAndValue (Descriptor, + AC3_TYPE_FLAG, CastAc3Descriptor(Buffer)->ac3_type); } + if (CastAc3Descriptor(Buffer)->bsid_flag) + { Length -= 1; Ptr += 1; AddAc3FlagAndValue (Descriptor, + BS_ID_FLAG, CastAc3Descriptor(Buffer)->bsid); } + if (CastAc3Descriptor(Buffer)->mainid_flag) + { Length -= 1; Ptr += 1; AddAc3FlagAndValue (Descriptor, + MAIN_ID_FLAG, CastAc3Descriptor(Buffer)->mainid); } + if (CastAc3Descriptor(Buffer)->asvc_flag) + { Length -= 1; Ptr += 1; AddAc3FlagAndValue (Descriptor, + ASVC_FLAG, CastAc3Descriptor(Buffer)->asvc); } + Length -= DESCR_AC3_LEN; + Ptr += DESCR_AC3_LEN; + if (Length) AddAc3AdditionalData (Descriptor, Ptr, Length); + break; + + case DESCR_SUBTITLING: + CreateSubtitlingDescriptor (Descriptor); + Length = GetDescriptorLength (Buffer) - DESCR_SUBTITLING_LEN; + Ptr += DESCR_SUBTITLING_LEN; + while (Length > 0) + { + AddSubtitlingItem (Descriptor, + CastSubtitlingItem(Ptr)->subtitling_type, + HILO (CastSubtitlingItem(Ptr)->composition_page_id), + HILO (CastSubtitlingItem(Ptr)->ancillary_page_id), + CastSubtitlingItem(Ptr)->lang_code1, + CastSubtitlingItem(Ptr)->lang_code2, + CastSubtitlingItem(Ptr)->lang_code3); + Length -= ITEM_SUBTITLING_LEN; + Ptr += ITEM_SUBTITLING_LEN; + } + break; + case DESCR_VIDEO_STREAM: case DESCR_AUDIO_STREAM: case DESCR_HIERARCHY: @@ -748,10 +804,8 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer) case DESCR_VBI_DATA: case DESCR_VBI_TELETEXT: case DESCR_MOSAIC: - case DESCR_TELETEXT: case DESCR_TELEPHONE: case DESCR_LOCAL_TIME_OFF: - case DESCR_SUBTITLING: case DESCR_TERR_DEL_SYS: case DESCR_ML_NW_NAME: case DESCR_ML_BQ_NAME: @@ -768,7 +822,6 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer) case DESCR_TRANSPORT_STREAM: case DESCR_DSNG: case DESCR_PDC: - case DESCR_AC3: case DESCR_CELL_LIST: case DESCR_CELL_FREQ_LINK: case DESCR_ANNOUNCEMENT_SUPPORT: @@ -799,8 +852,11 @@ char *siGetDescriptorText (u_char *Buffer, u_int Length) if (*Buffer == 0) break; if ((*Buffer >= ' ' && *Buffer <= '~') || - (*Buffer >= 0xa0 && *Buffer <= 0xff)) *tmp++ = *Buffer++; - else Buffer++; + (*Buffer == '\n') || + (*Buffer >= 0xa0 && *Buffer <= 0xff)) *tmp++ = *Buffer; + if (*Buffer == 0x8A) *tmp++ = '\n'; + if (*Buffer == 0x86 || *Buffer == 0x87) *tmp++ = ' '; + Buffer++; } *tmp = '\0'; } -- cgit v1.2.3