Skip to content

Commit 302fa2e

Browse files
author
lordjaxom
committed
Initial revision
0 parents  commit 302fa2e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+21399
-0
lines changed

CONTRIBUTORS

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Special thanks go to the following persons (if you think your name is missing
2+
here, please send an email to [email protected]):
3+
4+
The Metzler Brothers
5+
because I took a whole lot of code from their libdvbmpeg package
6+
7+
Angelus (DOm)
8+
for providing italian language texts
9+
for reporting problems with the Elchi-Patch
10+
11+
Michal
12+
for sending a patch to select the HTTP streamtype via remote
13+
14+
Rolf Ahrenberg
15+
for providing finnish language texts
16+
17+
Rantanen Teemu
18+
for providing vdr-incompletesections.diff
19+
20+
Thomas Keil
21+
for providing vdr-localchannelprovide.diff

COPYING

+340
Large diffs are not rendered by default.

HISTORY

+146
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
VDR Plugin 'streamdev' Revision History
2+
---------------------------------------
3+
4+
2004-??-??: Version 0.3.3
5+
6+
- dropped support for non-ts streaming in vdr-to-vdr clients
7+
- implemented packet buffer that seems to improve distortions
8+
- greatly re-worked device selection on server and client
9+
(vdr-to-vdr clients should behave exactly like clients with one card,
10+
can't test conditional access, though)
11+
- now printing an error and exiting if streamdevhosts.conf is not existing
12+
- increased client stream priority to 1
13+
- implemented remote schedule to program remote timers directly from schedule
14+
- the servers are turned on by default now
15+
- new setup parameters "Bind to IP" for both servers for binding to a specific
16+
interface
17+
- re-implemented section streaming (turned off by default, see setup menu)
18+
- implemented a possibility to prevent a shutdown when clients are connected
19+
(patch VDR with patches/vdr-pluginactivity.diff if you want this feature)
20+
- implemented channel listing through channels.htm(l) URI
21+
22+
????-??-??: Version 0.3.2
23+
24+
... has myteriously disappeared :-)
25+
26+
2004-02-16: Version 0.3.1 (unstable)
27+
28+
- Added finnish language texts (thanks to Rolf Ahrenberg)
29+
- Increased all ringbuffer sizes to 3 MB
30+
- Autodetecting VDR 1.2.x, 1.2.x with AutoPID and 1.3.x on compilation
31+
- Server is only restarted if necessary after confirming setup
32+
- Implemented PID-based streaming (only needed PIDs are transferred instead of
33+
all PIDs of the requested channel) (configurable)
34+
- Implemented an editor for remote timers
35+
- Implemented manual EPG synchronization from client
36+
- Implemented Server Suspend remotely from client (configurable)
37+
- Implemented an IP-Editor for the setup menu
38+
- Separated Client and Server into two PlugIns
39+
- Increased initial number of clients to five
40+
- Implemented host-based authorization (syntax is equal to svdrphosts.conf)
41+
- Removed two irritating messages that appeared sometimes while exiting VDR
42+
- Implemented "Choose, Always, Never" for Suspend Mode, so it can be configured
43+
to behave like 0.2.0 (Always), 0.3.0 (Choose) or completely different (Never)
44+
- Added missing translation entries
45+
- Added PlugIn description to translation table
46+
- Fully upgraded to VDR 1.3.X regarding threading (but still works with 1.2.6)
47+
- Reworked manual (almost everything)
48+
49+
2003-10-10: Version 0.3.0 (unstable)
50+
51+
- Implemented "Suspend Live TV" in the VDR server (configurable)
52+
- Reimplemented choice of device for live streaming (better for switching on
53+
client, and server doesn't loose live-tv)
54+
- Added missing translation entries
55+
- Increased client's streaming buffer size from 1 to 3 MB
56+
- Updated installation instructions (including a patch to VDR that is
57+
recommended currently)
58+
- Updated manual
59+
60+
2003-10-04: Version 0.2.0
61+
62+
- Removed those silly warnings in the toolbox-headers
63+
- Implemented intelligent buffer overflow logging (doesn't flood syslog)
64+
- Implemented EPG synchronization in the VDR client (configurable)
65+
- Station name is transmitted in radio streaming now (Shoutcast-format).
66+
67+
2003-09-24: Version 0.1.1beta1
68+
69+
- Restructured remuxer code
70+
- Added an ES-remuxer for radio channels (currently only manually)
71+
72+
2003-09-20: Version 0.1.0
73+
74+
- Fixed thread-abortion timeout in server thread
75+
76+
2003-08-31: Version 0.1.0beta4
77+
78+
- Added italian language texts (thanks to Angelus (DOm))
79+
- Added a missing i18n translation (thanks to DOm)
80+
- Added an #ifdef so the setup menu is displayed correctly with ElchiAIO
81+
(thanks to DOm for reporting this one)
82+
- It's possible to select the HTTP streamtype remotely, specified in the
83+
URL in addition to the old behaviour (thanks to Michal Novotny)
84+
- Fixed creation ob remuxer objects in the server
85+
- Fixed handling of timeout in cTBSelect
86+
87+
2003-06-08: Version 0.1.0beta3
88+
89+
- Fixed setup menu - now the cursor starts at the first visible entry
90+
- Added PS streaming for HTTP (should work with most players now)
91+
- Debugging symbols are only compiled with DEBUG=1 set
92+
93+
2003-06-06: Version 0.1.0beta2
94+
95+
- Added an #ifdef so this PlugIn will compile cleanly with the next
96+
AUTOPID-patches
97+
- Added categories to the menu
98+
- Fixed segfault when closing the menu with OK
99+
- Added an AnalogTV section to the README
100+
- Added some missing i18n entries
101+
- Corrected client reinitialization code (when changing client settings)
102+
- Added PS streaming for HTTP (should work with most players now)
103+
- Added -D_GNU_SOURCE to the Makefile (.......)
104+
105+
2003-06-03: Version 0.1.0beta1
106+
107+
- Replaced the toolbox with a current version
108+
- Rewrote the server core from scratch
109+
- Rewrote the client core from scratch
110+
- Reduced the size of blocks processed in a transceiver turn to 10 TS packets
111+
- Added TS transmission for HTTP (configurable via setup)
112+
- Most client settings can be done on-the-fly now
113+
- MIME type for radio channels now "audio/mpeg" instead of "video/mpeg"
114+
(still doesn't work really)
115+
116+
2003-05-08: Version 0.0.3beta1
117+
118+
- Server stops correctly on VDR exit
119+
- Fixed a race condition when several threads access the client device
120+
- Made server code more modular
121+
- Structured the directories
122+
- Fixed a bug in informational log-message
123+
- Added Apid2, Dpid1 and Ppid in TS mode (silly me;) )
124+
125+
2003-05-03: Version 0.0.2
126+
127+
- Device is not deactivated anymore, since VDR does that itself
128+
- Server is correctly deactivated, so it can be faultlessly reactivated
129+
- Did some major code cleanup
130+
- Added new command to the PROTOCOL (to negotiate stream types)
131+
- Added the possibility to stream TS between two VDR's (which adds the
132+
possibility of having AC3, Teletext etc. on the client) - this is
133+
autonegotiated
134+
- Streamtype can be changed in the setup menu, if TS works too unreliable
135+
- Fixed a bug in multi-threaded device operation
136+
- Sharing an epg.data with a server will be possible even if there is no
137+
DVB-Device present
138+
- Added a basic HTTP daemon to the server code
139+
140+
2003-03-17: Version 0.0.1a
141+
142+
- Corrected some bugs in the README and on the homepage *g*
143+
144+
2003-03-17: Version 0.0.1
145+
146+
- Initial revision.

Makefile

+136
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
#
2+
# Makefile for a Video Disk Recorder plugin
3+
#
4+
# $Id: Makefile,v 1.1 2004/12/30 22:43:58 lordjaxom Exp $
5+
6+
# The official name of this plugin.
7+
# This name will be used in the '-P...' option of VDR to load the plugin.
8+
# By default the main source file also carries this name.
9+
#
10+
PLUGIN = streamdev
11+
12+
### The version number of this plugin (taken from the main source file):
13+
14+
VERSION = $(shell grep 'const char \*VERSION *=' common.c | awk '{ print $$5 }' | sed -e 's/[";]//g')
15+
16+
### The C++ compiler and options:
17+
18+
CXX ?= g++
19+
CXXFLAGS ?= -W -Woverloaded-virtual
20+
21+
### The directory environment:
22+
23+
DVBDIR = ../../../../DVB
24+
VDRDIR = ../../..
25+
LIBDIR = ../../lib
26+
TMPDIR = /tmp
27+
28+
### Allow user defined options to overwrite defaults:
29+
30+
-include $(VDRDIR)/Make.config
31+
32+
### The version number of VDR (taken from VDR's "config.h"):
33+
34+
VDRVERSION = $(shell grep 'define VDRVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
35+
36+
### The name of the distribution archive:
37+
38+
ARCHIVE = $(PLUGIN)-$(VERSION)
39+
PACKAGE = vdr-$(ARCHIVE)
40+
41+
### Includes and Defines (add further entries here):
42+
43+
INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include -I.
44+
45+
DEFINES += -D_GNU_SOURCE
46+
47+
### The object files (add further files here):
48+
49+
COMMONOBJS = common.o i18n.o \
50+
\
51+
tools/file.o tools/source.o tools/select.o tools/shared.o tools/socket.o \
52+
tools/string.o tools/tools.o
53+
54+
CLIENTOBJS = $(PLUGIN)-client.o \
55+
\
56+
client/socket.o client/device.o client/setup.o client/menu.o \
57+
client/remote.o client/assembler.o client/filter.o
58+
59+
60+
SERVEROBJS = $(PLUGIN)-server.o \
61+
\
62+
server/server.o server/connectionVTP.o server/connectionHTTP.o \
63+
server/componentHTTP.o server/componentVTP.o server/connection.o \
64+
server/component.o server/suspend.o server/setup.o server/streamer.o \
65+
server/livestreamer.o server/livefilter.o \
66+
\
67+
remux/tsremux.o remux/ts2ps.o remux/ts2es.o
68+
69+
ifdef DEBUG
70+
DEFINES += -DDEBUG
71+
CXXFLAGS += -g
72+
else
73+
CXXFLAGS += -O2
74+
endif
75+
76+
ifeq ($(shell test -f $(VDRDIR)/fontsym.h ; echo $$?),0)
77+
DEFINES += -DHAVE_BEAUTYPATCH
78+
endif
79+
80+
ifeq ($(shell test -f $(VDRDIR)/fontsym.c ; echo $$?),0)
81+
DEFINES += -DHAVE_BEAUTYPATCH
82+
endif
83+
84+
# HAVE_AUTOPID only applies if VDRVERSNUM < 10300
85+
ifeq ($(shell test -f $(VDRDIR)/sections.c ; echo $$?),0)
86+
DEFINES += -DHAVE_AUTOPID
87+
endif
88+
89+
libdvbmpeg/libdvbmpegtools.a: libdvbmpeg/*.c libdvbmpeg/*.cc libdvbmpeg/*.h libdvbmpeg/*.hh
90+
make -C ./libdvbmpeg libdvbmpegtools.a
91+
92+
### Implicit rules:
93+
94+
%.o: %.c
95+
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
96+
97+
# Dependencies:
98+
99+
MAKEDEP = g++ -MM -MG
100+
DEPFILE = .dependencies
101+
ifdef GCC3
102+
$(DEPFILE): Makefile
103+
@rm -f $@
104+
@for i in $(CLIENTOBJS:%.o=%.c) $(SERVEROBJS:%.o=%.c) $(COMMONOBJS:%.o=%.c) ; do \
105+
$(MAKEDEP) $(DEFINES) $(INCLUDES) -MT "`dirname $$i`/`basename $$i .c`.o" $$i >>$@ ; \
106+
done
107+
else
108+
$(DEPFILE): Makefile
109+
@$(MAKEDEP) $(DEFINES) $(INCLUDES) $(CLIENTOBJS:%.o=%.c) $(SERVEROBJS:%.o=%.c) \
110+
$(COMMONOBJS:%.o=%.c) > $@
111+
endif
112+
113+
-include $(DEPFILE)
114+
115+
### Targets:
116+
117+
all: libvdr-$(PLUGIN)-client.so libvdr-$(PLUGIN)-server.so
118+
119+
libvdr-$(PLUGIN)-client.so: $(CLIENTOBJS) $(COMMONOBJS) libdvbmpeg/libdvbmpegtools.a
120+
libvdr-$(PLUGIN)-server.so: $(SERVEROBJS) $(COMMONOBJS) libdvbmpeg/libdvbmpegtools.a
121+
122+
%.so:
123+
$(CXX) $(CXXFLAGS) -shared $^ -o $@
124+
@cp $@ $(LIBDIR)/$@.$(VDRVERSION)
125+
126+
dist: clean
127+
@-rm -rf $(TMPDIR)/$(ARCHIVE)
128+
@mkdir $(TMPDIR)/$(ARCHIVE)
129+
@cp -a * $(TMPDIR)/$(ARCHIVE)
130+
@tar czf $(PACKAGE).tgz --exclude SCCS -C $(TMPDIR) $(ARCHIVE)
131+
@-rm -rf $(TMPDIR)/$(ARCHIVE)
132+
@echo Distribution package created as $(PACKAGE).tgz
133+
134+
clean:
135+
@-rm -f $(COMMONOBJS) $(CLIENTOBJS) $(SERVEROBJS) $(DEPFILE) *.so *.tgz core* *~
136+
make -C ./libdvbmpeg clean

0 commit comments

Comments
 (0)