Jump to content


Photo

Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5)

DVB-T2 DVB-S2

  • Please log in to reply
45 replies to this topic

Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #21 samsamsam

  • Senior Member
  • 2,024 posts

+146
Excellent

Posted 21 June 2018 - 19:09

@WanWizard

 

It is quite obvious that Enigma2 should have own defined enums for FEC and use mapping rather then direct use value of enums from the Linux DVB API in the database.

This is not just about FEC.

 

You really don't understand why this should be done like this? Really?

I am sure that you hear about "Abstraction Layer". Did you?


Edited by samsamsam, 21 June 2018 - 19:11.


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #22 WanWizard

  • PLi® Core member
  • 70,534 posts

+1,811
Excellent

Posted 21 June 2018 - 19:12

No, I don't understand why you insist on overriding the enum values of the offical Linux DVB API. So please explain that to me.


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Ultimate (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #23 Erik Slagter

  • PLi® Core member
  • 46,969 posts

+542
Excellent

Posted 21 June 2018 - 19:13

And SamSamSam what do YOU not understand about some politeness, it may help coorperation greatly.


* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #24 samsamsam

  • Senior Member
  • 2,024 posts

+146
Excellent

Posted 21 June 2018 - 20:14

@WanWizard

Maybe this is not the best lecture but you can start here:

http://citeseerx.ist...p=rep1&type=pdf

 

 

@Erik Slagter
 
Unlike me, members of the OpenPLI team were very  politeness  to my person.


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #25 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 21 June 2018 - 21:09

diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
index 5923082..96f52b5 100644
--- a/lib/dvb/frontend.cpp
+++ b/lib/dvb/frontend.cpp
@@ -2155,6 +2155,8 @@ void eDVBFrontend::setFrontend(bool recvEvents)
                                case eDVBFrontendParametersTerrestrial::FEC_1_2: p[cmdseq.num].u.data = FEC_1_2; break;
                                case eDVBFrontendParametersTerrestrial::FEC_2_3: p[cmdseq.num].u.data = FEC_2_3; break;
                                case eDVBFrontendParametersTerrestrial::FEC_3_4: p[cmdseq.num].u.data = FEC_3_4; break;
+                               case eDVBFrontendParametersTerrestrial::FEC_3_5: p[cmdseq.num].u.data = FEC_3_5; break;
+                               case eDVBFrontendParametersTerrestrial::FEC_4_5: p[cmdseq.num].u.data = FEC_4_5; break;
                                case eDVBFrontendParametersTerrestrial::FEC_5_6: p[cmdseq.num].u.data = FEC_5_6; break;
                                case eDVBFrontendParametersTerrestrial::FEC_6_7: p[cmdseq.num].u.data = FEC_6_7; break;
                                case eDVBFrontendParametersTerrestrial::FEC_7_8: p[cmdseq.num].u.data = FEC_7_8; break;
@@ -2170,6 +2172,8 @@ void eDVBFrontend::setFrontend(bool recvEvents)
                                case eDVBFrontendParametersTerrestrial::FEC_1_2: p[cmdseq.num].u.data = FEC_1_2; break;
                                case eDVBFrontendParametersTerrestrial::FEC_2_3: p[cmdseq.num].u.data = FEC_2_3; break;
                                case eDVBFrontendParametersTerrestrial::FEC_3_4: p[cmdseq.num].u.data = FEC_3_4; break;
+                               case eDVBFrontendParametersTerrestrial::FEC_3_5: p[cmdseq.num].u.data = FEC_3_5; break;
+                               case eDVBFrontendParametersTerrestrial::FEC_4_5: p[cmdseq.num].u.data = FEC_4_5; break;
                                case eDVBFrontendParametersTerrestrial::FEC_5_6: p[cmdseq.num].u.data = FEC_5_6; break;
                                case eDVBFrontendParametersTerrestrial::FEC_6_7: p[cmdseq.num].u.data = FEC_6_7; break;
                                case eDVBFrontendParametersTerrestrial::FEC_7_8: p[cmdseq.num].u.data = FEC_7_8; break;
diff --git a/lib/dvb/frontendparms.cpp b/lib/dvb/frontendparms.cpp
index 1ee2385..fc86a20 100644
--- a/lib/dvb/frontendparms.cpp
+++ b/lib/dvb/frontendparms.cpp
@@ -504,8 +504,12 @@ int eDVBTerrestrialTransponderData::getCodeRateLp() const
        case FEC_1_2: return eDVBFrontendParametersTerrestrial::FEC_1_2;
        case FEC_2_3: return eDVBFrontendParametersTerrestrial::FEC_2_3;
        case FEC_3_4: return eDVBFrontendParametersTerrestrial::FEC_3_4;
+       case FEC_3_5: return eDVBFrontendParametersTerrestrial::FEC_3_5;
+       case FEC_4_5: return eDVBFrontendParametersTerrestrial::FEC_4_5;
        case FEC_5_6: return eDVBFrontendParametersTerrestrial::FEC_5_6;
+       case FEC_6_7: return eDVBFrontendParametersTerrestrial::FEC_6_7;
        case FEC_7_8: return eDVBFrontendParametersTerrestrial::FEC_7_8;
+       case FEC_8_9: return eDVBFrontendParametersTerrestrial::FEC_8_9;
        default:
        case FEC_AUTO: return eDVBFrontendParametersTerrestrial::FEC_Auto;
        }
