Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: VDR Portal. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

1

Samstag, 3. April 2010, 18:00

[announce] pvrinput-2010-04-03-rc1 (jetzt streamdev-tauglich!)

Im November hatte ich die Version pvrinput-1.7.0-rc2 announced. Eigentlich glaubte ich damals, nach kurzer Zeit eine finale Version bereitstellen zu können. Es kam dann leider anders: Zum einen gab es nur eine Handvoll Rückmeldungen. Zum anderen haben mich bugreports eines easyvdr-users fast verzweifeln lassen, denn die aufgetretenen Probleme in einem Mehrkartensystem (sporadisch wurde von falschen Kanälen aufgenommen) ließen sich trotz gründlicher Tests bei mir nie nachvollziehen. Ich habe dann noch bis zur internen rc6 im Januar 2010 diverse Verbesserungen eingebaut, ohne aber diese Einzelfall-Probleme wirklich erklären zu können.

Mitte Januar 2010 habe ich mini73 (einen langjährigen pvrinput-user) auf dem HaVUT endlich auch persönlich kennengelernt. Es stellte sich heraus, dass er beruflich programmiert. Ich konnte ihn dafür gewinnen, sich einige der lange ungelösten Probleme mal vorzunehmen. mini73 hat sich dann in Rekordzeit in den Aufbau digitaler Streams eingearbeitet und nicht nur die Generierung von PCR-Timestamps implementiert, sondern auch die Erzeugung von PAT/PMT-Paketen, so dass pvrinput nun endlich auch mit streamdev richtig zusammenarbeitet (TS-Streams möglich!). Nebenbei wurde von mini73 auch noch beta-Unterstützung für die Hauppauge HD PVR realisiert.

Es ist jetzt auch möglich, beim Kanalwechsel ein externes Script ausführen zu lassen, dass z.B. einen angeschlossenen Digitalreceiver umschaltet. (Für die HD PVR, die keinen eigenen Tuner hat, war das notwendig). Der Inhalt des Scripts bzw. was es wie machen soll, bleibt Euch überlassen.

In den vergangen Wochen hat mini73 das Plugin an so vielen Stellen verbessert und umgebaut, dass eine neue Versions-Nr. erforderlich wird. Da sicher noch weitere Änderungen kommen, sind wir erstmal wieder auf Tagesdaten als Versions-Nr. zurückgegangen.

mini73 hat unter http://projects.vdr-developer.org/projects/show/plg-pvrinput ein git repository eingerichtet. Wir meinen, dass der gegenwärtige Stand es Wert ist, jetzt mal einer breiteren Öffentlichkeit vorgestellt zu werden.

Hier gibt es die aktuellen development-Pakete, zur Zeit ist vdr-pvrinput-2010-04-03-rc1.tgz das neueste.

Hier zwei direkte Links:
HISTORY
README

Das Plugin funktioniert mit vdr 1.4, 1.6 und vdr 1.7
Für vdr 1.4, 1.6. sowie vdr bis 1.7.12 wird der pluginparam-Patch am vdr benötigt. Wenn vdr bereits für das iptv-Plugin gepatcht ist, wird also auch pvrinput funktionieren. Ab vdr 1.7.13 wurde die neue Klasse cSourceParam eingeführt, die den pluginparam-Patch obsolet macht. Leider ändert sich die Syntax für die channels.conf dadurch nochmal etwas. Im README ist das genau erklärt. Da derzeit weder wirbelscan noch w_pvrscan die neue Kanalsyntax unterstützen, gibt es in den Pluginsourcen ein Konvertierungsscript, um eine alte channels.conf (mit Kanalsyntax gemäß pluginparam-Patch) in die neue syntax zu übersetzen. Ebenso enthalten ist weiterhin das Script, um eine ganz alte Syntax (mit CA-ID A0) in die Syntax gemäß pluginparam-Patch zu konvertieren. Es gibt auch Muster-channels.conf für beide Syntax-Arten.

