diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2001-01-18 18:00:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2001-01-18 18:00:00 +0100 |
commit | 3fe3c15d5db9c1f3982ffe6dac1ae4ad56d1664d (patch) | |
tree | e1c4e489899c119fdfaad6f6bdf9bde988616df2 /dvb.c.071.diff | |
parent | 9aa2cda494d7af2733362de78234441a25959e86 (diff) | |
download | vdr-patch-lnbsharing-3fe3c15d5db9c1f3982ffe6dac1ae4ad56d1664d.tar.gz vdr-patch-lnbsharing-3fe3c15d5db9c1f3982ffe6dac1ae4ad56d1664d.tar.bz2 |
Version 0.70vdr-0.70
- VDR now requires driver version 0.8.1 or higher.
- Recordings are now saved in PES mode. Note that you now need to install the
driver *WITHOUT* 'outstream=0'! This is the default when you 'make insmod' in
the DVB/driver directory.
Old recordings (in AV_PES mode) can still be replayed (as long as the driver
still supports replaying AV_PES files). The only limitation with this is that
in fast forward/back mode the picture may be slightly distorted and there may
be sound fragments.
- The EPG data is now dumped into the file /video/epg.data every ten minutes.
Use the Perl script 'epg2html.pl' to convert the raw EPG data into a simple
HTML programme listing.
- Fixed handling of channel switching with the "Blue" button in the "What's on
now/next?" menus.
- Fixed saving the MarginStop setup parameter.
- Fixed missing initialization in cConfig.
- Implemented "On Disk Editing".
- There is no more default 'timers.conf' file.
- Added Italian language texts (thanks to Alberto Carraro).
- Fixed starting a replay session when the program is currently in "transfer
mode".
- Fixed setting/modifying timers via SVDRP with empty summary fields.
- Fixed a problem with recordings that have a single quote character in their
name (this is now mapped to 0x01).
- Changed the value for Diseqc to '0' in the default 'channels.conf'.
- Fixed displaying channels and recording status in the RCU's LED display when
a recording is interrupted due to higher priority.
- Implemented safe writing of config files (first writes into a temporary file
and then renames it).
- In case the video data stream is broken the log message will come only every
5 seconds.
- The current channel is now saved in the 'setup.conf' file when VDR is cancelled,
and will be restored next time it is started (thanks to Deti Fliegl).
- The EIT scanning thread is now locked when switching channels to avoid problems.
- Encrypted channels can now be selected even without knowing the PNR (however, it
is still necessary for the EPG info).
Diffstat (limited to 'dvb.c.071.diff')
-rw-r--r-- | dvb.c.071.diff | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/dvb.c.071.diff b/dvb.c.071.diff deleted file mode 100644 index ac7ba3a..0000000 --- a/dvb.c.071.diff +++ /dev/null @@ -1,100 +0,0 @@ ---- dvb.c.001 Sun Sep 17 22:02:37 2000 -+++ dvb.c Tue Oct 3 12:11:46 2000 -@@ -1143,6 +1143,8 @@ - { - int bpp; - int i; -+ int d, delta; //XXX kls: additional variables for data compression -+ u8 c; //XXX kls: additional variables for data compression - DECLARE_WAITQUEUE(wait, current); - - if (dvb->bmp_state==BMP_LOADING) { -@@ -1160,27 +1162,38 @@ - if (dvb->bmp_state==BMP_LOADING) - return -1; - dvb->bmp_state=BMP_LOADING; -- if (format==BITMAP8) bpp=8; -- else if (format==BITMAP4) bpp=4; -- else if (format==BITMAP2) bpp=2; -- else if (format==BITMAP1) bpp=1; -+ if (format==BITMAP8) { bpp=8; delta = 1; } //XXX kls: initialize 'delta', too -+ else if (format==BITMAP4) { bpp=4; delta = 2; } -+ else if (format==BITMAP2) { bpp=2; delta = 4; } -+ else if (format==BITMAP1) { bpp=1; delta = 8; } - else { - dvb->bmp_state=BMP_NONE; - return -1; - } -- dvb->bmplen= (dx*dy*bpp)/8; -+ dvb->bmplen= ((dx*dy*bpp+7)&~7)/8; //XXX kls: need to round up to include partial bytes - dvb->bmpp=0; - if (dvb->bmplen>32768) { - dvb->bmp_state=BMP_NONE; - return -1; - } - for (i=0; i<dy; i++) { -- if (copy_from_user(dvb->bmpbuf+1024+i*dx, data+i*inc, (dx*bpp)/8)) { -+ if (copy_from_user(dvb->bmpbuf+1024+i*dx, data+i*inc, dx)) { //XXX kls: incoming data is "1 byte per pixel" - dvb->bmp_state=BMP_NONE; - return -1; - } - - } -+ // XXX kls: Incoming data is always "one byte per pixel", so we need to compress -+ // the data in case we have a lower resolution than 8 bpp: -+ if (format != BITMAP8) { -+ for (i=0; i<dx*dy/delta; i++) { -+ c = ((u8 *)dvb->bmpbuf)[1024+i*delta+delta-1]; -+ for (d=delta-2; d>=0; d--) { -+ c |= (((u8 *)dvb->bmpbuf)[1024+i*delta+d] << ((delta-d-1)*bpp)); -+ ((u8 *)dvb->bmpbuf)[1024+i] = c; -+ } -+ } -+ } - dvb->bmplen+=1024; - return outcom(dvb, COMTYPE_OSD, LoadBmp, 3, format, dx, dy); - } -@@ -1256,24 +1269,25 @@ - int i; - - w=x1-x0+1; h=y1-y0+1; -- if (inc>0) -- w=inc; -- if (w>720 || h>576) -+ if (inc<=0) -+ inc=w; //XXX kls: see dvb_4l.h: "inc<=0 uses blockwidth as linewidth" -+ if (w<=0 || w>720 || h<=0 || h>576) //XXX kls: checking lower bounds, too - return -1; -- bpp=8; //dvb->osdbpp[dvb->osdwin]; -- bpl=w*bpp/8; -+ bpp=dvb->osdbpp[dvb->osdwin]+1; //XXX kls: 'bpp' needs to be taken from the window -+ bpl=((w*bpp+7)&~7)/8; //XXX kls: need to round up to include partial bytes - size=h*bpl; -- lpb=(64*1024)/bpl; -+ lpb=(32*1024)/bpl; //XXX kls: apparently 32K is the maximum possible value - bnum=size/(lpb*bpl); - brest=size-bnum*lpb*bpl; - - for (i=0; i<bnum; i++) { -- LoadBitmap(dvb, BITMAP8, w, lpb, inc, data); -+ LoadBitmap(dvb, bpp2bit[dvb->osdbpp[dvb->osdwin]], w, lpb, inc, data); //XXX kls: need to take the format from the actual window - BlitBitmap(dvb, dvb->osdwin, x0, y0+i*lpb, 1); -- data+=bpl; -+ data+=lpb*inc; //XXX kls: incrementing must be done in "one byte per pixel" -+ ddelay(3); //XXX kls: without this the block is sometimes not fully displayed - firmware bug? - } - if (brest) { -- LoadBitmap(dvb, BITMAP8, w, brest/bpl, inc, data); -+ LoadBitmap(dvb, bpp2bit[dvb->osdbpp[dvb->osdwin]], w, brest/bpl, inc, data); //XXX kls: need to take the format from the actual window - BlitBitmap(dvb, dvb->osdwin, x0, y0+bnum*lpb, 1); - } - ReleaseBitmap(dvb); -@@ -6141,7 +6155,7 @@ - init_waitqueue_head(&dvb->bmpq); - spin_lock_init (&(dvb->bmplock)); - dvb->bmpp=dvb->bmplen=0; -- dvb->bmpbuf=vmalloc(32768+1024); -+ dvb->bmpbuf=vmalloc(8*32768+1024); //XXX kls: '8*' to be prepared for the maximum possible incoming data at 1 bpp - - init_waitqueue_head(&dvb->debiq); - dvb->debilock=SPIN_LOCK_UNLOCKED; |