homebrew-ffmpeg / homebrew-ffmpeg

A homebrew tap for an ffmpeg formula with lots of options
425 stars 70 forks source link

Error installing with`VkVideoDecodeAV1SessionParametersCreateInfoMESA` #156

Open Moulick opened 5 months ago

Moulick commented 5 months ago

Bug Reports

Expected behavior

ffmpeg to be installed

Actual behavior

ffmpeg installation returned error

Command

The exact command you were trying to run:

brew install homebrew-ffmpeg/ffmpeg/ffmpeg

The output that you got:

❯ brew install homebrew-ffmpeg/ffmpeg/ffmpeg
Alias tip: b install homebrew-ffmpeg/ffmpeg/ffmpeg
==> Fetching homebrew-ffmpeg/ffmpeg/ffmpeg
==> Downloading https://gitlab.archlinux.org/archlinux/packaging/packages/ffmpeg/-/raw/5670ccd86d3b816f49ebc18cab878125eca2f81f/add-av_stream_get_firs
Already downloaded: /Users/moulick.aggarwal/Library/Caches/Homebrew/downloads/89c5a789bbb2e059f601e58af1ca10f4db2a1939f591f896a0240cb1cfb2b8bb--add-av_stream_get_first_dts-for-chromium.patch
==> Downloading https://ffmpeg.org/releases/ffmpeg-6.1.tar.xz
Already downloaded: /Users/moulick.aggarwal/Library/Caches/Homebrew/downloads/72000fb45f0a4770cb6969e20a1cddf8308fd2b264f46ac3e05fe493f9b79da6--ffmpeg-6.1.tar.xz
==> Installing ffmpeg from homebrew-ffmpeg/ffmpeg
==> Patching
==> Applying add-av_stream_get_first_dts-for-chromium.patch
patching file 'libavformat/avformat.h'
patching file 'libavformat/mux_utils.c'
==> ./configure --enable-shared --cc=clang --host-cflags= --host-ldflags=-Wl,-ld_classic --enable-gpl --enable-libaom --enable-libdav1d --enable-libmp
==> make install
Last 15 lines from /Users/moulick.aggarwal/Library/Logs/Homebrew/ffmpeg/02.make:
libavcodec/vulkan_av1.c:171:24: error: use of undeclared identifier 'VkVideoDecodeAV1SessionParametersAddInfoMESA'
    av1_params_info = (VkVideoDecodeAV1SessionParametersAddInfoMESA) {
                       ^
libavcodec/vulkan_decode.c:1122:18: error: use of undeclared identifier 'VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_MESA'; did you mean 'VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR'?
        .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_MESA,
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR
/opt/homebrew/include/vulkan/vulkan_core.h:1071:5: note: 'VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR' declared here
    VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
    ^
14 errors generated.
make: *** [libavcodec/vulkan_decode.o] Error 1
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [libavcodec/vulkan_av1.o] Error 1

If reporting this issue please do so at (not Homebrew/brew or Homebrew/homebrew-core):
  https://github.com/homebrew-ffmpeg/homebrew-ffmpeg/issues

Output of brew config and brew doctor commands

brew config:

HOMEBREW_VERSION: 4.2.11-103-gcd1f040
ORIGIN: https://github.com/Homebrew/brew
HEAD: cd1f0409493c77e7964cf03a0fb1e93d03a83772
Last commit: 2 days ago
Core tap HEAD: 2d439a7f729d8ea6f725116c78331ba61d4a06ee
Core tap last commit: 77 minutes ago
Core tap JSON: 10 Mar 13:07 UTC
Core cask tap HEAD: 9373a9b37e753889e369d2c9e8be88fcd315e343
Core cask tap last commit: 25 minutes ago
Core cask tap JSON: 10 Mar 13:07 UTC
HOMEBREW_PREFIX: /opt/homebrew
HOMEBREW_CASK_OPTS: []
HOMEBREW_EDITOR: code --wait --add
HOMEBREW_GITHUB_API_TOKEN: set
HOMEBREW_MAKE_JOBS: 8
HOMEBREW_SORBET_RUNTIME: set
Homebrew Ruby: 3.1.4 => /opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/bin/ruby
CPU: octa-core 64-bit arm_firestorm_icestorm
Clang: 15.0.0 build 1500
Git: 2.44.0 => /opt/homebrew/bin/git
Curl: 8.4.0 => /usr/bin/curl
macOS: 14.4-arm64
CLT: 15.3.0.0.1.1708646388
Xcode: N/A
Rosetta 2: false

brew doctor:

❯ brew doctor
Alias tip: b doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: Some installed casks are deprecated or disabled.
You should find replacements for the following casks:
  meld

Warning: Some installed formulae are deprecated or disabled.
You should find replacements for the following formulae:
  openssl@1.1
slhck commented 5 months ago

Do you have more information about your system, such as your installed Vulkan SDK, its version etc.? See: https://vulkan.lunarg.com/doc/sdk/latest/mac/getting_started.html

Moulick commented 5 months ago

I found that I got the below dependencies installed as part of the mpv formula.

  1. vulkan-headers: stable 1.3.280
  2. vulkan-loader: stable 1.3.280

I just tried to remove them and then make install was successful.

slhck commented 5 months ago

Great, thanks for the feedback!

Moulick commented 5 months ago

@slhck I don't think should closed just yet. Is there anyway we can fix this so I can have both mpv and homebrew-ffmpeg/ffmpeg/ffmpeg installed as currently cannot

slhck commented 5 months ago

Hmm, I see, I suppose this should be open as a reminder for that. I don't think there is much that we can do here though.

Moulick commented 5 months ago

I can check if the ffmpeg default formula compiles locally when I have these two installed. Then we can find what this repo does special that breaks?

slhck commented 5 months ago

The ffmpeg-included library headers must match the installed Vulkan SDK headers. So if ffmpeg 6.1 requires an SDK that is newer than the one shipped with mpv on Homebrew, it won't work. This is nothing wrong with this repo, just a consequence of Homebrew and its version bundling.

Moulick commented 5 months ago

True, where I can I see which version is required here? We could probably get the version in homebrew upgraded

slhck commented 5 months ago

So indeed Homebrew bundles v1.3.280 which is also the latest release. So to clarify, you did install the Vulkan SDK manually, and then it worked?

Moulick commented 5 months ago

Installing homebrew-ffmpeg/ffmpeg/ffmpeg only worked after simply uninstalling both vulkan-headers and vulkan-loader from frombrew. I do not have any extra/separate Vulkan of any type installed.