Commit Graph

306 Commits

Author SHA1 Message Date
schmirl efeac825cc FreeBSD compatibility (#435)
Modified Files:
	Makefile common.h libdvbmpeg/ctools.c server/connectionVTP.c
	tools/socket.c
2008-03-12 09:36:27 +00:00
schmirl eb6fbd3bbe TS PAT repacker for streamtype TS. The PAT shoudln't refer to PMTs we don't
transmit. Particularely causes problems with some settop boxes.

Thanks to Rolf Ahrenberg (#309)
2008-02-22 12:02:48 +00:00
schmirl cd558858e6 Fixed default target (suggested by rofafor - #430) 2008-02-11 16:13:46 +00:00
schmirl 46e007f456 Workaround which fixes tuning problems for VDR 1.5.x clients. These
sometimes send ABRT after TUNE. Clean solution wanted!
Thanks to alexw (#255)
2007-12-12 12:22:45 +00:00
schmirl 713c0564b7 VTP now also supports PS, PES and EXTERN.
Request for PS by mpanczyk for MTPCenter (#341)
Modified Files:
	server/connectionVTP.c server/connectionVTP.h
2007-09-21 12:45:31 +00:00
schmirl d0385f5252 fixes for some new warnings from gcc 4.3.0
- array subscript is above array bounds (real bug - might overwrite other var)
- deprecated conversion from string constant to 'char*'
- suggest explicit braces to avoid ambiguous 'else'

Thanks to Petri Hintukainen (#354)
Modified Files:
	common.c libdvbmpeg/cpptools.cc libdvbmpeg/remux.c
2007-09-21 11:55:56 +00:00
schmirl 17ff4d32e8 High load when client isn't accepting data fast enough. Bug report and
fix by Olli Lammi (#382).
2007-09-21 11:45:53 +00:00
schmirl c8bf0474f9 Client did not reconnect properly to server when server app restarts.
When Read() on the command channel failed, the buffer size was not
trimmed. Read() was never called again as the buffer appeared to be full. Fixes #322 reported by alexw.
2007-07-20 06:54:03 +00:00
schmirl e9bd0c96f3 Lock in ~cStreamdevDevice when shutting down (#355).
Thanks to Petri Hintukainen.
2007-07-20 06:46:47 +00:00
schmirl 60b44caf3d cRingBufferLinear::Read() will return 0 either if EOF is encountered
or if the buffer is full. We need to check the buffer space to distinguish
these two cases (#307).
2007-05-30 14:20:14 +00:00
schmirl bb1ac54c87 Set DSCP 41 on stream data packets. WMM capable WLAN accesspoints
should understand this and give precedence. For Internet streaming
it could be used by traffic shapers. Suggested by ollo@vdrportal (#237).
Modified Files:
	server/connectionHTTP.c server/connectionVTP.c tools/socket.c
	tools/socket.h
2007-05-09 09:12:42 +00:00
schmirl 2b103196d6 Check vasprintf return code (thanks to rofafor) 2007-05-07 12:25:11 +00:00
schmirl d93eec41f3 Fixed segfaults due to cTSBuffer disconnect detection workarounds (#260) 2007-05-07 12:18:18 +00:00
schmirl 7fdf0c6832 Fixed memory leak in buffer overflow situation (thanks to rofafor) 2007-05-07 11:43:23 +00:00
schmirl 8378d5a17c Removed duplicated code fragments probably caused by patches with too
few context lines
2007-04-26 06:25:13 +00:00
schmirl fdda49c9f3 server_live-filter_remove_setfilter.patch by Petri Hintukainen
- remove (now unused) cStreamdevLiveStreamer::SetFilter()
Modified Files:
	server/livestreamer.c server/livestreamer.h
2007-04-24 11:42:41 +00:00
schmirl d012504c3a server_connectionVTP-add-filter-stream.patch by Petri Hintukainen
- Add new stream for section filters data
2007-04-24 11:40:35 +00:00
schmirl 9994ecfd08 server_live-filter-streamer.patch by Petri Hintukainen
- Add cStreamdevFilterStreamer that is binded to current device, not channel
- new streamer can exist even when there is no active data connection (live view)
Modified Files:
	server/livestreamer.c server/livestreamer.h
2007-04-24 11:36:16 +00:00
schmirl 99d19c67d8 server_livefilter-add_public_Add_and_Del.patch by Petri Hintukainen
- Add public Add/Del members instead of friend class
2007-04-24 11:29:29 +00:00
schmirl 60b89e8646 client_device-sections-socket.patch by Petri Hintukainen
- Add separate data socket for sections data
- Sections data can be received when there is no active live view
  (-> EPG scans etc. can be executed during replay etc.)
2007-04-24 11:24:38 +00:00
schmirl 518886b08b client_filter-data-handling.patch by Petri Hintukainen
- regonize PUSI flag in TS packets (bullet-proof section start+end indicator)
- Use own TS buffer to read directly from socket, no need for ring buffer anymore
- Re-activate all active filters after re-connection to server
- Simplify thread start/stop/running detection to current VDR style
- Update "filter closed by VDR" detection (datagram sockets
  return different errno's than pipes)
- Deliver data to first matching and active filter (do not drop data if first
  matching filter has been closed, there is quite likely new filter for it)
- Add disconnect detection to avoid 100% CPU usage in cTSBuffer::Action()
Modified Files:
	client/filter.c client/filter.h
2007-04-24 11:23:16 +00:00
schmirl 52bf110aa9 server_ts-pat-pmt-filter.patch by Petri Hintukainen
- Add PAT, PMT and PCR to HTTP TS streams
- Dynamically add and remove all related pids (of channel) to TS stream
 -> DVB/teletect subtitles work in clients
 -> VLC can be used as client
 -> HDTV (MPEG4 / H.264) streaming is possible
 -> Client can select audio and subtitle tracks on the fly without re-connection -> Client can display "real" track names / languages

 - Add new member function to set all pids in one shot
  -> Receiver is not deleted, created and re-attached separately for every pid
   (this causes discontinous start and is anyway unnecessarily)

Modified Files:
	server/livestreamer.c server/livestreamer.h
2007-04-24 11:13:05 +00:00
schmirl 2e7fe3c337 server_livefilter-add_ts_pusi_flag.patch by Petri Hintukainen
- Add MPEG TS PUSI (payload start indicator) to first
  packet of each section
2007-04-24 11:06:12 +00:00
schmirl a0dfe7b20a server_connectionVTP-new-data.patch by Petri Hintukainen
- Add new data (LiveFilterStreamer and LiveFilterSocket)
- Misc cleanup
Modified Files:
	server/connectionVTP.c server/connectionVTP.h
2007-04-24 11:03:41 +00:00
schmirl ac4c391c43 client_socket-close_data_connection.patch by Petri Hintukainen
- Add member function to close data connection
Modified Files:
	client/socket.c client/socket.h
2007-04-24 10:57:34 +00:00
schmirl 2a4370b6a0 Add live filter stream type 2007-04-24 10:50:13 +00:00
schmirl 0a59f04d60 client_device-disconnect_detection-fix.patch by Petri Hintukainen
- Try to detect data stream disconnections to
  avoid 100% CPU-usage in cTSBuffer::Action()
2007-04-24 10:46:21 +00:00
schmirl d5a38b3213 client_device-vdr-1.5.1-fixes.patch by Petri Hintukainen (#219)
- VDR 1.5.0 calls some device members in different order and
  streamdev can't currently handle this.
- do not trust in OpenDvr/CloseDvr, instead keep count of active PIDs,
  open data connection when it is needed and close it only when there
  are no active PIDs
  (closing data connection unsubscribes all pids at server end)
- some sanity checks on server side
Modified Files:
	client/device.c client/device.h server/connectionVTP.c
2007-04-24 10:43:40 +00:00
schmirl 0553fce43c based on server_livefilter-streamer-type.patch by Petri Hintukainen
- Use cStreamer (base class) instead of cLiveStreamer
  (no need to know streamer type)
  * works with cLiveStreamer and cLiveFilterStreamer
  * avoid circular dependency
- visibility of cStreamdevLiveReceiver: Moved from livestreamer.h -> .c
Modified Files:
	server/livefilter.c server/livefilter.h server/livestreamer.c
	server/livestreamer.h
2007-04-23 15:44:55 +00:00
schmirl 6dd3cc412e client_section-pipe-carbage-collector.patch by Petri Hintukainen
- Run section filter carbage collector when adding new filter.
  Carbage collector closes all filters that have already been
  closed by local VDR section handler.
  (without this, closed section filters are removed only when
  they receive data from server. If they wont, ...).
- Add locking to list handling (list is accessed from separate threads)
Modified Files:
	client/filter.c client/filter.h
2007-04-23 12:52:28 +00:00
schmirl 5f54824d3d Fixed whitespaces. No functional changes 2007-04-23 12:01:33 +00:00
schmirl 0a7608faba client_invalid-section-data_and_pipe-overflow.patch by Petri Hintukainen
- Reset section data unpacker only after first non-full TS packet
  (last TS packet of section is typically not full
- Do not close filter if socket buffer is full (EAGAIN, EWOULDBLOCK)
  (closing results in 100% CPU usage in VDR section handler)
2007-04-23 12:00:27 +00:00
schmirl e55981c9e1 client_device.patch by Petri Hintukainen
- Implement virtual IsTunedToTransponder()
- Return true from Provides... functions
Modified Files:
	client/device.c client/device.h
2007-04-23 11:42:16 +00:00
schmirl 35bfac507b client_filter-close-fix.patch by Petri Hintukainen
- Do not close receiving side of section pipe. Ownership of handle
  has been transferred to VDR section handler when filter was opened.
  Closing handle twice results closing random file handle. If this
  handle is laready used by another section filter pipe (very likely),
  VDR section handler CPU usage will rise to 100%.
2007-04-23 11:33:26 +00:00
schmirl c515e82f04 Fixed typos 2007-04-23 11:30:55 +00:00
schmirl 130d7dcc08 client_section-filter-socket.patch by Petri Hintukainen
- Use datagram mode socket instead of pipe to feed
  section data to client VDR section handler
-> preserve section data block boundaries
2007-04-23 11:25:59 +00:00
schmirl 313da9682d client_filter-visibility.patch by Petri Hintukainen
- Move cStreamdevFilter definition from filter.h to filter.c
- Add IsClosed() and Reset() members to cStreamdevFilter:
  * IsClosed() returns true if filter was closed by VDR
  * Reset() discards (incomplete) queued section data

Modified Files:
	client/filter.c client/filter.h
2007-04-23 11:23:15 +00:00
schmirl 3ceb716ea9 Use compiler flag -Wall. Cleanup code as necessary.
(#171 Thanks to Rolf Ahrenberg)
Modified Files:
	Makefile streamdev-server.c server/connection.h
	server/connectionHTTP.c server/connectionVTP.c tools/source.c
2007-04-16 11:01:02 +00:00
schmirl 69b754bef9 Close pipe when externremux.sh is gone. Fixes high CPU load problem (#235) 2007-04-02 10:35:29 +00:00
schmirl 525574f9b0 Close connection when client is gone. Fixes high CPU load problem (#201)
Modified Files:
	server/connection.h server/connectionHTTP.h
	server/connectionVTP.h server/server.c server/streamer.c
	server/streamer.h tools/select.c tools/select.h tools/source.c
2007-04-02 10:32:34 +00:00
schmirl cd7d4e3588 Silence warning about overloaded namespace (#244, thanks to rofafor) 2007-03-19 12:06:13 +00:00
schmirl 87e24499e3 Silence warnings caused by implicit casts between uint8_t and char.
In most places casting was easy to avoid as the variables have been
casted forth and back between both data types. Anyway - the affected
functions are never used by streamdev.
2007-03-19 12:05:25 +00:00
schmirl 1e9e200e8a Fixed null pointers 2007-03-02 15:27:07 +00:00
schmirl 59a4969b3f Fixed indenting - no code change 2007-02-19 12:09:30 +00:00
schmirl e86d019878 Added commandline switch -r/--remux for specifying name of externremux script (thanks to Rolf Ahrenberg)
Modified Files:
	streamdev-server.c streamdev-server.h remux/extern.c
	remux/extern.h
2007-02-19 12:08:16 +00:00
schmirl e3a4418453 Compatibility for vdr < 1.3.38 (#169) 2007-01-15 12:15:12 +00:00
schmirl 335660b62c API changes of VDR 1.5.0 (#219)
Modified Files:
	server/connection.c server/livestreamer.c
	server/livestreamer.h
2007-01-15 12:00:19 +00:00
schmirl 970bf59cc2 Indenting - no code changes 2007-01-15 11:45:48 +00:00
schmirl 56571d5879 Log throttle for connection failure messages (#183) 2007-01-15 11:41:46 +00:00
schmirl ab342d37b3 Replace uint64 by uint64_t (#200) 2007-01-15 11:36:37 +00:00