From c2966475942fcb9d4b8d41dbf026ff57630a1ad6 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Tue, 6 Jan 2009 20:31:53 +0100 Subject: =?UTF-8?q?Version=201.7.3=20-=20Updated=20the=20Russian=20OSD=20t?= =?UTF-8?q?exts=20(thanks=20to=20Oleg=20Roitburd).=20-=20Fixed=20handling?= =?UTF-8?q?=20the=20'pointer=20field'=20in=20generating=20and=20parsing=20?= =?UTF-8?q?PAT/PMT=20(thanks=20to=20=20=20Frank=20Schmirler).=20-=20Fixed?= =?UTF-8?q?=20handling=20modulation=20types=20for=20DVB-S=20transponders?= =?UTF-8?q?=20when=20processing=20the=20NIT.=20-=20Changed=20cDvbDevice::G?= =?UTF-8?q?rabImage()=20to=20use=20V4L2=20(thanks=20to=20Marco=20Schl=FC?= =?UTF-8?q?=DFler).=20-=20Added=20a=20poll=20to=20cDvbDevice::PlayVideo()?= =?UTF-8?q?=20and=20cDvbDevice::PlayAudio()=20to=20avoid=20=20=20excessive?= =?UTF-8?q?=20CPU=20load=20(this=20is=20just=20a=20makeshift=20solution=20?= =?UTF-8?q?until=20the=20FF=20DVB=20cards=20=20=20can=20play=20TS=20direct?= =?UTF-8?q?ly).=20-=20The=20recording=20format=20is=20now=20Transport=20St?= =?UTF-8?q?ream.=20Existing=20recordings=20in=20PES=20format=20=20=20can?= =?UTF-8?q?=20still=20be=20replayed=20and=20edited,=20but=20new=20recordin?= =?UTF-8?q?gs=20are=20done=20in=20TS.=20=20=20All=20code=20for=20recording?= =?UTF-8?q?=20in=20PES=20has=20been=20removed.=20=20=20The=20following=20c?= =?UTF-8?q?hanges=20were=20made=20to=20switch=20to=20TS=20recording=20form?= =?UTF-8?q?at:=20=20=20+=20The=20index=20file=20format=20has=20been=20chan?= =?UTF-8?q?ged=20to=20support=20file=20sizes=20of=20up=20to=201TB=20=20=20?= =?UTF-8?q?=20=20(previously=202GB),=20and=20up=20to=2065535=20separate=20?= =?UTF-8?q?files=20per=20recording=20(previously=20=20=20=20=20255).=20=20?= =?UTF-8?q?=20+=20The=20recording=20file=20names=20are=20now=20of=20the=20?= =?UTF-8?q?form=2000001.ts=20(previously=20001.vdr).=20=20=20+=20The=20fra?= =?UTF-8?q?me=20rate=20is=20now=20detected=20by=20looking=20at=20two=20sub?= =?UTF-8?q?sequent=20PTS=20values.=20=20=20=20=20The=20"frame=20duration"?= =?UTF-8?q?=20(in=20multiples=20of=201/90000)=20is=20stored=20in=20the=20i?= =?UTF-8?q?nfo.vdr=20=20=20=20=20file=20using=20the=20new=20tag=20F=20(tha?= =?UTF-8?q?nks=20to=20Artur=20Skawina=20for=20helping=20to=20get=20the=20?= =?UTF-8?q?=20=20=20=20IndexToHMSF()=20calculation=20right).=20=20=20+=20S?= =?UTF-8?q?everal=20functions=20now=20have=20an=20additional=20parameter?= =?UTF-8?q?=20FramesPerSecond.=20=20=20+=20Several=20functions=20now=20hav?= =?UTF-8?q?e=20an=20additional=20parameter=20IsPesRecording.=20=20=20+=20T?= =?UTF-8?q?he=20functionality=20of=20cFileWriter=20was=20moved=20into=20cR?= =?UTF-8?q?ecorder,=20and=20cRemux=20is=20=20=20=20=20now=20obsolete.=20Th?= =?UTF-8?q?is=20also=20avoids=20one=20level=20of=20data=20copying=20while?= =?UTF-8?q?=20recording.=20=20=20+=20cRemux,=20cRingBufferLinearPes,=20cTS?= =?UTF-8?q?2PES=20and=20all=20c*Repacker=20classes=20have=20been=20=20=20?= =?UTF-8?q?=20=20removed.=20=20=20+=20A=20PAT/PMT=20is=20inserted=20before?= =?UTF-8?q?=20every=20independent=20frame,=20so=20that=20no=20extra=20=20?= =?UTF-8?q?=20=20=20measures=20need=20to=20be=20taken=20when=20editing=20a?= =?UTF-8?q?=20recording.=20=20=20+=20The=20directory=20name=20for=20a=20re?= =?UTF-8?q?cording=20has=20been=20changed=20from=20=20=20=20=20YYYY-MM-DD-?= =?UTF-8?q?hh[.:]mm.pr.lt.rec=20(pr=3Dpriority,=20lt=3Dlifetime)=20to=20?= =?UTF-8?q?=20=20=20=20YYYY-MM-DD-hh.mm.ch-ri.rec=20(ch=3Dchannel,=20ri=3D?= =?UTF-8?q?resumeId).=20=20=20=20=20Priority=20and=20Lifetime=20are=20now?= =?UTF-8?q?=20stored=20in=20the=20info.vdr=20file=20with=20the=20new=20=20?= =?UTF-8?q?=20=20=20tags=20P=20and=20L=20(if=20no=20such=20file=20exists,?= =?UTF-8?q?=20the=20maximum=20values=20are=20assumed=20by=20=20=20=20=20de?= =?UTF-8?q?fault,=20which=20avoids=20inadvertently=20deleting=20a=20record?= =?UTF-8?q?ing=20if=20disk=20space=20=20=20=20=20is=20low).=20No=20longer?= =?UTF-8?q?=20storing=20Priority=20and=20Lifetime=20in=20the=20directory?= =?UTF-8?q?=20name=20=20=20=20=20avoids=20starting=20a=20new=20recording?= =?UTF-8?q?=20if=20one=20of=20these=20is=20changed=20in=20the=20timer=20?= =?UTF-8?q?=20=20=20=20and=20the=20recording=20is=20re-started=20for=20som?= =?UTF-8?q?e=20reason.=20=20=20=20=20Instead=20of=20Priority=20and=20Lifet?= =?UTF-8?q?ime,=20the=20directory=20name=20now=20contains=20the=20=20=20?= =?UTF-8?q?=20=20channel=20number=20from=20which=20the=20recording=20was?= =?UTF-8?q?=20made,=20and=20the=20"resume=20id"=20of=20=20=20=20=20this=20?= =?UTF-8?q?instance=20of=20VDR.=20This=20avoids=20problems=20if=20several?= =?UTF-8?q?=20VDR=20instances=20record=20=20=20=20=20the=20same=20show=20o?= =?UTF-8?q?n=20different=20channels,=20or=20even=20on=20the=20same=20chann?= =?UTF-8?q?el.=20=20=20=20=20The=20'-'=20between=20channel=20number=20and?= =?UTF-8?q?=20resumeId=20prevents=20older=20versions=20of=20=20=20=20=20VD?= =?UTF-8?q?R=20from=20"seeing"=20these=20recordings,=20which=20makes=20sur?= =?UTF-8?q?e=20they=20won't=20even=20try=20=20=20=20=20to=20replay=20them,?= =?UTF-8?q?=20or=20remove=20them=20in=20case=20the=20disk=20runs=20full.?= =?UTF-8?q?=20=20=20+=20The=20semantics=20of=20PlayTs*()=20have=20been=20c?= =?UTF-8?q?hanged.=20These=20functions=20are=20now=20=20=20=20=20required?= =?UTF-8?q?=20to=20return=20the=20given=20Length=20(which=20is=20TS=5FSIZE?= =?UTF-8?q?)=20if=20they=20have=20=20=20=20=20processed=20the=20TS=20packe?= =?UTF-8?q?t.=20=20=20+=20The=20files=20"index",=20"info",=20"marks"=20and?= =?UTF-8?q?=20"resume"=20within=20a=20TS=20recording=20=20=20=20=20directo?= =?UTF-8?q?ry=20are=20now=20created=20without=20the=20".vdr"=20extension.?= =?UTF-8?q?=20=20=20+=20The=20"resume"=20file=20is=20no=20longer=20a=20bin?= =?UTF-8?q?ary=20file,=20but=20contains=20tagged=20lines=20=20=20=20=20to?= =?UTF-8?q?=20be=20able=20to=20store=20additional=20information,=20like=20?= =?UTF-8?q?the=20selected=20audio=20or=20=20=20=20=20subtitle=20track.=20?= =?UTF-8?q?=20=20+=20cDevice::StillPicture()=20will=20now=20be=20called=20?= =?UTF-8?q?with=20either=20TS=20or=20PES=20data.=20=20=20+=20cDvbPlayer::G?= =?UTF-8?q?oto()=20no=20longer=20appends=20a=20"sequence=20end=20code"=20t?= =?UTF-8?q?o=20the=20data.=20=20=20=20=20If=20the=20output=20device=20need?= =?UTF-8?q?s=20this,=20it=20has=20to=20take=20care=20of=20it=20by=20itself?= =?UTF-8?q?.=20-=20Fixed=20cPatPmtParser::ParsePmt()=20to=20reset=20vpid?= =?UTF-8?q?=20and=20vtype=20when=20switching=20from=20=20=20a=20video=20to?= =?UTF-8?q?=20an=20audio=20channel=20(thanks=20to=20Reinhard=20Nissl).=20-?= =?UTF-8?q?=20cDvbDevice=20now=20uses=20the=20FE=5FCAN=5F2G=5FMODULATION?= =?UTF-8?q?=20flag=20to=20determine=20whether=20a=20device=20=20=20can=20h?= =?UTF-8?q?andle=20DVB-S2.=20The=20#define=20is=20still=20there=20to=20all?= =?UTF-8?q?ow=20people=20with=20older=20drivers=20=20=20who=20don't=20need?= =?UTF-8?q?=20DVB-S2=20to=20use=20this=20version=20without=20pathcing.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HISTORY | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) (limited to 'HISTORY') diff --git a/HISTORY b/HISTORY index 239e00b..68bdc33 100644 --- a/HISTORY +++ b/HISTORY @@ -5848,3 +5848,66 @@ Video Disk Recorder Revision History For good replay in Transfer Mode on full featured DVB cards you may want to apply the patch from ftp://ftp.cadsoft.de/vdr/Developer/av7110_v4ldvb_api5_audiobuf_test_1.diff to the driver (thanks to Oliver Endriss). + +2009-01-06: Version 1.7.3 + +- Updated the Russian OSD texts (thanks to Oleg Roitburd). +- Fixed handling the 'pointer field' in generating and parsing PAT/PMT (thanks to + Frank Schmirler). +- Fixed handling modulation types for DVB-S transponders when processing the NIT. +- Changed cDvbDevice::GrabImage() to use V4L2 (thanks to Marco Schlüßler). +- Added a poll to cDvbDevice::PlayVideo() and cDvbDevice::PlayAudio() to avoid + excessive CPU load (this is just a makeshift solution until the FF DVB cards + can play TS directly). +- The recording format is now Transport Stream. Existing recordings in PES format + can still be replayed and edited, but new recordings are done in TS. + All code for recording in PES has been removed. + The following changes were made to switch to TS recording format: + + The index file format has been changed to support file sizes of up to 1TB + (previously 2GB), and up to 65535 separate files per recording (previously + 255). + + The recording file names are now of the form 00001.ts (previously 001.vdr). + + The frame rate is now detected by looking at two subsequent PTS values. + The "frame duration" (in multiples of 1/90000) is stored in the info.vdr + file using the new tag F (thanks to Artur Skawina for helping to get the + IndexToHMSF() calculation right). + + Several functions now have an additional parameter FramesPerSecond. + + Several functions now have an additional parameter IsPesRecording. + + The functionality of cFileWriter was moved into cRecorder, and cRemux is + now obsolete. This also avoids one level of data copying while recording. + + cRemux, cRingBufferLinearPes, cTS2PES and all c*Repacker classes have been + removed. + + A PAT/PMT is inserted before every independent frame, so that no extra + measures need to be taken when editing a recording. + + The directory name for a recording has been changed from + YYYY-MM-DD-hh[.:]mm.pr.lt.rec (pr=priority, lt=lifetime) to + YYYY-MM-DD-hh.mm.ch-ri.rec (ch=channel, ri=resumeId). + Priority and Lifetime are now stored in the info.vdr file with the new + tags P and L (if no such file exists, the maximum values are assumed by + default, which avoids inadvertently deleting a recording if disk space + is low). No longer storing Priority and Lifetime in the directory name + avoids starting a new recording if one of these is changed in the timer + and the recording is re-started for some reason. + Instead of Priority and Lifetime, the directory name now contains the + channel number from which the recording was made, and the "resume id" of + this instance of VDR. This avoids problems if several VDR instances record + the same show on different channels, or even on the same channel. + The '-' between channel number and resumeId prevents older versions of + VDR from "seeing" these recordings, which makes sure they won't even try + to replay them, or remove them in case the disk runs full. + + The semantics of PlayTs*() have been changed. These functions are now + required to return the given Length (which is TS_SIZE) if they have + processed the TS packet. + + The files "index", "info", "marks" and "resume" within a TS recording + directory are now created without the ".vdr" extension. + + The "resume" file is no longer a binary file, but contains tagged lines + to be able to store additional information, like the selected audio or + subtitle track. + + cDevice::StillPicture() will now be called with either TS or PES data. + + cDvbPlayer::Goto() no longer appends a "sequence end code" to the data. + If the output device needs this, it has to take care of it by itself. +- Fixed cPatPmtParser::ParsePmt() to reset vpid and vtype when switching from + a video to an audio channel (thanks to Reinhard Nissl). +- cDvbDevice now uses the FE_CAN_2G_MODULATION flag to determine whether a device + can handle DVB-S2. The #define is still there to allow people with older drivers + who don't need DVB-S2 to use this version without pathcing. -- cgit v1.2.3