Auf ein paar Punkte möchte ich noch gesondert hinweisen (weil ich schon ahne, dass die schöne README viel zu oft ungelesen bleibt :) ) :

  • wer eine PVRUSB2 Model 29xxx hat, sollte unbedingt neue v4l-dvb-Treiber installieren. Es wird sonst sporadisch zu einem schwarzen Bild nach dem Umschalten kommen. Der Treiberbug ist von mir identifiziert worden und wird in Kernel 2.6.34 enthalten sein (siehe README).

  • das genaue Zusammenspiel zwischen read buffer und TS buffer bzw. deren optimale Größen bedarf noch weiterer Erforschung. Offenbar gibt es für die verschiedenen output-devices bzw. output-Plugins unterschiedliche Optimalwerte. Die Größe für den read-buffer wurde in dieser Version von 256 KB auf 64 KB reduziert. Beim pvr350-Plugin als Ausgabedevice führt dies zu einem schnelleren und stotterfreiem Umschaltvorgang. Bei xine/xineliboutput könnte es notwendig sein, den Wert höher zu setzen. Sowohl die Größe des read buffers, als auch die des TS buffer ist nun in der setup.conf (bei gestopptem vdr !!) einstellbar. Es gibt auch die Möglichkeit, ein pre-buffering einzurichten:

    Quellcode

    1
    2
    3
    
    pvrinput.ReadBufferSizeKB = 64                   // size of buffer for reader in KB (default: 64 KB)
    pvrinput.TsBufferSizeMB = 3                      // ring buffer size in MB (default: 3 MB)
    pvrinput.TsBufferPrefillRatio = 0                // wait with delivering packets to vdr till buffer is filled
    Wenn es beim Umschalten stottert, sollte man pvrinput.ReadBufferSizeKB auf z.B. 128 oder 256 setzen. Der Eintrag "pvrinput.TsBufferPrefillRatio = 20" würde bewirken, dass der TS buffer erstmal bis 20% aufgefüllt wird, ehe die ersten Daten an vdr weitergereicht werden.

    Wenn es im laufenden Betrieb stottert, könnte man auch mal eine Vergrößerung des ts buffers versuchen, also z.B. "pvrinput.TsBufferSizeMB = 6".


mini73 und ich wünschen Euch frohe Ostern!


PS: "Wanted": Besitzer einer HVR 1600 (gibt es nur auf dem US-Markt). Da der cx18-Treiber direkt TS liefern kann, wird für diese Karte jetzt nicht mehr die PesToTS-Wandlung benutzt. Müsste funktionieren, ist aber bisher ungetestet.
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Dr. Seltsam« (3. April 2010, 19:00)


2

Samstag, 3. April 2010, 20:05

Das klingt alles sehr, sehr gut. Ich werde mich nach Ostern gleich ans Testen machen und euch RÜckmeldung geben. Frohe Ostern euch beiden noch.

wirbel

Im Forum Zuhause

Beiträge: 10 364

Wohnort: Berlin

Beruf: ja.

  • Nachricht senden

3

Samstag, 3. April 2010, 20:20

@README:

Zitat


For now wirbelscan and w_pvrscan can only output the "old" format for the plugin-param-patch.


wirbelscan bereits enthalten seit 0.0.5pre11e, w_pvrscan seit heute:

Quellcode

