Seuraavan patchin avulla tvheadend poimii ohjelmatietovirrasta ensisijaisesti suomenkielistä tietoa, eikä siis enää kirjoita satunnaisesti päälle ruotsinkielisiä kuvauksia. Vaihtamalla kielikoodia "fin" on toki helppo valita nimenomaan ruotsinkieliset kuvaukset.
MUUTOS: nykyistä git-koodia vastaan on käytettävä tätä: Alla oleva toimii siis vain 2.12-versiossa:
Koodi: Valitse kaikki
diff -ur hts-tvheadend-2.12-orig/src/dvb/dvb_tables.c hts-tvheadend-2.12/src/dvb/dvb_tables.c
--- hts-tvheadend-2.12-orig/src/dvb/dvb_tables.c 2011-02-17 12:26:53.000000000 +0200
+++ hts-tvheadend-2.12/src/dvb/dvb_tables.c 2011-02-21 15:09:34.000000000 +0200
@@ -571,6 +571,7 @@
continue;
}
int changed = 0;
+ int suomenkielinen_saatu = 0;
*title = 0;
*desc = 0;
@@ -585,6 +585,15 @@
title, sizeof(title),
desc, sizeof(desc),
t->s_dvb_default_charset)) {
+ char language[4];
+ memcpy(language, &ptr[0], 3);
+ language[3] = '\0';
+
+ if (!strcmp(language,"fin"))
+ suomenkielinen_saatu = 1;
+ else if (suomenkielinen_saatu)
+ break;
+
changed |= epg_event_set_title(e, title);
changed |= epg_event_set_desc(e, desc);
}
diff -ur hts-tvheadend-2.12-orig/src/epg.c hts-tvheadend-2.12/src/epg.c
--- hts-tvheadend-2.12-orig/src/epg.c 2011-02-17 12:26:53.000000000 +0200
+++ hts-tvheadend-2.12/src/epg.c 2011-02-21 15:08:22.000000000 +0200
@@ -133,14 +133,8 @@
int
epg_event_set_desc(event_t *e, const char *desc)
{
- if(e->e_desc != NULL && strlen(e->e_desc) >= strlen(desc)) {
- /* The current description is longer than the one we try to set.
- * We assume that a longer description is better than a shorter
- * so we just bail out.
- * Typically happens when the XMLTV and DVB EPG feed differs.
- */
+ if(e->e_desc != NULL && !strcmp(e->e_desc, desc))
return 0;
- }
free(e->e_desc);
e->e_desc = strdup(desc);
return 1;
viewtopic.php?p=29261#p29261
Tällaiset puukotuksethan tehdään komentamalla ohjelman lähdekoodin sisältävässä juurihakemistossa seuraavasti:
Koodi: Valitse kaikki
patch -p1 <~/tvheadend-suomiepg.patch
Arch Linux, joka itselläni pyörittää tv-palvelinta, käyttää lähdekoodista käännettävien pakettien kokoamiseen tiedostoa PKGBUILD, jonne yllä oleva komento lisätään ./configure-rivin yläpuolelle. Muista jakeluista perillä olevan voinevat kertoa viisaimman tavan toteuttaa puukotus niitä käytettäessä.