Statistics
| Branch: | Revision:

pstreamer @ master

Name Size Revision Age Author Comment
  Lib a398100f over 1 year Luca Baldesi fix bug in output buffer handling of duplicated...
  include b4d5fd5e over 1 year Luca Baldesi add psinstance function for network periodic task
  src 562885dd about 1 year Luca Baldesi chunk injection bug fixes
  test a398100f over 1 year Luca Baldesi fix bug in output buffer handling of duplicated...
.gitignore 31 Bytes 80cc9939 about 2 years Luca Baldesi add cscope file extension to gitignore update R...
COPYING 33.7 KB a426e3a4 about 2 years Luca Baldesi first commit
Makefile 898 Bytes a4e59fbc over 1 year Luca Baldesi fix endianess translation issue
README.md 1.8 KB 80cc9939 about 2 years Luca Baldesi add cscope file extension to gitignore update R...
pstreamer.c 3.53 KB 750a0097 almost 2 years Luca Baldesi fix bug of empty fragment outqueue first integr...

Latest revisions

# Date Author Comment
562885dd 03/27/2018 01:57 PM Luca Baldesi

chunk injection bug fixes

a398100f 03/14/2018 11:22 AM Luca Baldesi

fix bug in output buffer handling of duplicated chunks

e002c1bb 03/13/2018 04:24 PM Luca Baldesi

refactoring of list structure calls

refactor of reference counting functions for nodeID

5c65089a 03/13/2018 09:03 AM Luca Baldesi

refactor output buffer module, add test case for it

bug fix on signaling module previously destroying nodeID of the message sender

1d59fcca 03/09/2018 11:05 AM Luca Baldesi

refactor chunklock module, add test case

74295f26 03/09/2018 11:04 AM Luca Baldesi

fix bug in memory release of output buffer

079e10bd 03/09/2018 11:00 AM Luca Baldesi

fix bug in net helper x resource release, remove redundant code

a4e59fbc 02/13/2018 06:13 PM Luca Baldesi

fix endianess translation issue

b4d5fd5e 10/13/2017 01:05 PM Luca Baldesi

add psinstance function for network periodic task

750a0097 09/12/2017 04:20 PM Luca Baldesi

fix bug of empty fragment outqueue
first integration test passed

View all revisions | View revisions

README


PStreamer

PStreamer[1] is a P2P real-time content distribution platform. It is built on top of the GRAPES library [2] which is a mandatory dependency. You can compile the vanilla executable or the use the libpstreamer library to easily code your own streaming platform.

Compilation

In order to compile you need the GRAPES library [3]. You can specify the GRAPES folder path using an environment variable.

To obtain both the PStreamer library and the executable just launch $> make

To turn on all the debugging feature, set the DEBUG environment variable: $> DEBUG=1 make

To turn on only the chunk and signalling debugging function use the CFLAGS: $> CFLAGS="-DLOG_CHUNK -DLOG_SIGNAL" make

Test

In the "test" folder are stored the test files. To run them and check code consistency run: $> make tests

Example

Here it is a simple example using the executable and the RTP chunkiser; you need an RTP streaming source we suppose it is streaming using the ports 4000,4001,4002,4003; The following will start a PStreamer source peer, getting the RTP flow from the RTP source and serving it to the rest of the P2P net through port 3999 $> ./pstreamer -p 0 -c "iface=lo,port=3999,chunkiser=rtp,base=4000,addr=127.0.0.1,max_delay_ms=50" The following will start a PStreamer peer, which gets the source peer flow from port 4999 and will re-distribute an RTP flow using the ports 5000,5001,5002,5003 $> ./pstreamer -p 3999 -c "iface=lo,port=4999,dechunkiser=rtp,base=5000,addr=127.0.0.1"

References

[1] http://peerstreamer.org [2] Abeni, Luca, et al. "Design and implementation of a generic library for P2P streaming." Proceedings of the 2010 ACM workshop on Advanced video streaming techniques for peer-to-peer networks and social networking. ACM, 2010 [3] https://ans.disi.unitn.it/redmine/grapes.git

Also available in: Atom