Error: cmake: command not found
Solution:
# macOS
brew install cmake
# Ubuntu/Debian
sudo apt-get install cmake
# Verify installation
cmake --versionError: Package gstreamer-1.0 was not found
Solution:
# Check if GStreamer is installed
pkg-config --cflags --libs gstreamer-1.0
# Install GStreamer
# macOS
brew install gstreamer
# Ubuntu/Debian
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-devError: Could not find OpenSSL
Solution:
# macOS
brew install openssl
export OPENSSL_DIR=$(brew --prefix openssl)
# Ubuntu/Debian
sudo apt-get install libssl-dev
# Verify
pkg-config --cflags --libs opensslError: Could not find CURL
Solution:
# macOS
brew install curl
# Ubuntu/Debian
sudo apt-get install libcurl4-openssl-dev
# Verify
pkg-config --cflags --libs libcurlError: error: 'optional' is not a member of 'std'
Solution: Ensure C++17 or later is used:
cmake -DCMAKE_CXX_STANDARD=17 ..Possible Causes:
-
Sink Configuration
- Ensure the correct sink is configured (GStreamer vs Westeros)
- Check if sink plugin is available:
gst-inspect-1.0 | grep -i sink
-
Pipeline Not Ready
- Verify
gstBufferAndPlayis enabled (default: true) - Check if video codec is supported
- Verify
-
DRM Issues
- Verify DRM license was acquired
- Check DRM system compatibility
- See DRM-specific troubleshooting below
Debug:
export GST_DEBUG=3
export AAMP_DEBUG_LOG=1
./aamp_player <url>Possible Causes:
-
PDT-based sync disabled
config.hlsAVTrackSyncUsingPDT = true; player.initConfig(config);
-
Low Latency correction
config.enableLowLatencyCorrection = true; player.initConfig(config);
-
Discontinuity handling
config.mpdDiscontinuityHandling = true; config.useNewAdBreaker = true; player.initConfig(config);
High Rebuffering Rate:
-
Increase buffer size:
config.abrCacheLength = 5; // Increase from default 3 config.abrCacheLife = 10000; // Increase from default 5000
-
Enable pre-buffering:
config.gstBufferAndPlay = true;
-
Disable aggressive ABR:
config.abr = false; // Test with disabled ABR first
Stuck at Live Edge:
config.cdvrLiveOffset = 30; // Increase offset from default
config.enableLowLatencyCorrection = true;Possible Causes:
-
4K playback on limited device:
config.disable4K = true;
-
Excessive codec usage:
config.stereoOnly = true; // Reduces codec complexity config.disableATMOS = true;
-
Native CC rendering:
config.nativeCCRendering = false;
Error: License acquisition timeout
Solution:
config.licenseAcquisitionTimeout = 15000; // Increase from default 10000
config.contentProtectionDataUpdateTimeout = 7000;Check PlayReady SDK version compatibility and license server endpoint.
Debug:
export AAMP_DEBUG_LOG=3
# Check DRM plugin logs
gst-inspect-1.0 msdkVerify Widevine CDM (Content Decryption Module) is installed on the platform.
No special setup required. If failing:
- Verify encryption key format
- Check key acquisition endpoint
- Enable debug logging
Error: Fragment download timeout
Solution: Adjust timeout values based on network conditions:
// Configure fragment download timeout (in milliseconds)
config.fragmentDownloadTimeout = 15000;For Self-Signed Certificates (development only):
config.sslVerifyPeer = false;For Production: Fix certificate chain or use proper CA certificate.
Add custom headers for proxy authentication:
config.customHeader = "Proxy-Authorization: Basic base64credentials";High Latency:
config.enableLowLatencyDash = true;
config.enableLowLatencyCorrection = true;
config.disableLowLatencyABR = false; // Enable ABR for LL
config.downloadBufferChunks = 10; // Reduce from default 20Optimize Playlist Refresh:
config.parallelPlaylistDownload = true; // For tune
config.parallelPlaylistRefresh = true; // For refresh (default)
config.preFetchIframePlaylist = true; // For I-frame playbackDebug:
cd build
ctest -V # Verbose output
./test_executable --gtest_filter="TestName" --gtest_catch_exceptions=0Causes:
- Timing dependencies
- Uninitialized test data
- Race conditions
Fix:
- Use deterministic test data
- Remove sleep() calls, use waitFor() instead
- Mock time-dependent components
Missing packages: See UbuntuSetup.md
Homebrew dependencies:
brew install gstreamer gst-plugins-base openssl curlConsult RDK-specific build documentation and environment setup.
-
Review Logs: Enable debug logging
export AAMP_DEBUG_LOG=3 export GST_DEBUG=4
-
Check Configuration: Verify all settings via
initConfig() -
Community Support: File issues with reproduction steps and logs
-
Documentation:
When reporting issues, include:
- Platform and OS version
- AAMP version/commit hash
- Reproduction URL (sanitized)
- Configuration used
- Debug logs (with AAMP_DEBUG_LOG=3)
- GStreamer version:
gst-launch-1.0 --version