Giter Site home page Giter Site logo

rofafor / vdr-plugin-iptv Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 7.0 494 KB

IPTV plugin for the Video Disk Recorder (VDR)

Home Page: http://www.saunalahti.fi/~rahrenbe/vdr/iptv/

License: GNU General Public License v2.0

Makefile 2.46% C 73.47% C++ 15.20% Shell 8.86%
plugin vdr

vdr-plugin-iptv's People

Contributors

pesintta avatar rofafor avatar tmn505 avatar unf avatar varaslt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

vdr-plugin-iptv's Issues

IPTV plugin misdetects SID change when used as a client to a Dreambox

I am using VDR with the IPTV plugin as a client to my (DVB-S-)Dreambox. This worked out of the box but with one glitch: The EPG data was wrong on many channels.
The reason for that is that a SID change is misdetected by the plugin:
Feb 21 17:31:39 work vdr[55005]: [55012] changing id of channel 13 (BR Fernsehen Süd (Dreambox)) from 1-1101-28107-0 to 1-1101-28106-0
When I remove the line in device.c which attaches the filter implemented by cSidScanner, the problem is gone.
To my understanding of the code in sidscanner.c, the problem is, that the Dreambox provides the original PAT from the satellite transponder, which references multiple SIDs (the SIDs of all channels broadcasted on this transponder). The IPTV plugin then seems to take the very first SID it sees and falsely detects a SID change.
A very easy fix would be to implement some switch which makes the use of cSidScanner optional.
A better fix would be to look for ALL SIDs provided by the PAT (and NIT) and see if the SID provided by channels.conf is among them and if it is, do not change it.
The "most correct" but also most complex fix would be to verify which SID is correct, you could Add() the PMT PID of all provided SIDs to your filter and then look which PMT is really contained in the stream and take its SID.

compiling iptv with gcc6 on upcoming Fedora 24

the compilation fails with following error message:

In file included from live.cpp:10:0:
live.h:36:7: warning: 'template class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
std::auto_ptr< ServerThread > m_thread;
^~~~~~~~
In file included from /usr/include/c++/6.0.0/memory:81:0,
from live.h:4,
from live.cpp:10:
/usr/include/c++/6.0.0/bits/unique_ptr.h:49:28: note: declared here
template class auto_ptr;
^~~~~~~~

  1. - --- thread.h.orig 2016-02-06 20:52:26.251099585 +0100
  2. - +++ thread.h 2016-02-06 20:53:01.987127117 +0100
  3. - @@ -19,7 +19,7 @@
  4. - virtual void Action();
  5. -
  6. - private:
  7. - - std::auto_ptr< tnt::Tntnet > m_server;
  8. - + std::unique_ptr< tnt::Tntnet > m_server;
  9. - };
  10. -
  11. - } // namespace vdrlive
  12. - --- live.h.orig 2016-02-06 23:37:29.210156633 +0100
  13. - +++ live.h 2016-02-06 23:38:25.185089114 +0100
  14. - @@ -33,7 +33,7 @@
  15. - static std::string m_configDirectory;
  16. - static std::string m_resourceDirectory;
  17. -
  18. - - std::auto_ptr< ServerThread > m_thread;
  19. - + std::unique_ptr< ServerThread > m_thread;
  20. - };
  21. -
  22. - } // namespace vdrlive

but then the next error message appears:

In file included from /usr/include/c++/6.0.0/memory:81:0,
from live.h:4,
from live.cpp:10:
/usr/include/c++/6.0.0/bits/unique_ptr.h: In instantiation of 'void std::unique_ptr<_Tp, _Dp>::reset(std::unique_ptr<_Tp, _Dp>::pointer) [with _Tp = vdrlive::ServerThread; _Dp = std::default_deletevdrlive::ServerThread; std::unique_ptr<Tp, Dp>::pointer = vdrlive::ServerThread]':
live.cpp:60:35: required from here
/usr/include/c++/6.0.0/bits/unique_ptr.h:342:6: error: call of overloaded 'swap(vdrlive::ServerThread
&, vdrlive::ServerThread*&)' is ambiguous
swap(std::get<0>(_M_t), __p);

In file included from /usr/include/c++/6.0.0/bits/stl_pair.h:59:0,
                 from /usr/include/c++/6.0.0/bits/stl_algobase.h:64,
                 from /usr/include/c++/6.0.0/bits/char_traits.h:39,
                 from /usr/include/c++/6.0.0/string:40,
                 from i18n.h:4,
                 from live.cpp:9:
/usr/include/c++/6.0.0/bits/move.h:179:5: note: candidate: typename std::enable_if<std::__and_<std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> >::value>::type std::swap(_Tp&, _Tp&) [with _Tp = vdrlive::ServerThread*; typename std::enable_if<std::__and_<std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> >::value>::type = void]
     swap(_Tp& __a, _Tp& __b)
     ^~~~
