Giter Site home page Giter Site logo

wirbel-at-vdr-portal / w_scan_cpp Goto Github PK

View Code? Open in Web Editor NEW
12.0 1.0 1.0 220 KB

w_scan_cpp - test repo. No issues/pull requests here, for latest Version, see it's Homepage, https://www.gen2vdr.de/wirbel/w_scan_cpp/index2.html.

Home Page: https://www.gen2vdr.de/wirbel/w_scan_cpp/index2.html

License: GNU General Public License v2.0

C++ 90.14% Makefile 9.86%
vdr dvb satip librepfunc

w_scan_cpp's Introduction

w_scan_cpp-test

This is my test w_scan_cpp repo. No pull requests/issues/bugs here, use contact given in README.

For further details on w_scan_cpp, see it's Homepage.

This one is my workbench only.

w_scan_cpp's People

Contributors

lars18th avatar wirbel-at-vdr-portal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

lars18th

w_scan_cpp's Issues

Warning compiling "vdr-plugin-satip"

Hi @wirbel-at-vdr-portal ,

I write here because I see this "warning" compiling the main branch of the "w_scan_cpp" tool. However this affects the "vdr-plugin-satip", but the https://github.com/wirbel-at-vdr-portal/vdr-plugin-satip repository doesn't have open the issues section. And for this reason I post here (parhaps you'll want to open it on this repo):

-e  CXX /home/user/w_scan_cpp/vdr/PLUGINS/src/satip/sectionfilter.o
/home/user/w_scan_cpp/vdr/PLUGINS/src/satip/satip.c: In member function ‘virtual cString cPluginSatip::SVDRPCommand(const char*, const char*, int&)’:
/home/user/w_scan_cpp/vdr/PLUGINS/src/satip/satip.c:528:52: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 2 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
  528 |      return cString::sprintf("SATIP device count: %u", cSatipDevice::Count());
      |                                                   ~^   ~~~~~~~~~~~~~~~~~~~~~
      |                                                    |                      |
      |                                                    unsigned int           size_t {aka long unsigned int}
      |                                                   %lu

So, I suggest this fix:

