Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

VDR-SC und TT S2-6400

    Nobody is reading this thread right now.
AW: VDR-SC und TT S2-6400

Anbei der dag Patch für die aktuelle dvbhddevice Version 0.0.6 vom 27.01.2013.
Das Makefile fasse ich nicht an, für ältere VDR Versionen vor 1.7.35 reicht es aber einfach das einer älteren Version in das Verzeichnis zu kopieren.
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
Zuletzt bearbeitet:
AW: VDR-SC und TT S2-6400

Kann es sein das der "dag Patch für die aktuelle dvbhddevice Version 2.0.0 (vdr-2.0.0)" ein undefined symbol: _ZTI14cDvbHdFfDevice erzeugt.

Habe alles neu und frisch übersetzt, auch mit einem Distclean bekomme ich es nicht weg!
Suse 12.2 x64

Mit Original dvbhddevice funkt es!

Welche Quelle habt Ihr vom SC Plugin HG Repository at:
?
 
Zuletzt bearbeitet:
AW: VDR-SC und TT S2-6400

Probleme mit dem Patch und dvbhddevice aus den vdr-2.0.0 Sourcen kann ich bei mir nicht feststellen.

Bezüglich des sc habe allerdings direkt die Sourcen aus Deiner hg Quelle übersetzt sondern die vom Best Friend welche hier in einem anderen Thread für Debian/Ubuntu genutzt werden.
Diese entsprechen aber dem Stand des hg Repositories, haben aber glaube ich noch den ein oder anderen Patch.
Im besonderen ist das Makefile im hg Repositorie nicht auf dem Stand für vdr-2.0.0.

Anbei die Unterschiede zwischen dem Makefile aus hg und dem debian Paket:
Code:
--- sc/Makefile 2013-04-10 20:51:06.971326458 +0200
+++ vdr-plugin-sc-1.0.0+hg20121018/Makefile     2013-04-05 12:32:00.000000000 +0200
@@ -27,7 +27,8 @@ PLUGIN = sc
 DISTFILE = .distvers
 HGARCHIVE = .hg_archival.txt
 RELEASE := $(shell grep 'define SC_RELEASE' version.h | awk '{ print $$3 }' | sed -e 's/[";]//g')