In file included from /usr/include/vdr/i18n.h:14:0,
                 from /usr/include/vdr/config.h:19,
                 from live.cpp:7:
/usr/include/vdr/tools.h:57:31: note: candidate: void swap(T&, T&) [with T = vdrlive::ServerThread*]
 template<class T> inline void swap(T &a, T &b) { T t = a; a = b; b = t; }

Feature Request - Python script to generate channels.conf

I have been using VDR for over 12 years and I use the VDR-IPTV plugin with my HDHomeRun Prime here in the US for paid cable tv. In the past creating a channels.conf took immense work getting the vpid and apids correct. As the issue says this is just a feature request if it would be possible to create a python script to scan the HDHR and generate a channels.conf. An example script is here but generates an m3u:

https://gist.github.com/JoshKastang/88d5081dfdbaaf04092c

bool cIptvDevice::SetChannelDevice: Support NULL Channel

Please support the NULL Channel in cIptvDevice::SetChannelDevice

See:

https://www.vdr-portal.de/forum/index.php?thread/136284-patch-unbenutzte-frontends-schlie%C3%9Fen/&postID=1371712#post1371712

virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView);
///< Sets the device to the given channel (actual physical setup).
///< If Channel is NULL, this means the device is no longer needed and may
///< turn itself into a power saving mode, if possible. The device must,
///< however, be ready for the next call with a non-NULL Channel at any
///< time.

IPTV blocked when recording 2 IPTV tuner and releases only one again

Hello

I run a VDR server 2.4 with the IPTV plugin Headless and in the search for the cause of image interference, I noticed that my VDR server partially recordings still another tuner occupied and this synonymous only releases when you close the VDR server. I think I have solved the problem with the image noise and this problem does not hang together. I use the suspendoutput on my server so normally no tuner is used after a recording from VDR. In the Fritz box, I noticed in the statistics but this does not always work and sometimes bandwidth is still used. In addition, I noticed that you count up under "netstat -su" from the error occur the "packet receive errors" or "receive buffer errors".

My VDR Server 2.4 is self-compiled. As a test I installed a minimal VDR 2.4 server from Tobi on a different system and could adjust the error there without suspendoutput. The error does not occur generally so I have already tested quite a bit. It does not matter if I put the timer over the live plugin or it is set by epgsearch. However, the error does not occur when recording on the start immediately but especially in recordings that are a little further in the future. I've already disabled the epgscan and the feature that VDR synced to other VDRs.

Anyone could advance an idea that might be and how to prevent that? This will unnecessarily bandwidth occupied by my DSL connection.

Sorry for my english it's translate with google.

here you can see logfiles:
https://www.vdr-portal.de/forum/index.php?thread/132056-vdr-mit-iptv-blockiert-bei-aufnahme-2-iptv-tuner-und-gibt-nur-einen-wieder-frei/&postID=1306860#post1306860
https://www.vdr-portal.de/forum/index.php?thread/132056-vdr-mit-iptv-blockiert-bei-aufnahme-2-iptv-tuner-und-gibt-nur-einen-wieder-frei/&postID=1306861#post1306861

The first shot does not have the problem. On the second shot you can see that 51 seconds before the actual timer, a second channel is occupied. This remains occupied as long as and causes the problem until I finish the VDR.

Thanks in advance

Greeting dile :)

More EPG than just now and next?!

Hello,

I like this plugin very much. It works very reliably. I have a few more questions.
—> EIT scanning functionality is disabled by default. (Readme)
How can I activate it completely? I want more EPG, at least for 1 or 2 days.
How can I create 2 x IPTV devices? 1 device for LiveTV and the 2 device for one recording. Or is that not necessary?

Best regards

EXT stream issues with Xenial

I'm using some 3rd party HLS streams (for example http://62.113.210.250/medienasa-live/mdf1_high/playlist.m3u8) with mostly standard configuration of VDR and setup based on your readme.
I've setup the complete DVR backend as headless Docker container. Regardless of using distribution packages of VDR or PPA packages (for example from Frodo) or compiling it on my own, regardless of using latest VDR 2.4.0 or last stable 2.2.0... When setting up VDR on Ubuntu Trusty 14.04 all is fine. The above HLS stream can be played via vlc2iptv without any issues on a remote machine.

But when switching to Ubuntu Xenial with exactly the same VDR config, there are massive interruptions and artefacts when playing the stream on my remote laptop via VLC. This affects, like I said, distribution packages and self compiled versions as well as V2.4.0 and V2.2.0. I understand that this could not be related to your plugin, but can you reproduce this behavior?

I forgot to mention, that I get a lot of errors like "mpeg2video: rc buffer underflow" when playing this stream if VDR runs on Xenial.

iptv plugin for vdr 2.6

Hello,

what about a version of iptv for vdr 2.6?
An vdr-plugin-iptv is missing in debian bookworm, which is based on vdr 2.6

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.