I am Computer Science student at ETH Zürich in the 2nd semester of my Master of Science Programme. I already have programming experience from working in industry and on many academic projects throughout my studies. However, I have never engaged in the development of the open source software. Therefore, GSoC is the unparalleled opportunity for me to fully emerge in the open source community and gain knowledge necessary to continue open source contributions after the end of the programme.
Both my experience gained at university and in the industry (1 year of C++ embedded development) are mostly focused on using C++ to solve different problems. I would like to further improve in using this language while working on the MediaAware-Splitter project. The end-result of the project seems pretty clear on the high level – use native video chunks in order to decrease overall video chunk loss rate (when a constant p2psp chunk loss is assumed). Another words make sure that only as many video chunks are lost as p2psp chunks. However, I am aware that introducing a simple functionalities often require considerable amount of work.
While working on my proposal I noticed that the link in the project description (https://github.com/P2PSP/p2psp) is inactive. However, I believe that the core of the splitter is described in this header file: https://github.com/P2PSP/core/blob/68fcab5df9c83ec63e828211a5a3f0d19c333a73/src/core/splitter_core.h
After going through the protocol description I understood that there are different policies for splitter to distribute chunks to peers depending on the situation (IMP, DBS, ...). However, this project is about adding the functionality of using the adaptive chunk size, therefore I assume that the changes need to be introduced only to the core spiller class and all the derived class will automatically use the right chunk size.
Also I have a question about the following feature of the protocol: “P2PSP is not aware of the broadcasted content, the bit-rate, the format, etc. Any type of stream can be transmitted without having to modify the protocol at all.” - so I assume that adjusting the size of the p2psp chunk to the video format chunk is only a form of optimization, as opposed to a change of core assumptions of the protocol? Moreover above mentioned feature of p2psp suggests that the type of video format is not generally known to the splitter. So the follow-up question is how should splitter obtain this information?