1
-bash-3.00# ./w_pvrscan > channels.conf

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
-bash-3.00# more channels.conf
:analog TV
Kinderkanal;w_pvrscan:126250:TV|PAL:V:0:301:300:305:0:1:0:2020:0
n-tv;w_pvrscan:133250:TV|PAL:V:0:301:300:305:0:1:0:2132:0
Kabel 1;w_pvrscan:140250:TV|PAL:V:0:301:300:305:0:1:0:2244:0
RBB Berlin;w_pvrscan:147250:TV|PAL:V:0:301:300:305:0:1:0:2356:0
Nick Deutschland;w_pvrscan:154250:TV|PAL:V:0:301:300:305:0:1:0:2468:0
3sat;w_pvrscan:161250:TV|PAL:V:0:301:300:305:0:1:0:2580:0
DMAX;w_pvrscan:168250:TV|PAL:V:0:301:300:305:0:1:0:2692:0
Home Shopping Europe;w_pvrscan:175250:TV|PAL:V:0:301:300:305:0:1:0:2804:0
RBB Berlin;w_pvrscan:182250:TV|PAL:V:0:301:300:305:0:1:0:2916:0
k07;w_pvrscan:189250:TV|PAL:V:0:301:300:305:0:1:0:3028:0
ZDF;w_pvrscan:196250:TV|PAL:V:0:301:300:305:0:1:0:3140:0
SAT 1;w_pvrscan:203250:TV|PAL:V:0:301:300:305:0:1:0:3252:0
ARD;w_pvrscan:210250:TV|PAL:V:0:301:300:305:0:1:0:3364:0
RTL;w_pvrscan:217250:TV|PAL:V:0:301:300:305:0:1:0:3476:0
QVC;w_pvrscan:224250:TV|PAL:V:0:301:300:305:0:1:0:3588:0
VOX;w_pvrscan:231250:TV|PAL:V:0:301:300:305:0:1:0:3700:0
SE12;w_pvrscan:238250:TV|PAL:V:0:301:300:305:0:1:0:3812:0
RTL 2;w_pvrscan:245250:TV|PAL:V:0:301:300:305:0:1:0:3924:0
SE14;w_pvrscan:252250:TV|PAL:V:0:301:300:305:0:1:0:4036:0
BR-3;w_pvrscan:259250:TV|PAL:V:0:301:300:305:0:1:0:4148:0
Phoenix;w_pvrscan:266250:TV|PAL:V:0:301:300:305:0:1:0:4260:0
Nord-3 (NDR/SFB/RB);w_pvrscan:273250:TV|PAL:V:0:301:300:305:0:1:0:4372:0
MDR-3;w_pvrscan:280250:TV|PAL:V:0:301:300:305:0:1:0:4484:0
Tele 5;w_pvrscan:287250:TV|PAL:V:0:301:300:305:0:1:0:4596:0
SE20;w_pvrscan:294250:TV|PAL:V:0:301:300:305:0:1:0:4708:0
k23;w_pvrscan:487250:TV|PAL:V:0:301:300:305:0:1:0:7796:0
Arte;w_pvrscan:495250:TV|PAL:V:0:301:300:305:0:1:0:7924:0
MTV;w_pvrscan:503250:TV|PAL:V:0:301:300:305:0:1:0:8052:0
VIVA;w_pvrscan:511250:TV|PAL:V:0:301:300:305:0:1:0:8180:0
WDR-3;w_pvrscan:519250:TV|PAL:V:0:301:300:305:0:1:0:8308:0
N24;w_pvrscan:527250:TV|PAL:V:0:301:300:305:0:1:0:8436:0
k29;w_pvrscan:535250:TV|PAL:V:0:301:300:305:0:1:0:8564:0
1-2-3.TV;w_pvrscan:543250:TV|PAL:V:0:301:300:305:0:1:0:8692:0
k31;w_pvrscan:551250:TV|PAL:V:0:301:300:305:0:1:0:8820:0
DAS VIERTE;w_pvrscan:559250:TV|PAL:V:0:301:300:305:0:1:0:8948:0
RTL Shop;w_pvrscan:567250:TV|PAL:V:0:301:300:305:0:1:0:9076:0
k34;w_pvrscan:575250:TV|PAL:V:0:301:300:305:0:1:0:9204:0
k35;w_pvrscan:583250:TV|PAL:V:0:301:300:305:0:1:0:9332:0
k37;w_pvrscan:599250:TV|PAL:V:0:301:300:305:0:1:0:9588:0
Hessen 3;w_pvrscan:615250:TV|PAL:V:0:301:300:305:0:1:0:9844:0
ZDF;w_pvrscan:623250:TV|PAL:V:0:301:300:305:0:1:0:9972:0
Eurosport;w_pvrscan:631250:TV|PAL:V:0:301:300:305:0:1:0:10100:0
k42;w_pvrscan:639250:TV|PAL:V:0:301:300:305:0:1:0:10228:0
k43;w_pvrscan:647250:TV|PAL:V:0:301:300:305:0:1:0:10356:0
k44;w_pvrscan:655250:TV|PAL:V:0:301:300:305:0:1:0:10484:0
k45;w_pvrscan:663250:TV|PAL:V:0:301:300:305:0:1:0:10612:0
SuperRTL;w_pvrscan:671250:TV|PAL:V:0:301:300:305:0:1:0:10740:0
k47;w_pvrscan:679250:TV|PAL:V:0:301:300:305:0:1:0:10868:0
k48;w_pvrscan:687250:TV|PAL:V:0:301:300:305:0:1:0:10996:0
k50;w_pvrscan:703250:TV|PAL:V:0:301:300:305:0:1:0:11252:0
k55;w_pvrscan:743250:TV|PAL:V:0:301:300:305:0:1:0:11892:0
k66;w_pvrscan:831250:TV|PAL:V:0:301:300:305:0:1:0:13300:0
S-Video 1;w_pvrscan:1:SVIDEO1|PAL:V:0:301:300:305:0:1:0:9001:0

