summaryrefslogtreecommitdiff
path: root/HACKING
diff options
context:
space:
mode:
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING33
1 files changed, 33 insertions, 0 deletions
diff --git a/HACKING b/HACKING
new file mode 100644
index 0000000..ea45cdc
--- /dev/null
+++ b/HACKING
@@ -0,0 +1,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!