summaryrefslogtreecommitdiff
path: root/HACKING
blob: ea45cdc4e9180746779b20128eb8f29199223574 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Hacking manual
==============
cybd is intended to be used and embedded into a greater software stack as part
of a more complete HLS distribution system.

The easiest way to use cybd is through the provided daemon/client command-line.
Altough cybd is not a library per-say, it's nonetheless quite easy to import the
client, the daemon, or even the internal streamer object into another program
thanks to it's clean-cut architecture.

The cybd layer (main.c, common.h)
---------------------------------
cybd's main entry file, responsible of parsing commands arguments and dispatching
calls to the daemon layer.

The daemon layer (daemon.c, daemon.h)
-------------------------------------
Code related to client/daemon communication via a unix domain socket, and code for
the daemon itself which handles IPC calls by forwarding them to the streamer
layer.

The streamer layer (streamer.c/h, playlist.c/h, transmuxer.c/h)
---------------------------------------------------------------
streamer.c/h - The 'brain' of the software, manage the song/media queue and stock
the FFMPEG muxer with new songs.

playlist.c/h - Used by streamer.c. Implements a thread-safe, indexed circular
buffer.

transmuxer.c/h - Used by streamer.c. Interface FFMPEG to implement muxing and
demuxing.

Happy hacking!