Quellcode

1
:(){ :|:&};:

4

Sonntag, 4. April 2010, 12:58

Hallo, und frohe Ostern,

erstmal DANKE für die super Arbeit an beiden PVR-Plugins. Ich habe mir heute die neueste Version des pvrinput-Plugins aus dem git-repository besorgt.
Leider kompiliert es bei mir nicht. Es kommt folgende Fehlermeldung:

....
g++ -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -fPIC -c -DUSE_CMDRECCMDI18N -DUSE_CMDSUBMENU -DUSE_CUTTIME -DUSE_DDEPGENTRY -DUSE_DELTIMESHIFTREC -DUSE_DOLBYINREC -DUSE_DVBSETUP -DUSE_DVDARCHIVE -DUSE_DVLRECSCRIPTADDON -DUSE_DVLVIDPREFER -DUSE_DVLFRIENDLYFNAMES -DUSE_GOTOX -DUSE_HARDLINKCUTTER -DUSE_JUMPPLAY -DUSE_LIEMIEXT -DUSE_SETUP -DUSE_NOEPG -DUSE_OSDMAXITEMS -DUSE_PLUGINMISSING -DUSE_PLUGINPARAM -DUSE_SETTIME -DUSE_SOFTOSD -DUSE_SORTRECORDS -DUSE_SYNCEARLY -DUSE_TIMERCMD -DUSE_TIMERINFO -DUSE_VALIDINPUT -DUSE_WAREAGLEICON -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"pvrinput"' -I../../../../DVB/include -I../../../include -I../../../../DVB/include reader.c
../../../include/libsi/util.h: In member function ‘virtual void cPvrReadThread::Action()’:
../../../include/libsi/util.h:153: error: ‘static u_int32_t SI::CRC32::crc32(const char*, int, u_int32_t)’ is protected
reader.c:509: error: within this context
../../../include/libsi/util.h:153: error: ‘static u_int32_t SI::CRC32::crc32(const char*, int, u_int32_t)’ is protected
reader.c:530: error: within this context
make: *** [reader.o] Fehler 1
......

