Currently, the player waits for the TCP module to download and fill it's receiving buffer to be completely filled before the buffer is given out to the player. This isn't an ideal workflow.
What I would suggest is, once the buffer is filled up to a threshold, the buffer should be passed on to the player for playback. Though, this will let us encounter, buffering. That is something else which we need to focus on as well.