openATV enigma2
openATV is an open source SetTopBox Graphical user interface.
rtspstreamserver.h
Go to the documentation of this file.
1 #ifndef __DVB_RTSPSTREAMSERVER_H_
2 #define __DVB_RTSPSTREAMSERVER_H_
3 
6 #include <lib/nav/core.h>
7 #include <lib/dvb/db.h>
8 
9 #define PROTO_RTSP_UDP 1
10 #define PROTO_RTSP_TCP 2
11 #define PROTO_HTTP 3
12 
13 #ifndef SWIG
14 class eRTSPStreamServer;
15 
17 {
18  protected:
20  int encoderFd;
21  int streamFd;
23 
25  std::string m_remotehost;
26  std::string m_serviceref;
28  int proto;
29  int freq, pol, sys;
31  int buf_size;
33  uint64_t time_addsr;
36  bool first;
37  void notifier(int);
39  std::set<int> pids;
40  std::map<int, eServiceReferenceDVB> pid_sr;
41  std::string request;
42  std::set<eServiceReferenceDVB> not_cached_sr;
43  int src, fe;
48 
49  std::map<eServiceReferenceDVB, eDVBServicePMTHandler *> active_services;
50 
52  {
53  // stopStream();
54  }
55  void tuneFailed()
56  {
57  // stopStream();
58  }
59  virtual void eventUpdate(int event);
60  int satip2enigma(std::string satipstr);
61  int getOrbitalPosition(int, int);
62  void init_rtsp();
63  void update_pids();
64  void add_pid(int p);
65  void del_pid(int p);
71  std::string searchServiceRef(int sys, int freq, int pol, int orbital_position, int sid);
74  void update_service_list();
75  int set_demux_buffer(int size);
76  void process_pids(int op, const std::string &pid_str);
77  std::string get_current_timestamp();
78  void http_response(int sock, int rc, const std::string &ah, const std::string &desc, int cseq, int lr);
79  std::string describe_frontend();
80  void getFontends(int &dvbt, int &dvbt2, int &dvbs2, int &dvbc, int &dvbc2);
81 
82  public:
83  void stopStream();
84  eRTSPStreamClient(eRTSPStreamServer *handler, int socket, const std::string remotehost);
86 
87  void start();
88  std::string getRemoteHost();
89  std::string getServiceref();
90  bool isUsingEncoder();
91 };
92 #endif
93 
95 {
96  DECLARE_REF(eRTSPStreamServer);
97  static eRTSPStreamServer *m_instance;
98 
100 
101  void newConnection(int socket);
102 
103 #ifdef SWIG
106 #endif
107  public:
108 #ifndef SWIG
111 
112  void connectionLost(eRTSPStreamClient *client);
113 #endif
114 
115  static eRTSPStreamServer *getInstance();
116  void stopStream();
117  PyObject *getConnectedClients();
118 };
119 
120 #endif /* __DVB_STREAMSERVER_H_ */
Definition: dvb.h:278
Definition: db.h:14
Definition: frontendparms.h:166
Definition: frontendparms.h:78
Definition: frontend.h:13
Definition: frontendparms.h:20
Definition: frontendparms.h:109
Definition: demux.h:99
Definition: demux.h:141
Definition: servicedvbstream.h:13
Definition: rtspstreamserver.h:17
std::string describe_frontend()
Definition: rtspstreamserver.cpp:897
int addCachedPids(ePtr< eDVBService > service, eServiceReferenceDVB s)
Definition: rtspstreamserver.cpp:469
int getOrbitalPosition(int, int)
Definition: rtspstreamserver.cpp:175
void start()
Definition: rtspstreamserver.cpp:131
int fe
Definition: rtspstreamserver.h:43
int stream_id
Definition: rtspstreamserver.h:30
eServiceReferenceDVB * getServiceforPid(int p)
int sys
Definition: rtspstreamserver.h:29
void stopStream()
Definition: rtspstreamserver.cpp:1254
int src
Definition: rtspstreamserver.h:43
virtual void eventUpdate(int event)
Definition: rtspstreamserver.cpp:707
int transponder_id
Definition: rtspstreamserver.h:34
~eRTSPStreamClient()
Definition: rtspstreamserver.cpp:86
ePtr< eDVBResourceManager > m_mgr
Definition: rtspstreamserver.h:68
char clear_previous_channel
Definition: rtspstreamserver.h:32
void add_pid(int p)
Definition: rtspstreamserver.cpp:653
std::string searchServiceRef(int sys, int freq, int pol, int orbital_position, int sid)
Definition: rtspstreamserver.cpp:218
std::string getServiceref()
Definition: rtspstreamserver.cpp:1266
int satip2enigma(std::string satipstr)
Definition: rtspstreamserver.cpp:348
eRTSPStreamServer * parent
Definition: rtspstreamserver.h:19
int set_demux_buffer(int size)
Definition: rtspstreamserver.cpp:695
bool running
Definition: rtspstreamserver.h:35
void update_pids()
Definition: rtspstreamserver.cpp:668
void http_response(int sock, int rc, const std::string &ah, const std::string &desc, int cseq, int lr)
Definition: rtspstreamserver.cpp:759
void update_service_list()
Definition: rtspstreamserver.cpp:485
int proto
Definition: rtspstreamserver.h:28
ePtr< eSocketNotifier > rsn
Definition: rtspstreamserver.h:38
std::string get_current_timestamp()
Definition: rtspstreamserver.cpp:744
void process_pids(int op, const std::string &pid_str)
Definition: rtspstreamserver.cpp:305
eRTSPStreamClient(eRTSPStreamServer *handler, int socket, const std::string remotehost)
Definition: rtspstreamserver.cpp:77
bool first
Definition: rtspstreamserver.h:36
eDVBChannel * m_channel
Definition: rtspstreamserver.h:70
eDVBRecordStreamThread * streamThread
Definition: rtspstreamserver.h:24
std::map< eServiceReferenceDVB, eDVBServicePMTHandler * > active_services
Definition: rtspstreamserver.h:49
bool isUsingEncoder()
Definition: rtspstreamserver.cpp:1271
eDVBFrontendParametersSatellite sat
Definition: rtspstreamserver.h:44
std::string getRemoteHost()
Definition: rtspstreamserver.cpp:1261
void del_pid(int p)
Definition: rtspstreamserver.cpp:678
int encoderFd
Definition: rtspstreamserver.h:20
std::set< eServiceReferenceDVB > not_cached_sr
Definition: rtspstreamserver.h:42
void getFontends(int &dvbt, int &dvbt2, int &dvbs2, int &dvbc, int &dvbc2)
Definition: rtspstreamserver.cpp:137
eDVBFrontendParameters * fp
Definition: rtspstreamserver.h:67
eDVBRecordFileThread * mr
Definition: rtspstreamserver.h:22
std::string request
Definition: rtspstreamserver.h:41
uint64_t time_addsr
Definition: rtspstreamserver.h:33
void tuneFailed()
Definition: rtspstreamserver.h:55
int freq
Definition: rtspstreamserver.h:29
bool tune_completed
Definition: rtspstreamserver.h:35
eServiceReferenceDVB * new_service_ref(int sid)
eDVBFrontendParametersTerrestrial ter
Definition: rtspstreamserver.h:45
eDVBFrontendParametersATSC atsc
Definition: rtspstreamserver.h:47
void streamStopped()
Definition: rtspstreamserver.h:51
void init_rtsp()
Definition: rtspstreamserver.cpp:108
std::string m_serviceref
Definition: rtspstreamserver.h:26
int session_id
Definition: rtspstreamserver.h:30
int streamFd
Definition: rtspstreamserver.h:21
std::map< int, eServiceReferenceDVB > pid_sr
Definition: rtspstreamserver.h:40
bool m_useencoder
Definition: rtspstreamserver.h:27
void notifier(int)
Definition: rtspstreamserver.cpp:989
std::set< int > pids
Definition: rtspstreamserver.h:39
eDVBDB * m_dvbdb
Definition: rtspstreamserver.h:69
int buf_size
Definition: rtspstreamserver.h:31
std::string m_remotehost
Definition: rtspstreamserver.h:25
eDVBFrontendParametersCable cab
Definition: rtspstreamserver.h:46
int pol
Definition: rtspstreamserver.h:29
Definition: rtspstreamserver.h:95
~eRTSPStreamServer()
Definition: rtspstreamserver.cpp:1287
static eRTSPStreamServer * getInstance()
Definition: rtspstreamserver.cpp:1295
void stopStream()
Definition: rtspstreamserver.cpp:1316
PyObject * getConnectedClients()
Definition: rtspstreamserver.cpp:1325
void connectionLost(eRTSPStreamClient *client)
Definition: rtspstreamserver.cpp:1307
eRTSPStreamServer()
Definition: rtspstreamserver.cpp:1280
Definition: serversocket.h:7
Definition: idvb.h:192
op
Definition: lcd.h:14
int socket(int domain, int type, int protocol)
Definition: libopen.c:165
size
Definition: Plugins/SystemPlugins/PositionerSetup/log.py:16
@ rc
Definition: init_num.h:14
p
Definition: upgrade.py:63
Definition: dvb/scan.h:16