Skip to content
15 changes: 8 additions & 7 deletions .github/workflows/c-cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,19 @@ jobs:
libmpg123-dev \
libtag1-dev \
libvorbis-dev \
libvorbisfile-dev \
libopusfile-dev \
libopus-dev \
libopusfile-dev \
libogg-dev \
libflac++-dev \
libflac-dev \
libflac++-dev \
libfreetype6-dev \
zlib1g-dev \
libdbus-1-dev
libssl-dev \
libcurl4-openssl-dev \
libdbus-1-dev \
zlib1g-dev

- name: Cache dependencies
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: |
~/.cache/apt
Expand Down Expand Up @@ -86,7 +87,7 @@ jobs:

- name: Upload build artifacts
if: success()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: psymp3-build-${{ github.sha }}
path: |
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
pull-requests: write
issues: write
id-token: write

steps:
Expand All @@ -36,6 +36,7 @@ jobs:
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}

# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4)
# model: "claude-opus-4-20250514"
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
pull-requests: write
issues: write
id-token: write
steps:
- name: Checkout repository
Expand All @@ -34,6 +34,7 @@ jobs:
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
github_token: ${{ secrets.GITHUB_TOKEN }}

# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4)
# model: "claude-opus-4-20250514"
Expand Down
50 changes: 37 additions & 13 deletions .github/workflows/threading-safety.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.x'

Expand All @@ -42,14 +42,22 @@ jobs:
autoconf \
libtool \
pkg-config \
libsdl2-dev \
autoconf-archive \
libsdl1.2-dev \
libsdl-gfx1.2-dev \
libsdl-ttf2.0-dev \
libfreetype6-dev \
libtag1-dev \
libflac-dev \
libvorbis-dev \
libogg-dev \
libopus-dev \
libmpg123-dev
libopusfile-dev \
libmpg123-dev \
libssl-dev \
libcurl4-openssl-dev \
libdbus-1-dev \
zlib1g-dev

- name: Install Python dependencies
run: |
Expand All @@ -75,14 +83,14 @@ jobs:

- name: Upload CI Report
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: threading-safety-ci-report
path: ci_threading_safety_report.txt

- name: Upload Analysis Reports
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: threading-safety-analysis
path: |
Expand All @@ -100,7 +108,7 @@ jobs:
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.x'

Expand All @@ -114,14 +122,22 @@ jobs:
autoconf \
libtool \
pkg-config \
libsdl2-dev \
autoconf-archive \
libsdl1.2-dev \
libsdl-gfx1.2-dev \
libsdl-ttf2.0-dev \
libfreetype6-dev \
libtag1-dev \
libflac-dev \
libvorbis-dev \
libogg-dev \
libopus-dev \
libmpg123-dev
libopusfile-dev \
libmpg123-dev \
libssl-dev \
libcurl4-openssl-dev \
libdbus-1-dev \
zlib1g-dev

- name: Generate build system
run: |
Expand All @@ -138,7 +154,7 @@ jobs:

- name: Upload Comprehensive Report
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: comprehensive-threading-validation-report
path: threading_safety_validation_report.md
Expand Down Expand Up @@ -173,7 +189,7 @@ jobs:
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.x'

Expand All @@ -187,14 +203,22 @@ jobs:
autoconf \
libtool \
pkg-config \
libsdl2-dev \
autoconf-archive \
libsdl1.2-dev \
libsdl-gfx1.2-dev \
libsdl-ttf2.0-dev \
libfreetype6-dev \
libtag1-dev \
libflac-dev \
libvorbis-dev \
libogg-dev \
libopus-dev \
libmpg123-dev
libopusfile-dev \
libmpg123-dev \
libssl-dev \
libcurl4-openssl-dev \
libdbus-1-dev \
zlib1g-dev

- name: Generate build system
run: |
Expand All @@ -219,4 +243,4 @@ jobs:
- name: Check performance results
run: |
echo "Performance regression check completed"
echo "Review the test output above for any performance issues"
echo "Review the test output above for any performance issues"
10 changes: 5 additions & 5 deletions src/demuxer/iso/ComplianceValidator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,7 @@ bool ComplianceValidator::ValidateSampleDistribution(const SampleTableInfo& samp

bool ComplianceValidator::ValidateContainerFormat(const std::string& brand) {
// Validate known container brands
const std::vector<std::string> validBrands = {
static const std::vector<std::string> validBrands = {
"isom", "mp41", "mp42", "M4A ", "M4V ", "qt ",
"3gp4", "3gp5", "3gp6", "3g2a"
};
Expand All @@ -381,7 +381,7 @@ bool ComplianceValidator::IsValidBoxType(uint32_t boxType) {
}

bool ComplianceValidator::IsContainerBox(uint32_t boxType) {
const std::vector<uint32_t> containerBoxes = {
static const std::vector<uint32_t> containerBoxes = {
BOX_MOOV, BOX_TRAK, BOX_MDIA, BOX_MINF, BOX_STBL, BOX_UDTA, BOX_META
};

Expand Down Expand Up @@ -444,7 +444,7 @@ bool ComplianceValidator::ValidateSampleRate(uint32_t sampleRate, const std::str
// Codec-specific sample rate validation
if (codecType == "aac") {
// AAC supports a wide range of sample rates
const std::vector<uint32_t> validRates = {
static const std::vector<uint32_t> validRates = {
8000, 11025, 12000, 16000, 22050, 24000,
32000, 44100, 48000, 64000, 88200, 96000
};
Expand Down Expand Up @@ -475,7 +475,7 @@ bool ComplianceValidator::ValidateBitsPerSample(uint16_t bits, const std::string
}

// Common bit depths
const std::vector<uint16_t> validBits = {8, 16, 24, 32};
static const std::vector<uint16_t> validBits = {8, 16, 24, 32};
return std::find(validBits.begin(), validBits.end(), bits) != validBits.end();
}

Expand All @@ -487,7 +487,7 @@ ComplianceValidationResult ComplianceValidator::GetComplianceReport() const {

bool ComplianceValidator::ValidateBoxNesting(uint32_t parentType, uint32_t childType) {
// Define valid parent-child relationships
const std::map<uint32_t, std::vector<uint32_t>> validNesting = {
static const std::map<uint32_t, std::vector<uint32_t>> validNesting = {
{BOX_MOOV, {BOX_MVHD, BOX_TRAK, BOX_UDTA, BOX_META, BOX_IODS}},
{BOX_TRAK, {BOX_TKHD, BOX_TREF, BOX_EDTS, BOX_MDIA}},
{BOX_MDIA, {BOX_MDHD, BOX_HDLR, BOX_MINF}},
Expand Down
Loading