VDR developer version 1.3.21 is now available at
ftp://ftp.cadsoft.de/vdr/Developer/vdr-1.3.21.tar.bz2
*** NOTE THAT THE WARNINGS REGARDING THE USE OF VPS CONTROLLED *** TIMERS FROM PREVIOUS RELEASE NOTES STILL APPLY!
The changes since version 1.3.20:
- Fixed cDvbDevice::SetAudioTrackDevice() to avoid a blank screen after switching back to live mode if a recording is currently active on the primary device. - Fixed a possible freeze in pause mode in case a device's PlayPesPacket() function permanently returns 0 (thanks to Reinhard Nissl and Olaf Titz). - Completed the Finnish OSD texts (thanks to Rolf Ahrenberg). - Restricted the "setting audio track" log message to automatic changes during replay. - Fixed handling Transfer Mode for radio channels (thanks to Andreas Regel for reporting this one). - Fixed handling symbolic links in cRecordings::ScanVideoDir() (thanks to Stefan Huelswitt). - Completed the Danish OSD texts (thanks to Mogens Elneff). - Forcing a new resync after a call to cRemux::Clear() (suggested by Marco Schlüßler). - The cAudio::Play() function now has an additional parameter 'uchar Id' which tells the function the substream id of the given audio packet, so that a plugin can take the right action for the various kinds if audio data - which now also includes "normal" audio with ids 0xC0...0xDF (based on suggestions by Werner Fink and Macro Schlüßler). - Removed the "Cleared/PlayPes(NULL, 0)" handling from cTransfer::Action(), since this is now done when attaching the player to the device (thanks to Marco Schlüßler). - Making sure the buffer reserve in cTransfer::Action() is re-established after clearing the buffer. - Added DeviceClrAvailableTracks() and DeviceSetCurrentAudioTrack() to cPlayer (thanks to Marco Schlüßler). - Fixed a typo in detecting UTF-8 (thanks to Reinhard Nissl). - Now using twice the buffer reserve in cTransfer if the primary DVB card is an unmodified version with only 2MB of SDRAM, to avoid audio stuttering when playing Dolby Digital over the DVB card (thanks to Christian Jacobsen and Chad Flynt for suggestions and experiments in that area). - Making sure the first audio packet is not dropped when switching to "pre 1.3.19 Dolby Digital compatibility mode". - The 'plugins-clean' target of the Makefile now only deletes the actual plugin library files from this version of VDR (suggested by Andreas Brachold). - Added a missing 'resultSkipped = 0' to cRemux::Clear() (thanks to Marco Schlüßler for reporting this one). - The new function cDvbDevice::SetTransferModeForDolbyDigital() can be used by plugins that implement Dolby Digital output and thus want to prevent the cDvbDevice from starting Transfer Mode in order to replay DD over the DVB device. - Added missing reset of the 'repacker' to cTS2PES::Clear() (thanks to Marco Schlüßler for reporting this one).
The DVB driver I am currently using can be found at
ftp://ftp.cadsoft.de/vdr/Developer/linux-dvb.2004-12-26.tar.bz2
which is the CVS 'HEAD' version from 2004-12-26, made available as a complete archive for your convenience.
Of course, you can also use any newer driver version.
Have fun!
Klaus
Klaus Schmidinger schrieb:
VDR developer version 1.3.21 is now available at ...
- Now using twice the buffer reserve in cTransfer if the primary DVB
card is an unmodified version with only 2MB of SDRAM, to avoid audio stuttering when playing Dolby Digital over the DVB card (thanks to Christian Jacobsen and Chad Flynt for suggestions and experiments in that area).
As far as I see in transfer.c, you are using always twice the buffer:
#define FW_NEEDS_BUFFER_RESERVE_FOR_AC3 #ifdef FW_NEEDS_BUFFER_RESERVE_FOR_AC3 //XXX This is a very ugly hack to allow cDvbOsd to reduce the buffer //XXX requirements in cTransfer if it detects a 4MB full featured DVB card. bool DvbCardWith4MBofSDRAM = false; #endif
So DvbCardWith4MBofSDRAM is always false. Is there no way to detect if a 2 or 4 MB Card is used ? Also a define statement is a no-go for a distri.
----- Helmut Auer, helmut@helmutauer.de
Helmut Auer wrote:
Klaus Schmidinger schrieb:
VDR developer version 1.3.21 is now available at ...
- Now using twice the buffer reserve in cTransfer if the primary DVB
card is an unmodified version with only 2MB of SDRAM, to avoid audio stuttering when playing Dolby Digital over the DVB card (thanks to Christian Jacobsen and Chad Flynt for suggestions and experiments in that area).
As far as I see in transfer.c, you are using always twice the buffer:
#define FW_NEEDS_BUFFER_RESERVE_FOR_AC3 #ifdef FW_NEEDS_BUFFER_RESERVE_FOR_AC3 //XXX This is a very ugly hack to allow cDvbOsd to reduce the buffer //XXX requirements in cTransfer if it detects a 4MB full featured DVB card. bool DvbCardWith4MBofSDRAM = false; #endif
So DvbCardWith4MBofSDRAM is always false. Is there no way to detect if a 2 or 4 MB Card is used ? Also a define statement is a no-go for a distri.
Take a look at VDR/dvbosd.c:
#define FW_NEEDS_BUFFER_RESERVE_FOR_AC3 #ifdef FW_NEEDS_BUFFER_RESERVE_FOR_AC3 //XXX This is a very ugly hack to allow cDvbOsd to reduce the buffer //XXX requirements in cTransfer if it detects a 4MB full featured DVB card. extern bool DvbCardWith4MBofSDRAM; DvbCardWith4MBofSDRAM = osdMem >= 1000000;
Klaus
Klaus Schmidinger schrieb:
Take a look at VDR/dvbosd.c:
#define FW_NEEDS_BUFFER_RESERVE_FOR_AC3 #ifdef FW_NEEDS_BUFFER_RESERVE_FOR_AC3 //XXX This is a very ugly hack to allow cDvbOsd to reduce the buffer //XXX requirements in cTransfer if it detects a 4MB full featured
DVB card. extern bool DvbCardWith4MBofSDRAM; DvbCardWith4MBofSDRAM = osdMem >= 1000000;
Oopps - sorry I missed that - I hadn't thought of a global variable ;-) And also a define statement is not a no-go for a distri - if anyone is able to upgrade a DVB card to 4 MB he also should be able to recompile vdr :-)
(Helmut Auer) 13.02.05 18:56
And also a define statement is not a no-go for a distri - if anyone is able to upgrade a DVB card to 4 MB he also should be able to recompile vdr :-)
But there are nice guys which owns a solder iron and the licence to solder who upgrades the cards for a few bugs^wbucks..
Rainer
Hi Helmut,
----- Original Message ----- From: "Helmut Auer" vdr@helmutauer.de To: vdr@linuxtv.org Sent: Sunday, February 13, 2005 6:56 PM Subject: Re: [vdr] VDR developer version 1.3.21 - Handling of DD buffer
Klaus Schmidinger schrieb:
Take a look at VDR/dvbosd.c:
#define FW_NEEDS_BUFFER_RESERVE_FOR_AC3 #ifdef FW_NEEDS_BUFFER_RESERVE_FOR_AC3 //XXX This is a very ugly hack to allow cDvbOsd to reduce the
buffer
//XXX requirements in cTransfer if it detects a 4MB full featured
DVB card. extern bool DvbCardWith4MBofSDRAM; DvbCardWith4MBofSDRAM = osdMem >= 1000000;
Oopps - sorry I missed that - I hadn't thought of a global variable ;-) And also a define statement is not a no-go for a distri - if anyone is able to upgrade a DVB card to 4 MB he also should be able to recompile vdr :-)
Well, i know how to recompile VDR but (eventhough this might be a stupid question): How do i define that i have a 4MB DVB card? I am using the Linux driver that comes with Suse 9.1 (not CVS) and Firmware 261d. To use the extra 2MB SDRAM i found a hint at http://www.vdr-portal.de saying to change dvbosd.c: --- snip --- #define MAXOSDMEMORY 1000000 ---snip --- from the default 92000. I guess this does not help in 1.3.21 to use the FW_NEEDS_BUFFER_RESERVE_FOR_AC3.
How and where can i configure 1. a statement OSD_CAP_MEMSIZE and 2. FW_NEEDS_BUFFER_RESERVE_FOR_AC3
Maybe in Make.config? Or in dvbosd.c / transfer.c? Like i said, i am using some old linux dvb drivers and i can not update to CVS for various reasons at the moment.
-- Helmut Auer, helmut@helmutauer.de
Best regards, Marcus Merz
Am Dienstag, 15. Februar 2005 23:34 schrieb Marcus Merz:
Well, i know how to recompile VDR but (eventhough this might be a stupid question): How do i define that i have a 4MB DVB card? I am using the Linux driver that comes with Suse 9.1 (not CVS) and Firmware 261d. To use the extra 2MB SDRAM i found a hint at http://www.vdr-portal.de saying to change dvbosd.c: --- snip --- #define MAXOSDMEMORY 1000000 ---snip --- from the default 92000. I guess this does not help in 1.3.21 to use the FW_NEEDS_BUFFER_RESERVE_FOR_AC3.
How and where can i configure
- a statement OSD_CAP_MEMSIZE and
- FW_NEEDS_BUFFER_RESERVE_FOR_AC3
Maybe in Make.config? Or in dvbosd.c / transfer.c? Like i said, i am using some old linux dvb drivers and i can not update to CVS for various reasons at the moment.
You don't want to set OSD_CAP_MEMSIZE yourself, since this would most probably crash your driver. IF your driver supports OSD_CAP_MEMSIZE, VDR will find out itself (the constant is defined in linux/dvb/osd.h then and used by VDR automatically). If it doesn't, but you define it anyway, you would have VDR do an I/O-Control that doesn't exist in the driver.
For the FW_NEEDS_* I guess a DEFINES += -DFW_NEEDS_BUFFER_RESERVE_FOR_AC3 in Make.config should do fine.
Greetings, Sascha