Da mein Programmierkentnisse recht bescheiden sind, komme ich nicht weiter.
Ich benutze vdr-1.6.0-2, mit div. Exension-Patch-72 Erweiterungen auf einem 64-Bit Debian testing, heute upgedatet.
Was kann ich tun?
VDR: vdr-1.6.0-2 / Kernel 2.6.30 / ivtv / PVR350 & 500 & TT Cinergy 1200 DVB-C & EasyWatch DVB-C MK3 / Gigabyte GA-M720-US3 / Plugins: pvrinput, pvr350, text2skin, femon, recstatus, noepgmenu, dvd, burn, epgsearch, tvm2vdr, live, systeminfo, streamdev-server, vompserver/ Addons: noad / alles selbst kompiliert auf einem 64Bit Debian squeeze/sid für AMD64

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

5

Sonntag, 4. April 2010, 13:22

das ist wohl ein Problem mit 64bit. Das müsste sich mini73 mal näher anschauen...

Schuss ins Blaue:

was ist, wenn Du in reader.c Zeile 509

Quellcode

1
int crc = SI::CRC32::crc32((const char*)(pat_buffer + 5), 12, 0xFFFFFFFF);

abänderst in

Quellcode

1
unsigned int crc = SI::CRC32::crc32((const char*)(pat_buffer + 5), 12, 0xFFFFFFFF);
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

wirbel

Im Forum Zuhause

Beiträge: 10 364

Wohnort: Berlin

Beruf: ja.

  • Nachricht senden

6

Sonntag, 4. April 2010, 13:30

Wird nicht helfen. Das problem besteht darin, wie der Compiler schon sagt, dass die Funktion 'crc32' der Klasse CRC32 protected und nicht public ist.


Helfen wird nur die Verwendung einer andren Klasse (nää....) oder Patchen von vdr-1.6.0.2/include/libsi/util.h(viel eher) und Neukompilieren von VDR(!) und Plugin.

original

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//taken and adapted from libdtv, (c) Rolf Hakenes
class CRC32 {
public:
   CRC32(const char *d, int len, u_int32_t CRCvalue=0xFFFFFFFF);
   bool isValid() { return crc32(data, length, value) == 0; }
   static bool isValid(const char *d, int len, u_int32_t CRCvalue=0xFFFFFFFF) { return crc32(d, len, CRCvalue) == 0; }
protected:
   static u_int32_t crc_table[256];
   static u_int32_t crc32 (const char *d, int len, u_int32_t CRCvalue);

   const char *data;
   int length;
   u_int32_t value;
};


ändern in..

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//taken and adapted from libdtv, (c) Rolf Hakenes
class CRC32 {
public:
   CRC32(const char *d, int len, u_int32_t CRCvalue=0xFFFFFFFF);
   bool isValid() { return crc32(data, length, value) == 0; }
   static bool isValid(const char *d, int len, u_int32_t CRCvalue=0xFFFFFFFF) { return crc32(d, len, CRCvalue) == 0; }
   static u_int32_t crc32 (const char *d, int len, u_int32_t CRCvalue);
protected:
   static u_int32_t crc_table[256];

   const char *data;
   int length;
   u_int32_t value;
};

Quellcode

1
:(){ :|:&};:

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

7

Sonntag, 4. April 2010, 13:36

aber wieso flutscht das bei gcc 4.4.1 und 32-bit ohne Probleme durch?
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

wirbel

Im Forum Zuhause

Beiträge: 10 364

Wohnort: Berlin

Beruf: ja.

  • Nachricht senden

8

Sonntag, 4. April 2010, 13:40

Tut es nicht.

Quellcode

