DVB-Cube BETA <<< Das deutsche PC und DVB-Forum >>>
Diverse DVB Software für verschiedene Karten => # Linux DVB (vdr, kaffeine, ect.) => # Kaffeine => Thema gestartet von: amin am 30 April, 2007, 00:34
-
Der patch checkt jetzt ob channel neu ist oder nur geupdatet werden muss.
Bis jetzt war nach jedem scan immer mehr channels mit -X in name und die Liste war immer länger.
//edit
<link unten>
gruss amin.
-
Could you repost the patch somewhere else? The address above doesn't work atm.
-
//edit
scandialog.diff - 0.00MB (http://www.zshare.net/download/scandialog-diff-2eu.html)
-
hallo amin!
Danke für den Patch. Eine Kleinigkeit ist mir aufgefallen:
wenn der Kanal bereits vorhanden ist, und nur aktualisiert wird, verliert der Kanal das vor dem Scan zugewiesene Icon.
Könntest du das noch bitte fixen?
lg, mtron
-
Another problem occurs when you have reordered the audio pids. After an update with your patch, they are back to their original order.
-
wenn der Kanal bereits vorhanden ist, und nur aktualisiert wird, verliert der Kanal das vor dem Scan zugewiesene Icon.
Aber nach neuen start von Kaffeine sind alle Icons wieder da, oder ?
Das mit audio pids.
Bei dvb werden oft audio-pids geupdatet, deswegen wollte ich die update eben haben.
Mal sehen, was man da noch verbessern kann.
-
stimmt, hast recht, sorry....
Nach einem Neustart sind die Icons wieder da :D
-
Ich glaube da ist Fehler in dvbpanel.
Hier patch der das beheben soll:
Index: dvbpanel.cpp
===================================================================
--- dvbpanel.cpp (revision 659778)
+++ dvbpanel.cpp (working copy)
@@ -1166,6 +1166,7 @@
continue;
it = new KListViewItem( channelsCb, QString().sprintf("%04d", chan->num), chan->name, chan->tp.source );
it->setDragEnabled( true );
+ chan->pix.load( dvbConfig->dvbConfigIconsDir+chan->name );
if ( !chan->pix.isNull() )
it->setPixmap( 1, chan->pix );
else {
Damit sollte es ohne neu start gehen.
Apropos Icons. mtron du hast immer so schöne Icons bei screenshot. Kannst du deine Icons irgendwo uploaden ?
<edit>
Ich habe bei mir noch etwas geändert.
Die Audiopids muss man dann anders regeln, sonst kann man sich scan auch sparen.
bool ScanDialog::checkChannUpdate( ChannelDesc *chan )
{
int i;
for ( i=0; i<(int)chandesc->count(); i++ ) {
if ( chan->tp.source == chandesc->at(i)->tp.source && chan->tp.tsid == chandesc->at(i)->tp.tsid && chan->sid == chandesc->at(i)->sid ) {
chan->category=chandesc->at(i)->category;
chan->num=chandesc->at(i)->num;
chan->name=chandesc->at(i)->name;
chan->fta=chandesc->at(i)->fta;
chandesc->replace(i,new ChannelDesc(*chan));
return false;
}
}
return true;
}
-
ja, der dvbpanel fix mit den kanal - icons funktioniert und auch der Scan benimmt sich bei den Apids updates wie es sein sollte, Wunderbar :)
ich habe mal die scanpatches und den dvbpanel fix in einem Patch gegen das aktuelle SVN (kaffeine revision 663183) zusammengefasst:
http://beta.dvbcube.org/index.php?topic=20143.msg78557#msg78557
-
Ich habe noch was an der Apids gemacht.
Also wenn ein andre apid als aktive pid gewählt wurde, wird der nach scan weiter als aktive geführt.
Ich denke sowas wollte named .
<link unten>
-
I'm itching to give it a try :) but it doesn't apply against current svn (revision 665340).
-
@named
Was ist damit ?
http://pastebin.ca/491328
-
Great! Works just as expected. ;D
It would be even better if apids are updated upon tuning a channel. I think vdr does this. This is very useful because some channels don't broadcast all used apids all of the time. E.g., ORF1 usually has 161(ger) and 163(ac3). However when airing Desparate Howswives (may be other shows also) they also broadcast 162(eng). So if you update channels when 162 is not broadcast, you lose it.
Another useful thing about vdr is the preferred language setting. Btw, that's how I discovered apid 162 on ORF1.
I also talked to hftom about adding some dcop calls/key bindings for switching between audios, he added this on his TODO but ... nothing so far.
Anyway, thanks so much. Hope this patch finds its way into svn very soon.
-
Jo, das ist was ich an kaffeine nicht mag.
Normale weise sollte kaffeine erst bei umschallten auf ein Sender alle pids (vpid apid teletxt-pid usw.) von pmt live-lesen.
Preferred language setting will ich auch noch machen. ;)
cu amin
-
patch already in svn :)
-
patch already in svn :)
Das war aber schnell. :)
-
with a little help from a friend (hftom) ;)
-
Noch eine kleine Korrektur.
Jetzt wird auch der neuer Sendername übernommen.
<link unten>
-
This patch updates channels names also. But imagine this scenario. In my channels.dvb I have ZDF on 19.2e and somewhere down the list ZDF on 13.0e. Both channel names are ZDF. I scanned 13.0e second so ZDF on Hotbird has "-1" added. That is, ZDF on Astra is just ZDF, and ZDF on Hotbird is ZDF-1. Now if I use your patch and update channels on 13.0e, ZDF-1 would become ZDF, because that's the name broadcast.
And this would be a problem. There would be two cnannels with the name ZDF. The one on Astra would be ahead in the list. If I tune to ZDF(13.0e) evrything would be ok. However if I try to tune to ZDF(13.0e), I would end up again with ZDF(19.0e). This unfortunate situation arises because kaffeine distinguishes between cnannels based on their names. If there are multiple channels with the same name, trying to tune to each one of them will lead to the topmost in the channels.dvb.
I think this behavior should be changed. Instead channels should be distinguished by a combo such as orbital position+frequency+service id. Thus unique channel names would not be a necessity anymore. And it would be possible to update them when e.g. a new channel starts to broadcast on the same sat/freq/sid.
-
@named
Mein patch hat das mit ZDF und ZDF-1 schon berücksichtigt. ;)
Teste zu erst bitte. :)
cu
//edit
Ok. jetzt muss 100% ok sein
http://pastebin.ca/498285
-
Well, I did a test. But it wasn't with ZDF and ZDF-1. :) It was with ZDF and ZDF-HB. I checked again. If it is ZDF-#, #=1,2,.. all is ok, otherwise we have problem. So this limits user's freedom to rename the channel to his liking. Which is a bad idea, I guess.
//edit
You were faster with your post edit. :) Will try the new version.
//edit
That's better.
But it would be really better if someone could change the way kaffeine handles dvb channels. A database-like method. With a unique key comprised of (sat,freq,sid). This will allow us to have a tree structured channel list sortable by different criteria. Similar to amarok's collection tab where one could group by genre/artist/album or a number of other combos. In kaffeine we could have sat/provider/tp or maybe even category(genre)/sat etc. I have suggested this already to hftom but he probably doesn't have the time to code it.
-
Du kannst noch der patch testen. Ist nicht in svn.
und hier noch kleine patch für dvbpanel.
(http://img179.imagevenue.com/loc436/th_14438_source_122_436lo.jpg) (http://img179.imagevenue.com/img.php?image=14438_source_122_436lo.jpg)
http://pastebin.ca/455682
-
Doesn't apply correctly to current svn.
-
Hier ein diff gegen Aktuelle svn.
http://pastebin.ca/498387
Kannst du noch hftom sagen, dass besser wäre "_" statt "-" in checkDuplicateName.
name = org+"-"+QString().setNum(j);
auf
name = org+"_"+QString().setNum(j);
Dann muss man auch bei meinem patch ändern.
+ name.remove( QRegExp("_\\d+$"));
-
This just changes what's displayed in the source column of the dvbpanel. It doesn't solve the issue with duplicate channel names. If channel names are identical only the topmost in channels.dvb is tuned. I really think that channel treatment should be reworked. Unfortunately I can't do this. Hope someone else might. :) I could just give some ideas as far as usability is concerned.
-
Meinst du dieses Art von Doppel-Channels ?
TVC|24 HORAS |162(2)|88(esl),|0|30655|1034|SAstra-19.2E|10979|22000|v|56|-1|-1|-1|-1|-1|-1|-1|882|||
TVC|24 HORAS-1|162(2)|88(esl),|0|30652|1034|SAstra-19.2E|10979|22000|v|56|-1|-1|-1|-1|-1|-1|-1|927|||
Also das wird so gesendet:
dvbscan -c
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
0x0000 0x77bb: pmt_pid 0x0401 CLASIC -- CLÁSICO (running, scrambled)
0x0000 0x77bc: pmt_pid 0x0402 24H -- 24 HORAS (running, scrambled)
0x0000 0x77bd: pmt_pid 0x0404 CMA30 -- TNT (running, scrambled)
0x0000 0x77be: pmt_pid 0x0403 Digital+ -- CLAN TVE (running, scrambled)
0x0000 0x77bf: pmt_pid 0x040c 24H -- 24 HORAS (running, scrambled)
0x0000 0x77c0: pmt_pid 0x0406 TLNV -- TELENOVELAS (running, scrambled)
0x0000 0x77c1: pmt_pid 0x0408 HOLLYW -- HOLLYWOOD (running, scrambled)
0x0000 0x77c2: pmt_pid 0x0409 HIST -- CANAL HISTORIA (running, scrambled)
0x0000 0x77c3: pmt_pid 0x040f TLNV -- TELENOVELAS (running, scrambled)
0x0000 0x77c4: pmt_pid 0x040a Digital+ -- EHS (running)
0x0000 0x77c5: pmt_pid 0x0407 CANAR -- TV CANARIA (running)
0x0000 0x77c6: pmt_pid 0x040e Digital+ -- CUATRO (running, scrambled)
0x0000 0x77c7: pmt_pid 0x0405 Digital+ -- CUATRO (running, scrambled)
0x0000 0x77d8: pmt_pid 0x040b ESP -- EUROSPORT (running, scrambled)
dumping lists (14 services)
CLÁSICO (0x77bb) 01: PCR == V V 0x00a1 A 0x0054 (esl)
TELENOVELAS (0x77c3) 01: PCR == V V 0x00a5 A 0x0064 (esl)
24 HORAS (0x77bf) 01: PCR == V V 0x00a2 A 0x0058 (esl)
CUATRO (0x77c7) 01: PCR == V V 0x00ad A 0x0084 (esl) 0x0085 (dos) TT 0x0047
CLAN TVE (0x77be) 01: PCR == V V 0x00a0 A 0x0050 (esl) 0x0051 (dos)
CUATRO (0x77c6) 01: PCR == V V 0x00ad A 0x0084 (spa) 0x0085 (dos) TT 0x0047
EHS (0x77c4) 01: PCR == V V 0x00aa A 0x0078 (esl)
EUROSPORT (0x77d8) 01: PCR == V V 0x00a8 A 0x0070 (spa)
HOLLYWOOD (0x77c1) 01: PCR == V V 0x00a6 A 0x0068 (esl) 0x0069 (dos)
TELENOVELAS (0x77c0) 01: PCR == V V 0x00a5 A 0x0064 (esl)
TV CANARIA (0x77c5) 01: PCR == V V 0x00a4 A 0x0060 (esl)
CANAL HISTORIA (0x77c2) 01: PCR == V V 0x00a7 A 0x006c (esl) 0x006d (por)
TNT (0x77bd) 01: PCR == V V 0x00a3 A 0x005c (esl) 0x005d (dos) TT 0x0029
24 HORAS (0x77bc) 01: PCR == V V 0x00a2 A 0x0058 (esl)
-
I mean that channels like these (and for that matter, any channel) should be uniquely differentiated by the combination of:
1. Orbital position. In this case 19.0E. Obviously identcal.
2. Frequency. 10979V. Again the same.
3. Service id. 30655 for 24 HORAS, and 30652 for 24 HORAS-1.
The combination of 1,2,3 is the only way to uniquely identify a channel. And imho it SHOULD be the way channels are identified. Not by their names, numbers in some sort of list (channels.dvb) or something else. Hence, the database approach, (the amarok way).
-
Also du meinst, wir sollen die Channels nicht umbenennen in -1 -2 nur den Bug bei Channels ZDF & ZDF beheben ?
Ja, den Vorschlag find ich gut. :)
-
This would solve the issue with ZDF on Astra and ZDF on Hotbird. Also the two channels 24 HORAS on the same transponder on Astra. This eliminates the need for unique names. And if someone makes a database with the channels as objects and orbital position,frequency, pol., service id, transport stream id, vpid, apid1, apid2, provider, etc. as attributes, maybe the dvb pannel could look something like:
Astra 19.0e
|
|-Premiere
| |
| |-Premiere 1
| |-Premiere 2
| |-Premiere 3
| ........
|-D+
............
Hotbird 13.0e
|
.............
-
Für Provider müsste man die channels.dvb strucktur ändern.
So wie jetzt ist, wird Provider nicht gespeichert in channels.dvb.
-
Instead of provider, it could be the channel group, or even a new field genre which could be assigned by the user. But that's not really the point. :)
-
Für Provider müsste man die channels.dvb strucktur ändern.
Die Struktur nur ein bisschen. Es sind bei der channels.dvb noch einige Felder ohne funktion.
Dies ist der Eintrag unseres Österrelichen Staatlichen in Kaffeine's channels.dvb (Empfangen über Astra 19.2° Ost)
TVC|ORF1|160(2)|161(ger),162(eng),163(ac3),|165|13001|1117|SAstra-19.2E|12692|22000|h|56|-1|-1|-1|-1|-1|-1|-1|25|-1|de|
Die verschiedenen Werte schnell in Nummern uzmgewandelt:
1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22
Ergibt folgendes Format:
1 = chan type
2 = chan name
3 = chan vpid
4 = chan apids;
5 = Teletext pid
6 = Sevice ID
7 = Transport ID
8 = Source = Sat Source
9 = Frequency
10 = Symbol Rate
11 = Polarisation
12 - 19 = ???
20 = Kaffeine interne Kanalnummer
21 = ???
22 = kaffeine interner Favouritenname
Kennt jemand den Syntax für die -1 Felder?
-
Das steht in sourcen:
// TV | vpid(stream_type) | apid1(lang)(ac3),apid2, | ttpid | sid | tsid | type(S,C,T)source | freq | sr | pol | fecH | inv | mod | fecL | bw | trans | guard | hier | number / subpid1(type)(pageid)(ancid)(lang),subpid2..., | category |