]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts service: use dvb_network_get_orbital_pos() in the picons code for dvb-s
authorJaroslav Kysela <perex@perex.cz>
Fri, 3 Oct 2014 09:01:37 +0000 (11:01 +0200)
committerJaroslav Kysela <perex@perex.cz>
Fri, 3 Oct 2014 09:01:37 +0000 (11:01 +0200)
src/input/mpegts/mpegts_network_dvb.c
src/input/mpegts/mpegts_service.c

index f2237218b4e3577dc80308abc251b77764de0e57..cebf472d11c983dff6775eef847aed3a6340d224 100644 (file)
@@ -650,6 +650,8 @@ int dvb_network_get_orbital_pos
   mpegts_mux_t  *mm;
   dvb_mux_t     *lm = NULL;
 
+  if (!mn)
+    return -1;
   LIST_FOREACH(mm, &ln->mn_muxes, mm_network_link) {
     lm = (dvb_mux_t *)mm;
     if (lm->lm_tuning.u.dmc_fe_qpsk.orbital_dir)
index 7ca500aedef8493f0ad26f6cdf8568322c46c727..e1dba191ab9b132bec0c4b112c4b81d58beca9be 100644 (file)
@@ -408,14 +408,14 @@ mpegts_service_channel_icon ( service_t *s )
     int32_t hash = 0;
     static __thread char buf[128];
     dvb_mux_t *mmd = (dvb_mux_t*)ms->s_dvb_mux;
+    char dir;
+    int pos;
 
     switch ( mmd->lm_tuning.dmc_fe_type) {
       case DVB_TYPE_S:
-        if (mmd->lm_tuning.u.dmc_fe_qpsk.orbital_dir == 'E')
-          hash = mmd->lm_tuning.u.dmc_fe_qpsk.orbital_pos;
-        else
-          hash = 0xFFFF - mmd->lm_tuning.u.dmc_fe_qpsk.orbital_pos;
-        hash <<= 16;
+        if (dvb_network_get_orbital_pos(mmd->mm_network, &pos, &dir) < 0)
+          return NULL;
+        hash = (dir == 'E' ? pos : 0xFFFF - pos) << 16;
         break;
       case DVB_TYPE_C:
         hash = 0xFFFF0000;