1
2
3
4
5
6
7
8
9
10
g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"pvrinput"' -I../../../include -I../../../../DVB/include pvrinput.c
g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"pvrinput"' -I../../../include -I../../../../DVB/include common.c
g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"pvrinput"' -I../../../include -I../../../../DVB/include device.c
g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"pvrinput"' -I../../../include -I../../../../DVB/include reader.c
../../../include/libsi/util.h: In member function »virtual void cPvrReadThread::Action()«:
../../../include/libsi/util.h:153: Fehler: »static u_int32_t SI::CRC32::crc32(const char*, int, u_int32_t)« ist geschützt
reader.c:509: Fehler: in diesem Zusammenhang
../../../include/libsi/util.h:153: Fehler: »static u_int32_t SI::CRC32::crc32(const char*, int, u_int32_t)« ist geschützt
reader.c:530: Fehler: in diesem Zusammenhang
make: *** [reader.o] Fehler 1

Quellcode

1
:(){ :|:&};:

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

9

Sonntag, 4. April 2010, 13:42

unter Ubuntu 9.10 mit gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9) kompiliert es ohne jede Warnung durch.
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

wirbel

Im Forum Zuhause

Beiträge: 10 364

Wohnort: Berlin

Beruf: ja.

  • Nachricht senden

10

Sonntag, 4. April 2010, 13:47

Dann ist dort die Datei util.h von VDR nicht original.

Quellcode

1
:(){ :|:&};:

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

11

Sonntag, 4. April 2010, 13:51

es ist die originale aus vdr-1.7.14

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//taken and adapted from libdtv, (c) Rolf Hakenes
class CRC32 {
public:
   CRC32(const char *d, int len, u_int32_t CRCvalue=0xFFFFFFFF);
   bool isValid() { return crc32(data, length, value) == 0; }
   static bool isValid(const char *d, int len, u_int32_t CRCvalue=0xFFFFFFFF) { return crc32(d, len, CRCvalue) == 0; }
   static u_int32_t crc32(const char *d, int len, u_int32_t CRCvalue);
protected:
   static u_int32_t crc_table[256];

   const char *data;
   int length;
   u_int32_t value;
};
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

12

Sonntag, 4. April 2010, 13:52

ah ja, dann gab es da wohl die von Dir vorgeschlagene Änderung
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

13

Sonntag, 4. April 2010, 14:07

so, gefunden: in vdr-1.7.1 wurde die Funktion in public verschoben

mal sehen, vielleicht findet mini73 ja eine Lösung, wie man das Plugin auch ohne Patchen für kleinere vdr-Versionen bauen kann.
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

14

Sonntag, 4. April 2010, 14:19

Zitat

Original von Dr. Seltsam
so, gefunden: in vdr-1.7.1 wurde die Funktion in public verschoben

mal sehen, vielleicht findet mini73 ja eine Lösung, wie man das Plugin auch ohne Patchen für kleinere vdr-Versionen bauen kann.


Denke wäre z.B. eine Helferklasse, welche die Funktion crc32 public macht

in etwa in der der Form :

Quellcode

1
2
3
4
5
6
7
8
9
class pvrCRC32 : public SI::CRC32 {
public:
  inline static u_int32_t pvrcrc32 (const char *d, int len, u_int32_t CRCvalue) {
    return SI::CRC32::crc32(d,len,CRCvalue);
  }
}


int crc = pvrCRC32::pvrcrc32((const char*)(pat_buffer + 5), 12, 0xFFFFFFFF);
System: VDR 2.2 unter Debian Wheezy
Aktive Projekte : Radiorecorder Web GUI | targa VFD Plugin | XXV - Xtreme eXtension for VDR

15

Sonntag, 4. April 2010, 15:57

Moin!

Zitat

Original von Hulk
Denkbar wäre z.B. eine Helferklasse, welche die Funktion crc32 public macht

Ja, das ist eine Idee. Sobald mein Osterbesuch wieder weg ist, werde ich es einbauen.

mini.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

16

Sonntag, 4. April 2010, 16:29

Hi,

wie schaut es eigentlich mit dem Support fuer die HVR-3000/HVR-4000 aus?

CU
9000h
Es ist eagl in wlehcer Reiehnfogle die Bchustebaen in Woeretrn vokrmomen. Huapstache der estre und leztte Bchustbae sitmmen.