@@ -520,8 +524,12 @@ int eDVBTerrestrialTransponderData::getCodeRateHp() const
        case FEC_1_2: return eDVBFrontendParametersTerrestrial::FEC_1_2;
        case FEC_2_3: return eDVBFrontendParametersTerrestrial::FEC_2_3;
        case FEC_3_4: return eDVBFrontendParametersTerrestrial::FEC_3_4;
+       case FEC_3_5: return eDVBFrontendParametersTerrestrial::FEC_3_5;
+       case FEC_4_5: return eDVBFrontendParametersTerrestrial::FEC_4_5;
        case FEC_5_6: return eDVBFrontendParametersTerrestrial::FEC_5_6;
+       case FEC_6_7: return eDVBFrontendParametersTerrestrial::FEC_6_7;
        case FEC_7_8: return eDVBFrontendParametersTerrestrial::FEC_7_8;
+       case FEC_8_9: return eDVBFrontendParametersTerrestrial::FEC_8_9;
        default:
        case FEC_AUTO: return eDVBFrontendParametersTerrestrial::FEC_Auto;
        }
diff --git a/lib/dvb/frontendparms.h b/lib/dvb/frontendparms.h
index d263250..8a35498 100644
--- a/lib/dvb/frontendparms.h
+++ b/lib/dvb/frontendparms.h
@@ -113,7 +113,7 @@ public:
         * (and it's too late to fix this now, we would break backward compatibility)
         */
        enum {
-               FEC_1_2=0, FEC_2_3=1, FEC_3_4=2, FEC_5_6=3, FEC_7_8=4, FEC_Auto=5, FEC_6_7=6, FEC_8_9=7
+               FEC_1_2=0, FEC_2_3=1, FEC_3_4=2, FEC_5_6=3, FEC_7_8=4, FEC_Auto=5, FEC_6_7=6, FEC_8_9=7, FEC_3_5=8, FEC_4_5=9
        };

        enum {
diff --git a/lib/python/Screens/ScanSetup.py b/lib/python/Screens/ScanSetup.py
index 73f530b..31a91ef 100644
--- a/lib/python/Screens/ScanSetup.py
+++ b/lib/python/Screens/ScanSetup.py
@@ -1113,6 +1113,8 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
                        (eDVBFrontendParametersTerrestrial.FEC_1_2, "1/2"),
                        (eDVBFrontendParametersTerrestrial.FEC_2_3, "2/3"),
                        (eDVBFrontendParametersTerrestrial.FEC_3_4, "3/4"),
+                       (eDVBFrontendParametersTerrestrial.FEC_3_5, "3/5"),
+                       (eDVBFrontendParametersTerrestrial.FEC_4_5, "4/5"),
                        (eDVBFrontendParametersTerrestrial.FEC_5_6, "5/6"),
                        (eDVBFrontendParametersTerrestrial.FEC_6_7, "6/7"),
                        (eDVBFrontendParametersTerrestrial.FEC_7_8, "7/8"),
@@ -1122,6 +1124,8 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
                        (eDVBFrontendParametersTerrestrial.FEC_1_2, "1/2"),
                        (eDVBFrontendParametersTerrestrial.FEC_2_3, "2/3"),
                        (eDVBFrontendParametersTerrestrial.FEC_3_4, "3/4"),
+                       (eDVBFrontendParametersTerrestrial.FEC_3_5, "3/5"),
+                       (eDVBFrontendParametersTerrestrial.FEC_4_5, "4/5"),
                        (eDVBFrontendParametersTerrestrial.FEC_5_6, "5/6"),
                        (eDVBFrontendParametersTerrestrial.FEC_6_7, "6/7"),
                        (eDVBFrontendParametersTerrestrial.FEC_7_8, "7/8"),
diff --git a/lib/python/Tools/Transponder.py b/lib/python/Tools/Transponder.py
index c7c76bc..8650673 100644
--- a/lib/python/Tools/Transponder.py
+++ b/lib/python/Tools/Transponder.py
@@ -164,6 +164,8 @@ def ConvertToHumanReadable(tp, tunertype = None):
                        eDVBFrontendParametersTerrestrial.FEC_1_2 : "1/2",
                        eDVBFrontendParametersTerrestrial.FEC_2_3 : "2/3",
                        eDVBFrontendParametersTerrestrial.FEC_3_4 : "3/4",
+                       eDVBFrontendParametersTerrestrial.FEC_3_5 : "3/5",
+                       eDVBFrontendParametersTerrestrial.FEC_4_5 : "4/5",
                        eDVBFrontendParametersTerrestrial.FEC_5_6 : "5/6",
                        eDVBFrontendParametersTerrestrial.FEC_6_7 : "6/7",
                        eDVBFrontendParametersTerrestrial.FEC_7_8 : "7/8",
@@ -173,6 +175,8 @@ def ConvertToHumanReadable(tp, tunertype = None):
                        eDVBFrontendParametersTerrestrial.FEC_1_2 : "1/2",
                        eDVBFrontendParametersTerrestrial.FEC_2_3 : "2/3",
                        eDVBFrontendParametersTerrestrial.FEC_3_4 : "3/4",
+                       eDVBFrontendParametersTerrestrial.FEC_3_5 : "3/5",
+                       eDVBFrontendParametersTerrestrial.FEC_4_5 : "4/5",
                        eDVBFrontendParametersTerrestrial.FEC_5_6 : "5/6",
                        eDVBFrontendParametersTerrestrial.FEC_6_7 : "6/7",
                        eDVBFrontendParametersTerrestrial.FEC_7_8 : "7/8",
Anyone able to test above?

Thanks.
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #26 WanWizard

  • PLi® Core member
  • 70,534 posts

+1,811
Excellent

Posted 21 June 2018 - 21:30

@WanWizard

Maybe this is not the best lecture but you can start here:

http://citeseerx.ist...p=rep1&type=pdf

 

As someone with a Bsc in software engineering, you don't need to lecture me on software design.

 

This is about making changes in the correct place. If the origin of the enum is the Linux DVB API, and you start overriding it in your own code, you can wait for a collision to happen as soon as the API is updated. Dream Multimedia made same mistake with IOctl's we still have to live with, and they are damned hard to undo (which is why they are still there).

 

You'll end up with workarounds in your own code to deal with the collision, which will become ever more complex when some code comes along that does use the API. And then what do you do? You have an integer value than needs to be mapped to an enum value, do you use the API one? Or your own one? The misery you can create is limitless.


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Ultimate (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #27 samsamsam

  • Senior Member
  • 2,024 posts

+146
Excellent

Posted 21 June 2018 - 21:49

This is not workaround! Enigma2 should use own enums. So, about what collision are you talking about?

You define own type and use it in one layer. When you call function from another layer then you need to map type from layer 1 to type in layer 2.

 

You really do not understand this? 


Edited by samsamsam, 21 June 2018 - 21:51.


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #28 WanWizard

  • PLi® Core member
  • 70,534 posts

+1,811
Excellent

Posted 21 June 2018 - 22:07

So, there an official enum list. You ignore that, make your own, and then create a translation map to deal with the differences and possible collisions. And you don't call that a workaround?

 

And you think I am the one not understanding?


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Ultimate (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #29 samsamsam

  • Senior Member
  • 2,024 posts

+146
Excellent

Posted 21 June 2018 - 22:39

@WanWizard

 

Maybe you will tell me what this is:

 


 case eDVBFrontendParametersTerrestrial::FEC_1_2: p[cmdseq.num].u.data = FEC_1_2; break;
 case eDVBFrontendParametersTerrestrial::FEC_2_3: p[cmdseq.num].u.data = FEC_2_3; break;
 case eDVBFrontendParametersTerrestrial::FEC_3_4: p[cmdseq.num].u.data = FEC_3_4; break;
 case eDVBFrontendParametersTerrestrial::FEC_3_5: p[cmdseq.num].u.data = FEC_3_5; break;
 case eDVBFrontendParametersTerrestrial::FEC_4_5: p[cmdseq.num].u.data = FEC_4_5; break;
 case eDVBFrontendParametersTerrestrial::FEC_5_6: p[cmdseq.num].u.data = FEC_5_6; break;
 case eDVBFrontendParametersTerrestrial::FEC_6_7: p[cmdseq.num].u.data = FEC_6_7; break;
 case eDVBFrontendParametersTerrestrial::FEC_7_8: p[cmdseq.num].u.data = FEC_7_8; break;
 
 case FEC_1_2: return eDVBFrontendParametersTerrestrial::FEC_1_2;
 case FEC_2_3: return eDVBFrontendParametersTerrestrial::FEC_2_3;
 case FEC_3_4: return eDVBFrontendParametersTerrestrial::FEC_3_4;
 case FEC_3_5: return eDVBFrontendParametersTerrestrial::FEC_3_5;
 case FEC_4_5: return eDVBFrontendParametersTerrestrial::FEC_4_5;
 case FEC_5_6: return eDVBFrontendParametersTerrestrial::FEC_5_6;
 case FEC_6_7: return eDVBFrontendParametersTerrestrial::FEC_6_7;
 case FEC_7_8: return eDVBFrontendParametersTerrestrial::FEC_7_8;
 case FEC_8_9: return eDVBFrontendParametersTerrestrial::FEC_8_9;
 
In your opinion this is HELL. Am  I right?
 
In my opinion this software abstraction layer separation. It is normal practice.
Maybe you should read this http://citeseerx.ist...p=rep1&type=pdf
 
;)

Edited by samsamsam, 21 June 2018 - 22:43.


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #30 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 22 June 2018 - 05:07

In your opinion this is HELL. Am I right?


No, that's fine, it's using a 1 to 1 map between official Linux DVB FEC values and enigma2 ones.

Now if VU introduces FEC_1_9 on drivers using value 8, and Dream introduces FEC_1_9 using value 9, ...., and N introduces using value Y.

The only way is to map those using "#if box".

Then you have to do it also for other Linux DVB tools (femon, astra-sm, dvbblast, ...).

On the other hand, once it's official enum you do the job once in enigma2, and you will get updates (for free) on Linux DVB tools.

Just add the missing FEC's to Linux, is it so hard?

Now tell me that is clear!?
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #31 littlesat

  • PLi® Core member
  • 57,176 posts

+698
Excellent

Posted 22 June 2018 - 06:54

And in aditiion we forward to the manufacturers to adapt to it... then it is also helpfull when our colleague images also avoid adding these kind of if box x then do y patches so there is a real need to adapt... and then we andup with a generaal solution for all.

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #32 samsamsam

  • Senior Member
  • 2,024 posts

+146
Excellent

Posted 22 June 2018 - 07:25

@athoik

 

The #ifdef it is not good solution. Of course there is possible to use interfaces, with different interface implementation for the specific STB, this will make code much more cleaner, but generally result will be same like with #ifdef

Yes in case of DVB tools there FEC types not defined in Linux DVB API will be not available.

 

But, no one say that it should not be requested.

Anyway this can be done in Enigma2 by custom implementation of mapping per STB.  

Later this can be adopted at any time.



Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #33 littlesat

  • PLi® Core member
  • 57,176 posts

+698
Excellent

Posted 22 June 2018 - 09:01


Anyway this can be done in Enigma2 by custom implementation of mapping per STB.  

This can be done indeed... but actually by the way it should be it shouldn't....


WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #34 WanWizard

  • PLi® Core member
  • 70,534 posts

+1,811
Excellent

Posted 22 June 2018 - 10:42

This abstraction should not be needed.

 

The only reason for wanting a map in the first place is if you expect you need something else than a 1-1 mapping. And you don't want your own enum list to deviate from the official enum list.

 

Abstraction is fine for the things than need to be abstracted. This is definitely an example of something where that is not the case. So no, it's is not HELL, but is definitely something that should NOT be done. 


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Ultimate (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #35 Persian Prince

  • Senior Member
  • 1,982 posts

+247
Excellent

Posted 22 June 2018 - 11:04

diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
index 5923082..96f52b5 100644
--- a/lib/dvb/frontend.cpp
+++ b/lib/dvb/frontend.cpp
@@ -2155,6 +2155,8 @@ void eDVBFrontend::setFrontend(bool recvEvents)
                                case eDVBFrontendParametersTerrestrial::FEC_1_2: p[cmdseq.num].u.data = FEC_1_2; break;
                                case eDVBFrontendParametersTerrestrial::FEC_2_3: p[cmdseq.num].u.data = FEC_2_3; break;
                                case eDVBFrontendParametersTerrestrial::FEC_3_4: p[cmdseq.num].u.data = FEC_3_4; break;
+                               case eDVBFrontendParametersTerrestrial::FEC_3_5: p[cmdseq.num].u.data = FEC_3_5; break;
+                               case eDVBFrontendParametersTerrestrial::FEC_4_5: p[cmdseq.num].u.data = FEC_4_5; break;
                                case eDVBFrontendParametersTerrestrial::FEC_5_6: p[cmdseq.num].u.data = FEC_5_6; break;
                                case eDVBFrontendParametersTerrestrial::FEC_6_7: p[cmdseq.num].u.data = FEC_6_7; break;
                                case eDVBFrontendParametersTerrestrial::FEC_7_8: p[cmdseq.num].u.data = FEC_7_8; break;
@@ -2170,6 +2172,8 @@ void eDVBFrontend::setFrontend(bool recvEvents)
                                case eDVBFrontendParametersTerrestrial::FEC_1_2: p[cmdseq.num].u.data = FEC_1_2; break;
                                case eDVBFrontendParametersTerrestrial::FEC_2_3: p[cmdseq.num].u.data = FEC_2_3; break;
                                case eDVBFrontendParametersTerrestrial::FEC_3_4: p[cmdseq.num].u.data = FEC_3_4; break;
+                               case eDVBFrontendParametersTerrestrial::FEC_3_5: p[cmdseq.num].u.data = FEC_3_5; break;
+                               case eDVBFrontendParametersTerrestrial::FEC_4_5: p[cmdseq.num].u.data = FEC_4_5; break;
                                case eDVBFrontendParametersTerrestrial::FEC_5_6: p[cmdseq.num].u.data = FEC_5_6; break;
                                case eDVBFrontendParametersTerrestrial::FEC_6_7: p[cmdseq.num].u.data = FEC_6_7; break;
                                case eDVBFrontendParametersTerrestrial::FEC_7_8: p[cmdseq.num].u.data = FEC_7_8; break;
diff --git a/lib/dvb/frontendparms.cpp b/lib/dvb/frontendparms.cpp
index 1ee2385..fc86a20 100644
--- a/lib/dvb/frontendparms.cpp
+++ b/lib/dvb/frontendparms.cpp
@@ -504,8 +504,12 @@ int eDVBTerrestrialTransponderData::getCodeRateLp() const
        case FEC_1_2: return eDVBFrontendParametersTerrestrial::FEC_1_2;
        case FEC_2_3: return eDVBFrontendParametersTerrestrial::FEC_2_3;
        case FEC_3_4: return eDVBFrontendParametersTerrestrial::FEC_3_4;
+       case FEC_3_5: return eDVBFrontendParametersTerrestrial::FEC_3_5;
+       case FEC_4_5: return eDVBFrontendParametersTerrestrial::FEC_4_5;
        case FEC_5_6: return eDVBFrontendParametersTerrestrial::FEC_5_6;
+       case FEC_6_7: return eDVBFrontendParametersTerrestrial::FEC_6_7;
        case FEC_7_8: return eDVBFrontendParametersTerrestrial::FEC_7_8;
+       case FEC_8_9: return eDVBFrontendParametersTerrestrial::FEC_8_9;
        default:
        case FEC_AUTO: return eDVBFrontendParametersTerrestrial::FEC_Auto;
        }
@@ -520,8 +524,12 @@ int eDVBTerrestrialTransponderData::getCodeRateHp() const
        case FEC_1_2: return eDVBFrontendParametersTerrestrial::FEC_1_2;
        case FEC_2_3: return eDVBFrontendParametersTerrestrial::FEC_2_3;
        case FEC_3_4: return eDVBFrontendParametersTerrestrial::FEC_3_4;
+       case FEC_3_5: return eDVBFrontendParametersTerrestrial::FEC_3_5;
+       case FEC_4_5: return eDVBFrontendParametersTerrestrial::FEC_4_5;
        case FEC_5_6: return eDVBFrontendParametersTerrestrial::FEC_5_6;
+       case FEC_6_7: return eDVBFrontendParametersTerrestrial::FEC_6_7;
        case FEC_7_8: return eDVBFrontendParametersTerrestrial::FEC_7_8;
+       case FEC_8_9: return eDVBFrontendParametersTerrestrial::FEC_8_9;
        default:
        case FEC_AUTO: return eDVBFrontendParametersTerrestrial::FEC_Auto;
        }
diff --git a/lib/dvb/frontendparms.h b/lib/dvb/frontendparms.h
index d263250..8a35498 100644
--- a/lib/dvb/frontendparms.h
+++ b/lib/dvb/frontendparms.h
@@ -113,7 +113,7 @@ public:
         * (and it's too late to fix this now, we would break backward compatibility)
         */
        enum {
-               FEC_1_2=0, FEC_2_3=1, FEC_3_4=2, FEC_5_6=3, FEC_7_8=4, FEC_Auto=5, FEC_6_7=6, FEC_8_9=7
+               FEC_1_2=0, FEC_2_3=1, FEC_3_4=2, FEC_5_6=3, FEC_7_8=4, FEC_Auto=5, FEC_6_7=6, FEC_8_9=7, FEC_3_5=8, FEC_4_5=9
        };

        enum {
diff --git a/lib/python/Screens/ScanSetup.py b/lib/python/Screens/ScanSetup.py
index 73f530b..31a91ef 100644
--- a/lib/python/Screens/ScanSetup.py
+++ b/lib/python/Screens/ScanSetup.py
@@ -1113,6 +1113,8 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
                        (eDVBFrontendParametersTerrestrial.FEC_1_2, "1/2"),
                        (eDVBFrontendParametersTerrestrial.FEC_2_3, "2/3"),
                        (eDVBFrontendParametersTerrestrial.FEC_3_4, "3/4"),
+                       (eDVBFrontendParametersTerrestrial.FEC_3_5, "3/5"),
+                       (eDVBFrontendParametersTerrestrial.FEC_4_5, "4/5"),
                        (eDVBFrontendParametersTerrestrial.FEC_5_6, "5/6"),
                        (eDVBFrontendParametersTerrestrial.FEC_6_7, "6/7"),
                        (eDVBFrontendParametersTerrestrial.FEC_7_8, "7/8"),
@@ -1122,6 +1124,8 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
                        (eDVBFrontendParametersTerrestrial.FEC_1_2, "1/2"),
                        (eDVBFrontendParametersTerrestrial.FEC_2_3, "2/3"),
                        (eDVBFrontendParametersTerrestrial.FEC_3_4, "3/4"),
+                       (eDVBFrontendParametersTerrestrial.FEC_3_5, "3/5"),
+                       (eDVBFrontendParametersTerrestrial.FEC_4_5, "4/5"),
                        (eDVBFrontendParametersTerrestrial.FEC_5_6, "5/6"),
                        (eDVBFrontendParametersTerrestrial.FEC_6_7, "6/7"),
                        (eDVBFrontendParametersTerrestrial.FEC_7_8, "7/8"),
diff --git a/lib/python/Tools/Transponder.py b/lib/python/Tools/Transponder.py
index c7c76bc..8650673 100644
--- a/lib/python/Tools/Transponder.py
+++ b/lib/python/Tools/Transponder.py
@@ -164,6 +164,8 @@ def ConvertToHumanReadable(tp, tunertype = None):
                        eDVBFrontendParametersTerrestrial.FEC_1_2 : "1/2",
                        eDVBFrontendParametersTerrestrial.FEC_2_3 : "2/3",
                        eDVBFrontendParametersTerrestrial.FEC_3_4 : "3/4",
+                       eDVBFrontendParametersTerrestrial.FEC_3_5 : "3/5",
+                       eDVBFrontendParametersTerrestrial.FEC_4_5 : "4/5",
                        eDVBFrontendParametersTerrestrial.FEC_5_6 : "5/6",
                        eDVBFrontendParametersTerrestrial.FEC_6_7 : "6/7",
                        eDVBFrontendParametersTerrestrial.FEC_7_8 : "7/8",
@@ -173,6 +175,8 @@ def ConvertToHumanReadable(tp, tunertype = None):
                        eDVBFrontendParametersTerrestrial.FEC_1_2 : "1/2",
                        eDVBFrontendParametersTerrestrial.FEC_2_3 : "2/3",
                        eDVBFrontendParametersTerrestrial.FEC_3_4 : "3/4",
+                       eDVBFrontendParametersTerrestrial.FEC_3_5 : "3/5",
+                       eDVBFrontendParametersTerrestrial.FEC_4_5 : "4/5",
                        eDVBFrontendParametersTerrestrial.FEC_5_6 : "5/6",
                        eDVBFrontendParametersTerrestrial.FEC_6_7 : "6/7",
                        eDVBFrontendParametersTerrestrial.FEC_7_8 : "7/8",
Anyone able to test above?Thanks.

Thanks a lot :)

It could be tested on fulan hardware and MastaG can test it ...

What about missing dvb-s2 FECs?

Open Vision sources: https://github.com/OpenVisionE2


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #36 Erik Slagter

  • PLi® Core member
  • 46,969 posts

+542
Excellent

Posted 22 June 2018 - 11:05

I've given up.


* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #37 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 22 June 2018 - 11:08

What about missing dvb-s2 FECs?


GOTO #3
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #38 Persian Prince

  • Senior Member
  • 1,982 posts

+247
Excellent

Posted 22 June 2018 - 11:10

What about missing dvb-s2 FECs?

GOTO #3

Ok I'll try submiting a patch to kernel itself which I never tried it before.

Open Vision sources: https://github.com/OpenVisionE2


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #39 Persian Prince

  • Senior Member
  • 1,982 posts

+247
Excellent

Posted 22 June 2018 - 11:15

@athoik

Regarding dvb-t2 did you check for FEC 6/7 and 8/9 also? As we have them in some places ...

Open Vision sources: https://github.com/OpenVisionE2


Re: Missing FECs (1/4, 1/3, 2/5) and (3/5, 4/5) #40 littlesat

  • PLi® Core member
  • 57,176 posts

+698
Excellent

Posted 22 June 2018 - 13:40

We could also consider to go for auto and just 'ignore' this 'non mandatory' detail....


WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W




Also tagged with one or more of these keywords: DVB-T2, DVB-S2

5 user(s) are reading this topic

0 members, 5 guests, 0 anonymous users