Statistics
| Branch: | Revision:

streamers @ 1942bd59

Name Size Revision Age Author Comment
  Chunkiser 9c45209f over 11 years Luca Abeni Better global headers handling
Makefile 1.69 KB 2f846ddd over 11 years Csaba Kiraly separated topology.c from loop.c
README.txt 3.13 KB 0f2ac03e over 11 years Luca Abeni Minimal informal README
chunk_signaling.c 5.27 KB 1942bd59 over 11 years Csaba Kiraly added offerChunks and acceptChunks calls
chunk_signaling.h 1.34 KB 1942bd59 over 11 years Csaba Kiraly added offerChunks and acceptChunks calls
dbg.h 146 Bytes e64fc7e5 over 11 years Luca Make debug output optional
dumbstreamer.c 2.12 KB e37511b1 over 11 years Luca Abeni Allow setting the input file name
input-stream-dummy.c 532 Bytes ce80b058 over 11 years Luca Abeni Explicit timing information in the input Confl...
input-stream.h 303 Bytes ce80b058 over 11 years Luca Abeni Explicit timing information in the input Confl...
input.c 1.45 KB 32c0abe8 over 11 years Luca Abeni Fix an "uninitialised variable" bug
input.h 219 Bytes 2abd0645 over 11 years Luca Abeni Add include guards
loop-mt.c 4.32 KB d310076d over 11 years Csaba Kiraly added "from" parameter to sigParseData
loop.c 3.18 KB d310076d over 11 years Csaba Kiraly added "from" parameter to sigParseData
loop.h 186 Bytes 2abd0645 over 11 years Luca Abeni Add include guards
net_helpers.c 917 Bytes 568bd1bd over 11 years Luca Abeni Make eth0 the default interface
net_helpers.h 110 Bytes 2abd0645 over 11 years Luca Abeni Add include guards
out-stream.c 347 Bytes 54b631d9 over 11 years Luca Abeni Split the real chunk output out of output.c (pr...
out-stream.h 58 Bytes 54b631d9 over 11 years Luca Abeni Split the real chunk output out of output.c (pr...
output.c 2 KB 54b631d9 over 11 years Luca Abeni Split the real chunk output out of output.c (pr...
output.h 102 Bytes 2abd0645 over 11 years Luca Abeni Add include guards
streaming.c 4.04 KB 12fda9a0 over 11 years Csaba Kiraly removed size parameter where struct chunkID_set...
streaming.h 353 Bytes afdc8db4 over 11 years Luca Abeni Fix up the timing...
topology.c 834 Bytes 2f846ddd over 11 years Csaba Kiraly separated topology.c from loop.c
topology.h 92 Bytes 2f846ddd over 11 years Csaba Kiraly separated topology.c from loop.c
utils.mak 267 Bytes ecf6e64a over 11 years Luca Abeni Better selection of compile options and librari...

Latest revisions

# Date Author Comment
1942bd59 03/02/2010 04:10 PM Csaba Kiraly

added offerChunks and acceptChunks calls

12fda9a0 03/02/2010 04:08 PM Csaba Kiraly

removed size parameter where struct chunkID_set is used

7ad9ec5e 03/02/2010 04:08 PM Csaba Kiraly

some whitespaces removed

b7374def 03/02/2010 04:08 PM Csaba Kiraly

added break in sogParseData

1bb397ce 03/02/2010 04:08 PM Csaba Kiraly

generalized some signaling code

d310076d 03/02/2010 04:08 PM Csaba Kiraly

added "from" parameter to sigParseData

0e858c17 03/02/2010 04:08 PM Csaba Kiraly

merged changes of loop in loop-mt

6e5aec7e 03/02/2010 04:08 PM Csaba Kiraly

warning output to stderr instead of stdout

2f846ddd 03/02/2010 04:08 PM Csaba Kiraly

separated topology.c from loop.c

6fe7eade 03/02/2010 04:02 PM Luca Abeni

Merge commit 'origin/io_consolidation' into RockStreamer

Conflicts:
Makefile
loop.c
streaming.h

View all revisions | View revisions

README


This is DumbStreamer, the dumb streamer!
As such, do not expect it to be smart...

Here is a quick'n'dirty, informal, description about how to compile
and test the thing (do not expect to find any information about what
the dumb streamer is, or how it works. If you need such information,
please drop me an email - ):

Ok, here we go...
- To download the DumbStreamer
git clone http://www.disi.unitn.it/~abeni/PublicGits/DumbStreamer.git
- To compile it:
cd DumbStreamer
make prepare
make
You can type "make FFDIR=<path to an ffmpeg build>" to compile a version
of the streamer with a minimal libav-based input module.
You can type "make DEBUG=WhyNot" to compile a "debug" version of the
dumb streamer (prints out a lot of crap and debug information, not really
useful in practice unless you are trying to hunt a bug).
You can type "make THREADS=YesPlease" to compile the multi-thread version
of the streamer. Not tested with libav*.
You can type "make GRAPES=<path to your grapes>" to use a different build
of GRAPES
- To test it:
First, I suggest to test the non-libav-based version. It generates
"fake" text chunks, which are useful for debugging
1) build as above (make prepare; make)
2) start a source: ./dumbstreamer
3) in a different shell, start a client: ./dumbstreamer -P 5555 -i 127.0.0.1 -p 6666
4) start another client: ./dumbstreamer -P 5556 -i 127.0.0.1 -p 6666
5) ...
Explanation: "-P <port>" is the local port used by the client (6666 by
default). Since I am testing source and multiple clients on the same
machine, every client has to use a different port number. "-i <IP addr>"
is the source IP, and "-p <port>" is the port number used by the source.
After this testing, I suggest recompiling with debug on, and with threads.
Test as above, and enjoy.
- To see something interesting:
You have to build a libav-based version:
1) cd /tmp; svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
2) cd ffmpeg; ./configure; make -j 3; cd ..
3) git clone http://www.disi.unitn.it/~abeni/PublicGits/DumbStreamer.git
4) cd DumbStreamer; make prepare; make FFDIR=/tmp/ffmpeg
Now, prepare a (video-only) input file:
5) /tmp/ffmpeg -i <whatever.avi> -r 25 -an -vcodec mpeg4 -f m4v test.m4v
6) The input currently needs to be called "input.mpg", so
ln -s test.m4v input.mpg
Start the source. For the moment, you need to manually specify the rate
(will be fixed in the future):
7) ./dumbstreamer -t 40 -c 50
create a FIFO for the output, and attach a player to it:
8) mkfifo out; ffplay out
start a client:
9) ./dumbstreamer -P 5555 -p 6666 -i 127.0.0.1 > out
- Enjoy... ;-)

A lot of cleanup is needed, and the input module is still far from being
reasonable (but this is not our business ;-)
But you can now enjoy some video...

Remember! The DumbStreamer is dumb! Peers try to send chunks to the source...
Scheduling is blind...
All of this is very bandwidth inefficient. If you want to start more clients,
please increase the upload bandwidth of the source (dumbstreamer -t 40 -c 200,
or even more...).

Enjoy your streaming,
Luca

Also available in: Atom