Browse Source

Release tomcast as free software.

We've been using it internally for number of years and finally
I have the time to release it publicly.

Enjoy!
Georgi Chorbadzhiyski 10 years ago
parent
commit
d11a284ecf
5 changed files with 1212 additions and 0 deletions
  1. 26
    0
      ChangeLog
  2. 36
    0
      Makefile
  3. 8
    0
      TODO
  4. 16
    0
      channels.conf-example
  5. 1126
    0
      tomcast.c

+ 26
- 0
ChangeLog View File

@@ -0,0 +1,26 @@
1
+v1.20 | 17 Aug 2013
2
+  * First publicly released version.
3
+
4
+v1.15 | 13 Sep 2012
5
+  * Add option to send reset packets when source have been reconnected.
6
+    These packets prevent VLC from hanging.
7
+
8
+v1.14 | 16 May 2012
9
+  * Set send buffer size.
10
+
11
+v1.13 | 01 Mar 2012
12
+  * Use mpeg_sync on connect.
13
+  * Update libfuncs to latest version from upstream repo.
14
+
15
+v1.12 | 10 Dec 2010
16
+  * Allow URL to contain anything
17
+
18
+v1.11 | 21 Jul 2010
19
+  * Send X-Smart-Client: yes in GET request
20
+
21
+v1.10 | 24 Feb 2010
22
+  * Check for read errors and reconnect
23
+  * Check for write errors and reconnect udp socket if there are any
24
+
25
+v1.00 | 09 Feb 2010
26
+  * First version.

+ 36
- 0
Makefile View File

@@ -0,0 +1,36 @@
1
+CC = $(CROSS)$(TARGET)gcc
2
+STRIP = $(CROSS)$(TARGET)strip
3
+CFLAGS = -ggdb -Wall -Wextra -Wshadow -Wformat-security -Wno-strict-aliasing -O2
4
+RM = /bin/rm -f
5
+Q = @
6
+
7
+LIBS = -lpthread
8
+FUNCS_DIR = libfuncs
9
+FUNCS_LIB = $(FUNCS_DIR)/libfuncs.a
10
+
11
+tomcast_OBJS =  tomcast.o $(FUNCS_LIB)
12
+
13
+all: tomcast
14
+
15
+$(FUNCS_LIB):
16
+	$(Q)echo "  MAKE	$(FUNCS_LIB)"
17
+	$(Q)$(MAKE) -s -C $(FUNCS_DIR)
18
+
19
+tomcast: $(tomcast_OBJS)
20
+	$(Q)echo "  LINK	tomcast"
21
+	$(Q)$(CC) $(CFLAGS) $(tomcast_OBJS) $(LIBS) -o tomcast
22
+
23
+%.o: %.c
24
+	$(Q)echo "  CC	tomcast		$<"
25
+	$(Q)$(CC) $(CFLAGS)  -c $<
26
+
27
+strip:
28
+	$(Q)echo "  STRIP	tomcast"
29
+	$(Q)$(STRIP) tomcast
30
+
31
+clean:
32
+	$(Q)echo "  RM	$(tomcast_OBJS)"
33
+	$(Q)$(RM) $(tomcast_OBJS) tomcast *~
34
+
35
+distclean: clean
36
+	$(Q)$(MAKE) -s -C $(FUNCS_DIR) clean

+ 8
- 0
TODO View File

@@ -0,0 +1,8 @@
1
+- Write documentation.
2
+- Write man page.
3
+- Add install/uninstall targets in Makefile.
4
+- Add long options using getopt_long.
5
+- Add RTP input.
6
+- Add RTP output.
7
+- Add RELEASE file and use it for versioning.
8
+- The code is written in 2010, modernize it...

+ 16
- 0
channels.conf-example View File

@@ -0,0 +1,16 @@
1
+## The config file format is (use TABs not spaces!):
2
+##
3
+## channel[tab]dest[tab]source
4
+##
5
+## Lines starting with # are considered comments.
6
+
7
+## Read channel from http://example.com/stb/btv.mpg and output it to multicast address 239.78.78.78:5000
8
+chan1	239.78.78.78:5000	http://example.com/chan1.ts
9
+
10
+## chan2 have multiple sources. If a source doesn't work, tomcast switches to the next one.
11
+chan2	239.79.79.79:5000	http://example.com/chan2.ts
12
+chan2	239.79.79.79:5000	http://example.com/chan2.ts
13
+chan2	239.79.79.79:5000	http://example.com/chan2.ts
14
+
15
+## chan3 have multicast source, tomcast just rewrites the multicast group.
16
+chan3	239.80.80.80:5000	udp://239.1.2.3:5000/

+ 1126
- 0
tomcast.c
File diff suppressed because it is too large
View File


Loading…
Cancel
Save