Coder Social home page Coder Social logo

p2psp-experiments's Introduction

p2psp-experiments

This repository is aimed at experimenting certain things with the P2PSP protocol. Currently, the experiment is to run splitters in parallel that transmit the same video stream. The objective is to take advantage of this parallelization among the peers so that latency may be reduced and the protocol be made more error resilient.

STATUS

Synchronizer merged with upstream [here] (https://github.com/hehaichi/p2psp-console/blob/master/src/synchronizer.cc).

Only MPEG4-TS works as of now

VLC dropping frames

Synchronize function is now complete.

WIP on mixing various streams.

Working on the headers for the synchronized output

TODO

Extend synchronizer for all video formats Improve the performance Debugging Use mutexes wherever there is concurrent I/O

Create a new entity called Synchronizer that takes multiple streams from the peer and synchronizes them into one single stream and then feeds the player.

Develop Synchronizer.

Complete the remaining functionality

In the current implementation, although a set data structure is employed, there is a possibility of a duplicate chunk being added to the set. This happens when there is a delay between two synchronized peers. This happens because, as soon as the synchronized chunk is played, it is removed from the set.

  • Define buffer size for the vector and use it like a circular queue

  • Make the output playable by VLC

Last updated : 29 October, 2017 15:08:45 UTC+0530

p2psp-experiments's People

Contributors

grakshith avatar

Stargazers

 avatar

Watchers

 avatar

p2psp-experiments's Issues

Race condition when peers of same team use synchronizer

There is a race condition when two (or more) peers of the same team try to connect with the splitter.
This happens because, one of the peers is declared the monitor peer and the others aren't. So when the other peers connect with the splitter before the monitor peer does, it leads to an error.
Race condition is prevalent here because, synchronizer tries to connect the peers to the splitters concurrently.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.