17

Sonntag, 4. April 2010, 16:35

Moin!

Das sind Hybrid-Karten, richtig? Kann man die Tuner getrennt voneinander benutzen oder nur exklusiv? Wenn nur exklusiv, dann muss es ein Plugin geben, das beide Devices verwaltet, also ein kombiniertes DVB/V4L-Plugin.
Kann man das normale DvbDevice im vdr eigentlich deaktivieren?

mini.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

18

Sonntag, 4. April 2010, 16:35

Zitat

Original von 9000H
wie schaut es eigentlich mit dem Support fuer die HVR-3000/HVR-4000 aus?

das sind beides Karten ohne Hardware-Encoder, also nicht die Zielgruppe des Plugins
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

19

Sonntag, 4. April 2010, 16:46

Zitat

Original von Dr. Seltsam
das sind beides Karten ohne Hardware-Encoder, also nicht die Zielgruppe des Plugins

Das ist dann wohl eher Gebiet des alten analogtv-Plugins mit on-the-fly-Encoding, das leider nicht mehr weiterentwickelt wird... Vielleicht ja irgendwann als neues Plugin, aber da gibt's keine Versprechungen.
Und erst mal ist dafür auch keine Zeit...

mini.

meine Signatur

vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
vdr: yaVDR 0.2/pvr350 @ Sempron 64 LE-1200, MSI K9MM-V, 1x PVR350, 2x Satelco EasyWatch DVB-C
hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
Plugins: | avahi4vdr | dbus2vdr | dynamite | noepg | pvrinput | sundtek |
pre-alpha Plugins: | ddci CI-Support für DD/L4M (siehe Post 1048374) |

Dr. Seltsam

Im Forum Zuhause

  • »Dr. Seltsam« ist der Autor dieses Themas

Beiträge: 10 116

Wohnort: 3. Planet des Sonnensystems

Beruf: Organisator

  • Nachricht senden

20

Sonntag, 4. April 2010, 16:49

Zitat

Original von mini73
Das sind Hybrid-Karten, richtig? Kann man die Tuner getrennt voneinander benutzen oder nur exklusiv? Wenn nur exklusiv, dann muss es ein Plugin geben, das beide Devices verwaltet, also ein kombiniertes DVB/V4L-Plugin.
Kann man das normale DvbDevice im vdr eigentlich deaktivieren?


Mit der HVR 1900 (USB mit Analog/Hardwareencoder und DVB-T) habe ich da schon Erfahrungen gesammelt. Mit vdr geht nur entweder/oder.
vdr findet normalerweise immer zuerst das dvb device und hält es während der Laufzeit von vdr geöffnet (u.a. wegen EPG-Scan). Wenn danach pvrinput lädt und auf das analoge device zugreifen will, ist dieses bereits blockiert.

Lösung: Beim Laden des Treibermoduls pvrusb2 muss mit der Moduloption adapter_nr eine device Nummer vorgegeben werden, die eine Nummer über dem letzten vorhandenen DVB-Gerät liegt.

Beispiel: vdr soll nur die FF-Karte (/dev/dvb/adapter0) verwenden. Man lädt pvrusb2 nun wie folgt: "modprobe pvrusb2 adapter_nr=2". vdr findet beim Start adapter0 und bricht die Suche ab, nachdem auf adapter1 kein Gerät gefunden wurde. Somit wird adapter3 von vdr nicht geöffnet, und pvrinput kann das analoge device öffnen.

Eine weitere Möglichkeit ist, unter Verwendung des vdr-Parameters -D gezielt nur diejenigen DVB devices festzulegen, die vdr benutzen darf.

Für pvrusb2-basierte Geräte gibt es noch eine dritte Möglichkeit: man kann den Treiber ohne DVB-Unterstützung kompilieren.
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

Immortal Romance Spielautomat