diff --git a/satip.c b/satip.c
index 101f84d..e534609 100644
--- a/satip.c
+++ b/satip.c
@@ -525,7 +525,7 @@ cString cPluginSatip::SVDRPCommand(const char *commandP, const char *optionP, in
      return cSatipDevice::GetSatipStatus();
      }
   else if (strcasecmp(commandP, "CONT") == 0) {
-     return cString::sprintf("SATIP device count: %u", cSatipDevice::Count());
+     return cString::sprintf("SATIP device count: %lu", (unsigned long)cSatipDevice::Count());
      }
   else if (strcasecmp(commandP, "OPER") == 0) {
      cString mode;

What you think?

BUG: SATIP output in the generated output file

Hi @wirbel-at-vdr-portal ,

When using SAT>IP tuners the output file includes some debug header with tuner messages. Example:

./w_scan_cpp -ft -c DE --satip --satip-server '192.168.1.44:554|DVBT2-1|MySvr:0x08' -V > ./scan.m3u

Then at the start of the scan.m3u file you will get:

SATIP: Adding server '192.168.1.44|DVBT2-1|MySvr' Bind: default Filters: none CI: no Quirks: RtpOverTcp
SATIP: Creating device CardIndex=0 DeviceNumber=0 [device 0]
SATIP: Creating device CardIndex=1 DeviceNumber=1 [device 1]
SATIP: Detected 1 RTP packet error [device 0]
SATIP: Detected 16 RTP packet errors [device 0]
<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/">
   <title>DVB Playlist</title>
   <creator>w_scan_cpp</creator>
   <info>https://gen2vdr.de/wirbel/w_scan_cpp/index2.html</info>
   <trackList>
[...]

So please remove these SATIP lines from the beginning.
Thank you.

Troubles with multiple SAT>IP servers

Hi @wirbel-at-vdr-portal ,

I've a trouble with multiple SAT>IP servers in my home network. The current implementation is auto-detecting all SAT>IP servers in the LAN network. However, my assumption is that when using the command w_scan_cpp --satip-server 'myserver' only this server will be in use. But this assumption is false. The parameter --satip-server only adds the server to the list. And the tool will use any of the severs found. The problem is when the SAT>IP servers are different and we need to use just one.

Any idea (or suggestion) to overcome this trouble?
Thank you.

Troubles scanning DVB-T only networks with SAT>IP tuners

Hi @wirbel-at-vdr-portal ,

I'm using different SAT>IP DVB-T/T2 tuners in different countries. When the signal is DVB-T2 the tool works as expected. However, when scanning DVB-T only networks the program fails because it wants to tune DVB-T2 only. Any option to enforce using DVB-T only?

Note: The problem is that it first scans DVB-T2, and don't find anything, and after it wants to scan DVB-T. But this is a waste of time. The request is to scan DVB-T only disabling the first DVB-T2 scanning.

BUG when using "--satip-src" and "--output-VLC-satip"

Hi @wirbel-at-vdr-portal ,

When using at the same time the parameters "--satip-src" and "--output-VLC-satip", the output value of the src= is incorrect. It's always "1", instead of the corresponding X used in "--satip-src X".

And another question is how to achieve that all pids are included in the pids= list when using "--output-VLC-satip". In this case, some pids, like the CA PID are missing. It will be desirable to have an option to add all the pids associated to the service in the list.

Regards.

Semi-BUG: Reference of the XML DTD is missing

Hi @wirbel-at-vdr-portal ,

Inside the XML output the address of the DTD is missing:

<?xml version="1.0" ?>
<!DOCTYPE service_list SYSTEM "https://gen2vdr.de/wirbel/w_scan/dtd/service_list.dtd">

<!-- NOTE:
     if reading or writing w_scan XML file format:
        - please validate XML against DTD above.
        - indent each XML element
        - indent using three spaces, don't use <TAB> char to indent.
        - conform to requirements mentionend in DTD file.
 -->

Therefore, I recommend that you add the DTD file to the project source. And if you consider it acceptable, change the URL to the Github raw address. With this change the file will continue to be valid in the future.

And to improve the compatibility, remove the last space in the first line. It will be preferable to use: <?xml version="1.0"?>
Regards.

Parameter -C does not seem to work

I tried to use a specific character set via the parameter -C or --charset and neither seem to work. I always get the same message:

/*******************************************************************************

  • w_scan_cpp Version 20210218
    ******************************************************************************/

cannot understand '--charset'
Error reading command line arguments. Exit!

Discussion: "--output-VLC-satip" doesn't include all audio pids

Hi @wirbel-at-vdr-portal ,

This is referenced initially in #15, but it's a different question. So, I open a new bug report:

Original comment:

And another question is how to achieve that all pids are included in the pids= list when using "--output-VLC-satip". In this case, some pids, like the CA PID are missing. It will be desirable to have an option to add all the pids associated to the service in the list.

The problem is that with services with multiple audios, the pid list only includes the first audio track. Futhermore, subtitle pids aren't included. The same for CA pids. And other "non-detected" pids inside the PMT table.

I suggest, to almost fix the code of PrintVLCsatip() to include all the pids detected in the lists APIDs and DPIDs :

w_scan_cpp/OutputFormats.cpp

Lines 1195 to 1196 in a7bface

if (c.APIDs.Count() > 0) ss << ',' << c.APIDs[0].PID;
if (c.DPIDs.Count() > 0) ss << ',' << c.DPIDs[0].PID;

After that you perhaps wants to add the CA pids. And refactor the wirbelscan to include all the pids inside the PMT.

Regards.

Multiple output format at the same time

Hi @wirbel-at-vdr-portal ,

Any reason to not support multiple file outputs at the same time? The scanning time is long (between 10~20min.) and when doing some tests it will be useful to export in multiple formats. For example, I want to get XML, VLC-satip and DVB-Viewer at the same time.

Any idea to achieve this?
Thank you.

BUG: Incorrect NIT position calculation

Hi @wirbel-at-vdr-portal ,

Antoher bug to fix:

  • Sometimes you get the message NIT: WRONG SATELLITE:. The cause could be an incorrect calculus because code in the statemachine.cpp of the "wirbelscan" plugin. Here the code with the problem patched:
                 std::string is_wrong;
                 //if (abs(NitData.transport_streams[i]->OrbitalPos - initial->OrbitalPos) > 5)
                 if (abs(NitData.transport_streams[i]->OrbitalPos) - initial->OrbitalPos > 5)
                    is_wrong = "WRONG SATELLITE ( " + IntToStr(initial->OrbitalPos) + " | " + IntToStr(NitData.transport_streams[i]->OrbitalPos) + " ): ";
                 dlog(0, "NIT: " + is_wrong + "'" + s + "'" + 
                         ", NID = "  + IntToStr(NitData.transport_streams[i]->NID)  +
                         ", ONID = " + IntToStr(NitData.transport_streams[i]->ONID) +
                         ", TID = "  + IntToStr(NitData.transport_streams[i]->TID));

As you can see the problem is the incorrect bracket of the abs() function. In some cases the value of the NitData.transport_streams[i]->OrbitalPos is negative but identical to the value initial->OrbitalPos. Therefore what you want to do is get the ABS of the first operand and after compare the offset. Or perhaps you want to ABS both operands and check the difference. In any case I've added the log to print both values to be more easy to understand the problem.

I hope you want to fix this trouble.
Regards.

BUG: Scanning of some channels produce ilegal chars

Hi @wirbel-at-vdr-portal ,

This bug is related to the wirbelscan plugin:

  • When some channel has a empty language descriptor the lang data produced is incorrect.
  • Example: MC EU;MB Satellite:11075:VC34M5O25P0S1:S13.0E:30000:2010=27:2020=0xDBxFFx8C@3:0:0:3720:318:12800:0
  • Examining the PMT table of this channel I can see that the DescriptorLength of the Audio stream is 0.
  • However, in the source code it seems that you aren't considering this edge case (aka a descriptor with zero length).
  • I assume that then the content of the language code is random data, and therefore the value is incorrect.

Please, could you fix this error?
Thank you.

Comment about DVB-T2 PLP support

Hi @wirbel-at-vdr-portal ,

This is related to #17 , but I prefer to open a new issue to discuss about this specific question. Here the description of the problem:

  • When scanning using DVB-T2 the current behavior searches with different PLP values. First without it (single mode PLP), and after with values 1, 2 and 3. This has the consequence that for each frequency the tool scans four times for each frequency for DVB-T2, and in a second round for DVB-T. Therefore, the scan time could be slow.

Therefore, I have some ideas to improve this behaviour. And I want to commet with you:

  • First is if you think it's acceptable to add one parameter to disable the PLP loop. In almost all countries only single PLP mode is used at time. However, the default value could be to use it like now. But with the option to disable it. What you think?
  • The second idea is to add another (or the same) parameter to select the PLP range. In fact, the values could range from 1 to 255 (0 is single mode). This is also acceptable?
  • The third idea is to change the order of the scan. If DVB-T2 needs more than one test, why not scan first for DVB-T and after for DVB-T2?

I'm only suggesting that you expose your opinion. The reason is to not implement anything non-usable/non-acceptable.
Please comment.
Thank you.

How do I change the list of transponders?

I'm trying to use w_scan_cpp with a satip server to get a list of channels available through Hispasat. I have it running successfully, but it does not pick up all the channels. I think the issue is that the list of transponders might be incomplete. Does your project use the ones listed in /usr/share/dvb/dvb-s/Hispasat-30.0W or is it from a different list?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.