-SUBREL  := $(shell if test -d .hg; then \
+SUBREL  := $(shell cd build; \
+                   if test -d .hg; then \
                      echo -n "HG-"; (hg identify 2>/dev/null || echo -n "Unknown") | sed -e 's/ .*//'; \
                    elif test -r $(HGARCHIVE); then \
                      echo -n "AR-"; grep "^node" $(HGARCHIVE) | awk '{ printf "%.12s",$$2 }'; \
@@ -71,13 +72,13 @@ CXXFLAGS += -fno-strict-aliasing

 ### The version number of VDR (taken from VDR's "config.h"):

-VDRVERSION := $(shell sed -ne '/define VDRVERSION/ s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/include/vdr/config.h)
-APIVERSION := $(shell sed -ne '/define APIVERSION/ s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/include/vdr/config.h)
+VDRVERSION := $(shell sed -ne '/define VDRVERSION/ s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
+APIVERSION := $(shell sed -ne '/define APIVERSION/ s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
 ifeq ($(strip $(APIVERSION)),)
    APIVERSION = $(VDRVERSION)
 endif
-VDRVERSNUM := $(shell sed -ne '/define VDRVERSNUM/ s/^.[a-zA-Z ]*\([0-9]*\) .*$$/\1/p' $(VDRDIR)/include/vdr/config.h)
-APIVERSNUM := $(shell sed -ne '/define APIVERSNUM/ s/^.[a-zA-Z ]*\([0-9]*\) .*$$/\1/p' $(VDRDIR)/include/vdr/config.h)
+VDRVERSNUM := $(shell sed -ne '/define VDRVERSNUM/ s/^.[a-zA-Z ]*\([0-9]*\) .*$$/\1/p' $(VDRDIR)/config.h)
+APIVERSNUM := $(shell sed -ne '/define APIVERSNUM/ s/^.[a-zA-Z ]*\([0-9]*\) .*$$/\1/p' $(VDRDIR)/config.h)
 ifeq ($(strip $(APIVERSNUM)),)
    APIVERSNUM = $(VDRVERSNUM)
 endif
@@ -101,7 +102,7 @@ LOCALEDIR = $(VDRDIR)/locale
 # test VDR version
 BYVERS = $(strip $(shell if test $(APIVERSNUM) -ge 010703; then echo "*"; fi))
 # test if PlayTsVideo() exists (e.g. TSplay patch)
-BYTSPL = $(strip $(shell grep -l 'PlayTsVideo' $(VDRDIR)/include/vdr/device.h))
+BYTSPL = $(strip $(shell grep -l 'PlayTsVideo' $(VDRDIR)/device.h))

 ifneq ($(BYVERS)$(BYTSPL),)
   SHAREDDEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
@@ -138,17 +139,17 @@ endif
 DEVPLUGOBJS += device-hd.o

 # max number of CAIDs per slot
-MAXCAID := $(shell sed -ne '/define MAXCASYSTEMIDS/ s/^.[a-zA-Z ]*\([0-9]*\).*$$/\1/p' $(VDRDIR)/ci.c)
+MAXCAID = 64
 ifneq ($(strip $(MAXCAID)),)
   DEFINES += -DVDR_MAXCAID=$(MAXCAID)
 endif

 # FFdeCSA
-CPUOPT     ?= pentium
-PARALLEL   ?= PARALLEL_32_INT
-CSAFLAGS   ?= -Wall -fPIC -g -O3 -mmmx -fomit-frame-pointer -fexpensive-optimizations -funroll-loops
-FFDECSADIR  = FFdecsa
-FFDECSA     = $(FFDECSADIR)/FFdecsa.o
+CPUOPT ?= k8
+PARALLEL ?= PARALLEL_128_SSE
+CSAFLAGS ?= -Wall -fPIC -g -O3 -mmmx -fomit-frame-pointer -fexpensive-optimizations -funroll-loops
+FFDECSADIR = FFdecsa
+FFDECSA = $(FFDECSADIR)/FFdecsa.o
 FFDECSATEST = $(FFDECSADIR)/FFdecsa_test.done

 # SASC
 
Zuletzt bearbeitet von einem Moderator:
AW: VDR-SC und TT S2-6400

Thx Frodo,

werde mal drüber schauen.

Hast du den Link zu "anderen Thread für Debian/Ubuntu"?
 
AW: VDR-SC und TT S2-6400

Hier ein Makefile, das funktionieren sollte: Link ist nicht mehr aktiv.

Falk
 
AW: VDR-SC und TT S2-6400

@hanseichel
Keine Ahnung was die bei paste.ubuntu.com tun, der Link war einmal aktuell, das was nun dort steht ist definitiv nicht von mir.
 
AW: VDR-SC und TT S2-6400

Jep, hier der Link für dvbhddevice-dag-2.0.1.diff.zip für vdr 2.0.1:
Link ist nicht mehr aktiv.
 
AW: VDR-SC und TT S2-6400

Ihr Seitenaufruf konnte aufgrund eines falschen Securitytokens nicht verarbeitet werden.

Musst du noch passende Rechte vergeben?
 
Zuletzt bearbeitet von einem Moderator:
AW: VDR-SC und TT S2-6400

Ich wüsste nicht wie?? Ich kann die Datei herunterladen...

Wenn man im Download Bereich nach dvbhddevice sucht findet man die Datei ebenfalls.
Code:
diff -upr dvbhddevice/dvbhddevice.c dvbhddevice.dag/dvbhddevice.c
--- dvbhddevice/dvbhddevice.c    2013-05-09 00:16:16.000000000 +0200
+++ dvbhddevice.dag/dvbhddevice.c    2013-05-09 00:16:16.000000000 +0200
@@ -10,13 +10,11 @@
 #include "menu.h"
 #include "setup.h"
 
-static const char *VERSION        = "2.0.1";
+static const char *VERSION        = "2.0.1dag";
 static const char *DESCRIPTION    = trNOOP("HD Full Featured DVB device");
 static const char *MAINMENUENTRY  = "dvbhddevice";
 
 class cPluginDvbhddevice : public cPlugin {
-private:
-  cDvbHdFfDeviceProbe *probe;
   bool mIsUserInactive;
 public:
   cPluginDvbhddevice(void);
@@ -29,23 +27,62 @@ public:
   virtual cOsdObject *MainMenuAction(void);
   virtual cMenuSetupPage *SetupMenu(void);
   virtual bool SetupParse(const char *Name, const char *Value);
+  virtual bool Initialize();
   };
 
-cPluginDvbhddevice::cPluginDvbhddevice(void)
-:   mIsUserInactive(true)
-{
-  probe = new cDvbHdFfDeviceProbe;
-}
+cPluginDvbhddevice::cPluginDvbhddevice(void){}
 
-cPluginDvbhddevice::~cPluginDvbhddevice()
+cPluginDvbhddevice::~cPluginDvbhddevice(){}
+
+bool cPluginDvbhddevice::Initialize()
 {
-  delete probe;
+    mIsUserInactive = true;
+    dsyslog("cPluginDvbhddevice::Initialize");
+  static uint32_t SubsystemIds[] = {
+    0x13C23009, // Technotrend S2-6400 HDFF development samples
+    0x13C2300A, // Technotrend S2-6400 HDFF production version
+    0x00000000
+    };
+ 
+  for (int Adapter = 0; Adapter<MAXDVBDEVICES; Adapter++)
+  {
+         cString FileName;
+         cReadLine ReadLine;
+         FILE *f = NULL;
+         uint32_t SubsystemId = 0;
+         FileName = cString::sprintf("/sys/class/dvb/dvb%d.frontend0/device/subsystem_vendor", Adapter);
+         if ((f = fopen(FileName, "r")) != NULL) {
+            if (char *s = ReadLine.Read(f))
+               SubsystemId = strtoul(s, NULL, 0) << 16;
+            fclose(f);
+            }
+         FileName = cString::sprintf("/sys/class/dvb/dvb%d.frontend0/device/subsystem_device", Adapter);
+         if ((f = fopen(FileName, "r")) != NULL) {
+            if (char *s = ReadLine.Read(f))
+               SubsystemId |= strtoul(s, NULL, 0);
+            fclose(f);
+            }
+         for (uint32_t *sid = SubsystemIds; *sid; sid++) {
+             if (*sid == SubsystemId) {
+                FileName = cString::sprintf("/dev/dvb/adapter%d/osd0", Adapter);
+                int fd = open(FileName, O_RDWR);
+                if (fd != -1) { //TODO treat the second path of the S2-6400 as a budget device
+                   close(fd);
+                   dsyslog("creating cDvbHdFfDevice");
+                   new cDvbHdFfDevice(Adapter, 0);           
+                   return true;
+                   }
+                }
+             }   
+  }
+
+  return false;
 }
 
 void cPluginDvbhddevice::MainThreadHook(void)
 {
     bool isUserInactive = ShutdownHandler.IsUserInactive();
-    if (isUserInactive != mIsUserInactive)
+    if (isUserInactive != mIsUserInactive) 
     {
         mIsUserInactive = isUserInactive;
         if (gHdffSetup.CecEnabled && gHdffSetup.CecTvOn)
diff -upr dvbhddevice/dvbhdffdevice.c dvbhddevice.dag/dvbhdffdevice.c
--- dvbhddevice/dvbhdffdevice.c    2013-05-09 00:16:16.000000000 +0200
+++ dvbhddevice.dag/dvbhdffdevice.c    2013-05-09 00:16:16.000000000 +0200
@@ -30,12 +30,13 @@ static uchar *YuvToJpeg(uchar *Mem, int
 int cDvbHdFfDevice::devHdffOffset = -1;
 
 cDvbHdFfDevice::cDvbHdFfDevice(int Adapter, int Frontend)
-:cDvbDevice(Adapter, Frontend)
 {
   spuDecoder = NULL;
   audioChannel = 0;
   playMode = pmNone;
   mHdffCmdIf = NULL;
+  adapter = Adapter;
+  frontend = Frontend;
 
   // Devices that are only present on cards with decoders:
 
@@ -47,7 +48,7 @@ cDvbHdFfDevice::cDvbHdFfDevice(int Adapt
 
   isHdffPrimary = false;
   if (devHdffOffset < 0) {
-     devHdffOffset = adapter;
+     devHdffOffset = DeviceNumber();
      isHdffPrimary = true;
      mHdffCmdIf = new HDFF::cHdffCmdIf(fd_osd);
 
@@ -87,6 +88,7 @@ cDvbHdFfDevice::cDvbHdFfDevice(int Adapt
      mHdffCmdIf->CmdRemoteSetProtocol((HdffRemoteProtocol_t) gHdffSetup.RemoteProtocol);
      mHdffCmdIf->CmdRemoteSetAddressFilter(gHdffSetup.RemoteAddress >= 0, gHdffSetup.RemoteAddress);
      }
+  SetPlayMode(pmNone);
 }
 
 cDvbHdFfDevice::~cDvbHdFfDevice()
@@ -100,11 +102,29 @@ cDvbHdFfDevice::~cDvbHdFfDevice()
     // caused segfaults. Besides, the program is about to terminate anyway...
 }
 
+cString cDvbHdFfDevice::DvbName(const char *Name, int Adapter, int Frontend)
+{
+#if VDRVERSNUM < 10724 
+  return cString::sprintf("%s%d/%s%d", DEV_DVB_ADAPTER, Adapter, Name, Frontend);
+#else
+  return cString::sprintf("%s/%s%d/%s%d", DEV_DVB_BASE, DEV_DVB_ADAPTER, Adapter, Name, Frontend); 
+#endif
+}
+
+int cDvbHdFfDevice::DvbOpen(const char *Name, int Adapter, int Frontend, int Mode, bool ReportError)
+{
+  cString FileName = DvbName(Name, Adapter, Frontend);
+  int fd = open(FileName, Mode);
+  if (fd < 0 && ReportError)
+     LOG_ERROR_STR(*FileName);
+  return fd;
+}
+
 void cDvbHdFfDevice::MakePrimaryDevice(bool On)
 {
   if (On)
      new cHdffOsdProvider(mHdffCmdIf);
-  cDvbDevice::MakePrimaryDevice(On);
+  cDevice::MakePrimaryDevice(On);
 }
 
 bool cDvbHdFfDevice::HasDecoder(void) const
@@ -354,7 +374,7 @@ bool cDvbHdFfDevice::SetPid(cPidHandle *
     return true;
 }
 
-void cDvbHdFfDevice::TurnOffLiveMode(bool LiveView)
+/* void cDvbHdFfDevice::TurnOffLiveMode(bool LiveView)
 {
   // Turn off live PIDs:
 
@@ -419,7 +439,7 @@ bool cDvbHdFfDevice::SetChannelDevice(co
      cControl::Launch(new cTransferControl(this, Channel));
 
   return true;
-}
+}*/
 
 int cDvbHdFfDevice::GetAudioChannelDevice(void)
 {
@@ -499,9 +519,6 @@ bool cDvbHdFfDevice::SetPlayMode(ePlayMo
         mHdffCmdIf->CmdAvMuteAudio(0, false);
     }
     else {
-        if (playMode == pmNone)
-            TurnOffLiveMode(true);
-
         if (PlayMode == pmExtern_THIS_SHOULD_BE_AVOIDED)
         {
             close(fd_video);
@@ -950,46 +967,6 @@ HDFF::cHdffCmdIf *cDvbHdFfDevice::GetHdf
   return NULL;
 }
 
-// --- cDvbHdFfDeviceProbe ---------------------------------------------------
-
-bool cDvbHdFfDeviceProbe::Probe(int Adapter, int Frontend)
-{
-  static uint32_t SubsystemIds[] = {
-    0x13C23009, // Technotrend S2-6400 HDFF development samples
-    0x13C2300A, // Technotrend S2-6400 HDFF production version
-    0x00000000
-    };
-  cString FileName;
-  cReadLine ReadLine;
-  FILE *f = NULL;
-  uint32_t SubsystemId = 0;
-  FileName = cString::sprintf("/sys/class/dvb/dvb%d.frontend%d/device/subsystem_vendor", Adapter, Frontend);
-  if ((f = fopen(FileName, "r")) != NULL) {
-     if (char *s = ReadLine.Read(f))
-        SubsystemId = strtoul(s, NULL, 0) << 16;
-     fclose(f);
-     }
-  FileName = cString::sprintf("/sys/class/dvb/dvb%d.frontend%d/device/subsystem_device", Adapter, Frontend);
-  if ((f = fopen(FileName, "r")) != NULL) {
-     if (char *s = ReadLine.Read(f))
-        SubsystemId |= strtoul(s, NULL, 0);
-     fclose(f);
-     }
-  for (uint32_t *sid = SubsystemIds; *sid; sid++) {
-      if (*sid == SubsystemId) {
-         FileName = cString::sprintf("/dev/dvb/adapter%d/osd0", Adapter);
-         int fd = open(FileName, O_RDWR);
-         if (fd != -1) { //TODO treat the second path of the S2-6400 as a budget device
-            close(fd);
-            dsyslog("creating cDvbHdFfDevice");
-            new cDvbHdFfDevice(Adapter, Frontend);
-            return true;
-            }
-         }
-      }
-  return false;
-}
-
 
 // --- YuvToJpeg -------------------------------------------------------------
 
diff -upr dvbhddevice/dvbhdffdevice.h dvbhddevice.dag/dvbhdffdevice.h
--- dvbhddevice/dvbhdffdevice.h    2013-05-09 00:16:16.000000000 +0200
+++ dvbhddevice.dag/dvbhdffdevice.h    2013-05-09 00:16:16.000000000 +0200
@@ -8,16 +8,18 @@
 #define __DVBHDFFDEVICE_H
 
 #include "hdffcmd.h"
-#include <vdr/dvbdevice.h>
+#include <vdr/device.h>
 #include <vdr/dvbspu.h>
 
 /// The cDvbHdFfDevice implements a DVB device which can be accessed through the Linux DVB driver API.
 
-class cDvbHdFfDevice : public cDvbDevice {
+class cDvbHdFfDevice : public cDevice {
 private:
-  int fd_osd, fd_audio, fd_video;
+  int adapter, frontend, fd_osd, fd_audio, fd_video;
 protected:
   virtual void MakePrimaryDevice(bool On);
+  static cString DvbName(const char *Name, int Adapter, int Frontend);
+  static int DvbOpen(const char *Name, int Adapter, int Frontend, int Mode, bool ReportError = false);
 public:
   static bool Probe(int Adapter, int Frontend);
   cDvbHdFfDevice(int Adapter, int Frontend);
@@ -31,13 +33,6 @@ private:
 public:
   virtual cSpuDecoder *GetSpuDecoder(void);
 
-// Channel facilities
-
-private:
-  void TurnOffLiveMode(bool LiveView);
-protected:
-  virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
-
 // PID handle facilities
 
 protected:
@@ -118,9 +113,4 @@ private:
   HDFF::cHdffCmdIf *mHdffCmdIf;
 };
 
-class cDvbHdFfDeviceProbe : public cDvbDeviceProbe {
-public:
-  virtual bool Probe(int Adapter, int Frontend);
-  };
-
 #endif //__DVBHDFFDEVICE_H
 
AW: VDR-SC und TT S2-6400

Hallo

Habe gerade mein tt6400 zum ersten mal in Betrieb aber irgendwie funktioniert es nicht so richtig mit dem softcam-plugin. Ich habe auf allen verschlüsselten Kanälen kein Empfang. Ich benutze den neuesten DAG Patch + neustem OSCAM. Das Softcam wird vor dem dvbhddevice Plugin geladen.

Vielleicht kann hier mal jemand eine aktuelle kurzhowto reinstellen was man alles machen muss.

Gruss kron
 
Zurück
Oben