minisatip - MIS Support for Multistream Transponders

Support forum for minisatip
9000h
Posts: 89
Joined: Tue May 12, 2015 1:49 pm

Re: minisatip - MIS Support for Multistream Transponders

Post by 9000h »

Hi,
@Yuri
can you please post the patches for tvh / vdr or point me to a place where I can find it.

CU
9000h
Yuri
Posts: 68
Joined: Thu Oct 01, 2015 7:26 pm

Re: minisatip - MIS Support for Multistream Transponders

Post by Yuri »

I made tests, mis channels works as expected. Thank you!
Yuri
Posts: 68
Joined: Thu Oct 01, 2015 7:26 pm

Re: minisatip - MIS Support for Multistream Transponders

Post by Yuri »

Hi,
as i said before, it's test patches - not fully implemented all multistream options. Now i can't see properly MIS support for dvbs2 in any linux dvb programms and drivers. And i don't know for sure how it should be correctly... :)
For tvheadend: (/tvheadend/src/input/mpegts/satip)

Code: Select all

--- satip_rtsp.b	2015-10-10 21:55:24.000000000 +0300
+++ satip_rtsp.c	2015-10-09 19:36:54.868990929 +0300
@@ -179,6 +179,10 @@
                dmc->dmc_fe_delsys == DVB_SYS_DVBS2) {
       strcat(buf, "&plts=on");
     }
+    if (dmc->dmc_fe_delsys == DVB_SYS_DVBS2)
+      if (dmc->dmc_fe_stream_id != DVB_NO_STREAM_ID_FILTER)
+        satip_rtsp_add_val("plp", buf, dmc->dmc_fe_stream_id * 1000);
+
   } else if (dmc->dmc_fe_delsys == DVB_SYS_DVBC_ANNEX_A ||
              dmc->dmc_fe_delsys == DVB_SYS_DVBC_ANNEX_B ||
              dmc->dmc_fe_delsys == DVB_SYS_DVBC_ANNEX_C) {
For vdr-plugin-satip:

Code: Select all

--- param.b     2015-10-10 22:09:20.000000000 +0300
+++ param.c     2015-10-10 22:10:44.073651850 +0300
@@ -168,7 +168,7 @@
      ST(" S *") q += snprintf(q,       STBUFLEFT, "&sr=%d",           channelP->Srate());
      ST("C  1") q += snprintf(q,       STBUFLEFT, "&sr=%d",           channelP->Srate());
      ST(" S *") q += snprintf(q,       STBUFLEFT, "&pol=%c",          tolower(dtp.Polarization()));
-     ST("C T2") q += snprintf(q,       STBUFLEFT, "&plp=%d",          dtp.StreamId());
+     ST("CST2") q += snprintf(q,       STBUFLEFT, "&plp=%d",          dtp.StreamId());
      ST("  T2") q += snprintf(q,       STBUFLEFT, "&t2id=%d",         dtp.T2SystemId());
      ST("C  2") q += snprintf(q,       STBUFLEFT, "&c2tft=%d",        C2TuningFrequencyType);
      ST("C  2") q += snprintf(q,       STBUFLEFT, "&ds=%d",           DataSlice);
BR, Yuri.
cata
Site Admin
Posts: 768
Joined: Tue May 12, 2015 1:01 am

Re: minisatip - MIS Support for Multistream Transponders

Post by cata »

Hi Yuri,

Is the plp (DTV_STREAM_ID) the transponder id for that transponder?
I was wondering if its not worth implementing it in minisatip without support in the satip clients.
Thanks
Yuri
Posts: 68
Joined: Thu Oct 01, 2015 7:26 pm

Re: minisatip - MIS Support for Multistream Transponders

Post by Yuri »

Hi,
i'll try to explain (sorry for my english)
DTV_STREAM_ID is id for stream in transponder. But in dvbs2 DTV_STREAM_ID= (stream_id & 0xFF) | ((pls_code & 0x3FFFF)<<8) | ((pls_mode & 0x3)<<26)
It may be more then 255 (decimal), e.g. 2 years ago i received multistream from 13E from italian provider "Mediaset" with mis=1, pls_code=8, pls_mode=root. It's equal 2049
In tvheadend for local card we can enter it without problem. For satip with my patch.
But in vdr code, for exampe, we have:

Code: Select all

    case 12: ST("  ST")  return new cMenuEditIntItem( tr("StreamId"),     &dtp.streamId,     0, 255);             else return GetOsdItem();
only 255.
In stv090x drivers we can see:

Code: Select all

stv090x_set_mis(state, props->stream_id);
and then:

Code: Select all

static int stv090x_set_mis(struct stv090x_state *state, int mis)
{                                                              
        u32 reg;                                               
                                                               
        if (mis < 0 || mis > 255) {                            
                dprintk(FE_DEBUG, 1, "Disable MIS filtering"); 
                reg = STV090x_READ_DEMOD(state, PDELCTRL1);    
                STV090x_SETFIELD_Px(reg, FILTER_EN_FIELD, 0x00);
                if (STV090x_WRITE_DEMOD(state, PDELCTRL1, reg) < 0)
                        goto err;
        } else {
                dprintk(FE_DEBUG, 1, "Enable MIS filtering - %d", mis);
                reg = STV090x_READ_DEMOD(state, PDELCTRL1);
                STV090x_SETFIELD_Px(reg, FILTER_EN_FIELD, 0x01);
                if (STV090x_WRITE_DEMOD(state, PDELCTRL1, reg) < 0)
                        goto err;
                if (STV090x_WRITE_DEMOD(state, ISIENTRY, mis) < 0)
                        goto err;
                if (STV090x_WRITE_DEMOD(state, ISIBITENA, 0xff) < 0)
                        goto err;
        }
How i can enter 2049? :) And so on...
May be i'm totally wrong. I'm not programer, not sattelite professional, i'm just want make worked my home mediacenter... :)

BR, Yuri.
ghost
Posts: 9
Joined: Wed Feb 22, 2017 6:13 am

Re: minisatip - MIS Support for Multistream Transponders

Post by ghost »

Hi, I need help with plp select in tvheadend for my T2 adapter connected thru minisatip
If I connect T2 adapter directly to my tvheadend server it works correctly, but thru minisatip it is not possible to scan plp not equal 0
When I create new mux in tvheadend with plpid 1 (for example), tvheadend suddenly scan plpid 0

If you need I can give direct access to minisatip server
Post Reply