mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Version 2.1.4
VDR developer version 2.1.4 is now available at ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.4.tar.bz2 A 'diff' against the previous version is available at ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.3-2.1.4.diff MD5 checksums: e1018c13dc257c986e0e30494913b415 vdr-2.1.4.tar.bz2 870f6f03f4697d136c886358c3be4277 vdr-2.1.3-2.1.4.diff WARNING: ======== This is a *developer* version. Even though *I* use it in my productive environment, I strongly recommend that you only use it under controlled conditions and for testing and debugging. From the HISTORY file: - Updated 'sources.conf' (thanks to Antti Hartikainen). - cFont::CreateFont() now returns a dummy font in case there are no fonts installed. This prevents a crash with the LCARS skin on a system that has no fonts. - Improved locking for CAM slots and made the pure functions of cCiAdapter have default implementations, to fix a possible crash with CI adapters and CAM slots that are implemented in a plugin. - Added logging the supported system ids of a CAM. - Increased MIN_TS_PACKETS_FOR_FRAME_DETECTOR to 10 in order to be able to record channels that need more than 5 TS packets for detecting frame borders (reported by Eike Sauer). - Fixed deleting the source recording after moving it to a different volume (reported by Christoph Haubrich). - Now waiting explicitly until all CAM slots are ready before switching to the initial channel when VDR is started. This is necessary in case CI adapters are used that are not physically connected to a dedicated device. The respective checks in cDvbDevice have been removed to avoid redundancy. - Fixed detecting frame borders in MPEG-2 streams that have "bottom fields" or varying GOP structures (reported by Christian Paulick, with help from Helmut Auer). - Now unassigning CAMs from their devices when they are no longer used. - Now making sure the primary device goes into transfer mode for live viewing if the CAM wants to receive the TS data. - Fixed a wrong alignment in cCiDateTime::SendDateTime(). - Since the new cRecordingsHandler that was introduced in version 2.1.2 not only handles "cutting", but also "moving" and "copying" recordings, the German word "Schnitt" has been replaced with the more generic "Bearbeitung", which covers all three variations of "editing" a recording (suggested by Christoph Haubrich). Maintainers of translations for other languages may want to change their *.po files accordingly. - The new function cStatus::ChannelChange() can be implemented by plugins to be informed about changes to the parameters of a channel that may require a retune. This may, for instance, be useful for plugins that implement live streaming, so that they can react on changes to a channel's PIDs or CA descriptors (problem reported by Mariusz Bialonczyk). - Fixed a superfluous call to the skin's SetRecording() function after renaming a recording (reported by Christoph Haubrich).
This commit is contained in:
committed by
Dieter Hametner
parent
716c03a47e
commit
67e322b0dd
@@ -89,3 +89,7 @@ VDR Plugin 'dvbhddevice' Revision History
|
||||
|
||||
- Avoiding unnecessary pkg-config warnings in plugin Makefiles.
|
||||
- cDevice::TrickSpeed() now has an additional parameter named Forward.
|
||||
|
||||
2014-01-17: Version 2.1.4
|
||||
|
||||
- Using PCR based clock recovery in transfer mode.
|
||||
|
@@ -10,7 +10,7 @@
|
||||
#include "menu.h"
|
||||
#include "setup.h"
|
||||
|
||||
static const char *VERSION = "2.1.3";
|
||||
static const char *VERSION = "2.1.4";
|
||||
static const char *DESCRIPTION = trNOOP("HD Full Featured DVB device");
|
||||
static const char *MAINMENUENTRY = "dvbhddevice";
|
||||
|
||||
|
@@ -51,6 +51,12 @@ cDvbHdFfDevice::cDvbHdFfDevice(int Adapter, int Frontend)
|
||||
isHdffPrimary = true;
|
||||
mHdffCmdIf = new HDFF::cHdffCmdIf(fd_osd);
|
||||
|
||||
uint32_t firmwareVersion = mHdffCmdIf->CmdGetFirmwareVersion(NULL, 0);
|
||||
if (firmwareVersion < 0x401)
|
||||
supportsPcrInTransferMode = false;
|
||||
else
|
||||
supportsPcrInTransferMode = true;
|
||||
|
||||
/* reset some stuff in case the VDR was killed before and had no chance
|
||||
to clean up. */
|
||||
mHdffCmdIf->CmdOsdReset();
|
||||
@@ -511,13 +517,15 @@ bool cDvbHdFfDevice::SetPlayMode(ePlayMode PlayMode)
|
||||
}
|
||||
else
|
||||
{
|
||||
mHdffCmdIf->CmdAvSetPlayMode(1, Transferring() || (cTransferControl::ReceiverDevice() == this));
|
||||
isTransferMode = Transferring() || (cTransferControl::ReceiverDevice() == this);
|
||||
mHdffCmdIf->CmdAvSetPlayMode(1, isTransferMode);
|
||||
mHdffCmdIf->CmdAvSetStc(0, 100000);
|
||||
mHdffCmdIf->CmdAvEnableSync(0, false);
|
||||
mHdffCmdIf->CmdAvEnableVideoAfterStop(0, true);
|
||||
|
||||
playVideoPid = -1;
|
||||
playAudioPid = -1;
|
||||
playPcrPid = -1;
|
||||
audioCounter = 0;
|
||||
videoCounter = 0;
|
||||
freezed = false;
|
||||
@@ -606,7 +614,11 @@ void cDvbHdFfDevice::ScaleVideo(const cRect &Rect)
|
||||
}
|
||||
}
|
||||
|
||||
#if (APIVERSNUM >= 20103)
|
||||
void cDvbHdFfDevice::TrickSpeed(int Speed, bool Forward)
|
||||
#else
|
||||
void cDvbHdFfDevice::TrickSpeed(int Speed)
|
||||
#endif
|
||||
{
|
||||
freezed = false;
|
||||
mHdffCmdIf->CmdAvEnableSync(0, false);
|
||||
@@ -896,6 +908,14 @@ int cDvbHdFfDevice::PlayTsVideo(const uchar *Data, int Length)
|
||||
mHdffCmdIf->CmdAvSetVideoPid(0, playVideoPid, MapVideoStreamTypes(PatPmtParser()->Vtype()), true);
|
||||
}
|
||||
}
|
||||
if (isTransferMode && supportsPcrInTransferMode) {
|
||||
if (pid != playPcrPid) {
|
||||
if (pid == PatPmtParser()->Ppid()) {
|
||||
playPcrPid = pid;
|
||||
mHdffCmdIf->CmdAvSetPcrPid(0, playPcrPid);
|
||||
}
|
||||
}
|
||||
}
|
||||
return WriteAllOrNothing(fd_video, Data, Length, 1000, 10);
|
||||
}
|
||||
|
||||
|
@@ -77,9 +77,12 @@ protected:
|
||||
private:
|
||||
int playVideoPid;
|
||||
int playAudioPid;
|
||||
int playPcrPid;
|
||||
bool freezed;
|
||||
bool trickMode;
|
||||
bool isPlayingVideo;
|
||||
bool isTransferMode;
|
||||
bool supportsPcrInTransferMode;
|
||||
|
||||
// Pes2Ts conversion stuff
|
||||
uint8_t videoCounter;
|
||||
@@ -99,7 +102,11 @@ public:
|
||||
virtual int64_t GetSTC(void);
|
||||
virtual cRect CanScaleVideo(const cRect &Rect, int Alignment = taCenter);
|
||||
virtual void ScaleVideo(const cRect &Rect = cRect::Null);
|
||||
#if (APIVERSNUM >= 20103)
|
||||
virtual void TrickSpeed(int Speed, bool Forward);
|
||||
#else
|
||||
virtual void TrickSpeed(int Speed);
|
||||
#endif
|
||||
virtual void Clear(void);
|
||||
virtual void Play(void);
|
||||
virtual void Freeze(void);
|
||||
|
Reference in New Issue
Block a user