If you would like to contribute code to this project, you can do so through GitHub by forking the repository and sending a pull request. Before RDK accepts your code into the project, you must sign the RDK Contributor License Agreement (CLA).
All contributions must follow the coding standards and architectural principles defined in this project:
- Custom Copilot Instructions
- C++ Coding Standards
- Architecture & Design
- Testing Requirements
- Legacy C++ Refactoring Patterns
-
Create a Branch: Use a descriptive name (e.g.,
fix/buffer-underflow,feat/ll-dash) -
Make Changes: Follow code guidelines and maintain test coverage
-
Write Tests: All public functions require unit tests
- See TESTING.md for test structure
- Run tests locally:
ctest --verbose
-
Commit Messages: Use imperative mood
Add buffer underflow detection Fix memory leak in fragment cache Update ABR algorithm -
Submit PR: Include:
- Clear description of changes
- Motivation and context
- Testing performed
- Risk assessment
- Links to related issues
Code reviews focus on:
- Adherence to Guidelines: All custom instructions must be followed
- Test Coverage: Minimum 80% for new code
- Performance: No regression in critical paths
- Architecture: Changes respect SOLID principles
- Safety: Input validation, resource cleanup, error handling
# Clone and build
git clone https://github.com/rdkcentral/aamp.git
cd aamp
mkdir -p build && cd build
cmake ..
make -j$(nproc)
# Run tests
ctest --verbose
# Build with test coverage
cmake -DENABLE_UNIT_TESTS=ON -DENABLE_COVERAGE=ON ..
make
make test
make coverage_reportUpdate relevant documentation when:
- Adding new configuration options → CONFIGURATION.md
- Changing build process → BUILD.md
- Modifying architecture → ARCHITECTURE.md
- Adding test infrastructure → TESTING.md
- Introducing known issues → TROUBLESHOOTING.md