diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 000000000..ea6b69e35 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,31 @@ +# Contributor Guide + +This is the guide for the OpenAI Codex agent. + +## General repository layout +- Source code: trunk/src/ contains the C++ code for the SRS server. + - trunk/src/core and trunk/src/kernel contain the common definitions. + - trunk/src/protocol contains the media streaming protocol implementations. + - trunk/src/app contains the application-level implementations. + - trunk/src/main contains the main entry points for the programs. +- Source code: proxy/ contains the proxy server in Go for RTMP/SRT/WebRTC proxying. +- Configuration: + - trunk/conf/full.conf contains all supported configurations. + - trunk/src/app/srs_app_config.cpp parses and checks the configuration file. + - trunk/conf/*.conf contains other example configuration files. +- UTests: trunk/src/utest contains the unit tests using gtest. +- Third-party dependencies: trunk/3rdparty contains the dependency libraries. You may refer to these codes, but never attempt to change or update them. + - trunk/3rdparty/st-srs is the coroutine library (state-threads). + - trunk/3rdparty/srs-bench is the integration test tool for blackbox tests. + - trunk/3rdparty/gtest-fit is the gtest framework used for unit tests. + - trunk/3rdparty/ffmpeg-4-fit is the codec library for transcoding audio streams such as AAC with Opus. + - trunk/3rdparty/openssl-1.1-fit is used for RTMP handshake and WebRTC DTLS handshake. + - trunk/3rdparty/libsrtp-2-fit is used for SRTP in WebRTC. + - trunk/3rdparty/srt-1-fit is the SRT implementation. +- Documentation: + - README.md is a brief introduction to this project. + - trunk/doc/CHANGELOG.md contains the changelog history. + +## Testing Instructions +- Run CI tests defined in .github/workflows/test.yml file. +- Add or update tests for the code you change, even if nobody asked.