Skip to content

Commit afe1642

Browse files
mkschulzeclaude
andcommitted
chore(ffmpeg): vendor macos-arm64 prebuilt tree (captured from CI artifact)
Companion to the already-committed libs/ffmpeg/macos-x86_64/. Captured from CI run 26064600141 build-macos job (commit b58c97c — the one-shot upload-artifact step). Together with macos-x86_64 this enables: 1. macOS universal builds: cmake/ffmpeg.cmake can lipo per-arch dylibs into a universal tree at build-time when CMAKE_OSX_ARCHITECTURES is a list, unblocking CI to ship a universal .app/.vst3/.au/.clap that runs on both Apple Silicon and Intel Macs. (Local Intel-only dev path unchanged — continues using libs/ffmpeg/macos-x86_64/ directly.) 2. Removing the "Vendor LGPL ffmpeg" step from mac CI: with both trees committed, the from-source ffmpeg rebuild on every CI invocation becomes redundant. 15-25 min per CI run → ~10 sec git checkout. Pattern extends to libs/ffmpeg/windows-x86_64/ + linux-x86_64/ as those CI lanes start producing valid trees. 3. Reproducibility: bit-exact same ffmpeg across CI runs and local builds (within an arch). The build script (scripts/build_ffmpeg_lgpl.sh) stays useful for bumping ffmpeg version + initial vendoring of new platforms — just no longer runs every CI invocation. Tree contents (149 files, 5.5 MB): - include/{libavcodec,libavformat,libavutil,libswscale,wels}/ — headers identical between arches (verified) - lib/ — ffmpeg 7.1.2 + openh264 2.1.1 arm64 dylibs with the same versioned-canonical + symlink-alias layout as macos-x86_64 Symlinks recreated locally — actions/upload-artifact dereferences symlinks during artifact transport, so the downloaded tree had three 1.5 MB copies of libavcodec.dylib instead of one canonical file + two symlinks. Re-symlinked to match the macos-x86_64 tree layout (13 MB → 5.5 MB). License compliance: libs/ffmpeg/LICENSE.LGPL.txt + LICENSE.openh264.txt at the libs/ffmpeg/ root cover both per-arch trees uniformly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent b58c97c commit afe1642

149 files changed

Lines changed: 34118 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* AC-3 parser prototypes
3+
* Copyright (c) 2003 Fabrice Bellard
4+
* Copyright (c) 2003 Michael Niedermayer
5+
*
6+
* This file is part of FFmpeg.
7+
*
8+
* FFmpeg is free software; you can redistribute it and/or
9+
* modify it under the terms of the GNU Lesser General Public
10+
* License as published by the Free Software Foundation; either
11+
* version 2.1 of the License, or (at your option) any later version.
12+
*
13+
* FFmpeg is distributed in the hope that it will be useful,
14+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16+
* Lesser General Public License for more details.
17+
*
18+
* You should have received a copy of the GNU Lesser General Public
19+
* License along with FFmpeg; if not, write to the Free Software
20+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21+
*/
22+
23+
#ifndef AVCODEC_AC3_PARSER_H
24+
#define AVCODEC_AC3_PARSER_H
25+
26+
#include <stddef.h>
27+
#include <stdint.h>
28+
29+
/**
30+
* Extract the bitstream ID and the frame size from AC-3 data.
31+
*/
32+
int av_ac3_parse_header(const uint8_t *buf, size_t size,
33+
uint8_t *bitstream_id, uint16_t *frame_size);
34+
35+
36+
#endif /* AVCODEC_AC3_PARSER_H */
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* This file is part of FFmpeg.
3+
*
4+
* FFmpeg is free software; you can redistribute it and/or
5+
* modify it under the terms of the GNU Lesser General Public
6+
* License as published by the Free Software Foundation; either
7+
* version 2.1 of the License, or (at your option) any later version.
8+
*
9+
* FFmpeg is distributed in the hope that it will be useful,
10+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12+
* Lesser General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU Lesser General Public
15+
* License along with FFmpeg; if not, write to the Free Software
16+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17+
*/
18+
19+
#ifndef AVCODEC_ADTS_PARSER_H
20+
#define AVCODEC_ADTS_PARSER_H
21+
22+
#include <stddef.h>
23+
#include <stdint.h>
24+
25+
#define AV_AAC_ADTS_HEADER_SIZE 7
26+
27+
/**
28+
* Extract the number of samples and frames from AAC data.
29+
* @param[in] buf pointer to AAC data buffer
30+
* @param[out] samples Pointer to where number of samples is written
31+
* @param[out] frames Pointer to where number of frames is written
32+
* @return Returns 0 on success, error code on failure.
33+
*/
34+
int av_adts_header_parse(const uint8_t *buf, uint32_t *samples,
35+
uint8_t *frames);
36+
37+
#endif /* AVCODEC_ADTS_PARSER_H */

0 commit comments

Comments
 (0)