srs/AGENTS.md
2025-05-21 10:45:58 -04:00

1.7 KiB

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.