Subject: bug#79070: [PATCH] Fix macOS dictation post NSTextInputClient migration in v30

From: Gerd Möllmann <[email-masked]>
Date: Mon, 21 Jul 2025 18:00:02 +0200

Alvaro Ramirez <[email-masked]> writes:

> It’s possible to explicitly trigger microphone permission request by running these from *eshell*:
>
> 1. ffmpeg -f avfoundation -list_devices true -i “” ;; to find microphone id
> 2. ffmpeg -f avfoundation -i ":0" -t 10 audiocapture.mp3 ;; using :id
> from 1.

That works here when executed from a terminal. The MBP microphone is :1
here, and I can record something. When I do the same from a running
Emacs, in Eshell (or Vterm, for that matter), I get

~ $ ffmpeg -f avfoundation -i ":1" -t 10 audiocapture.mp3
ffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers
  built with Apple clang version 17.0.0 (clang-1700.0.13.3)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/7.1.1_3 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
  libavutil      59. 39.100 / 59. 39.100
  libavcodec     61. 19.101 / 61. 19.101
  libavformat    61.  7.100 / 61.  7.100
  libavdevice    61.  3.100 / 61.  3.100
  libavfilter    10.  4.100 / 10.  4.100
  libswscale      8.  3.100 /  8.  3.100
  libswresample   5.  3.100 /  5.  3.100
  libpostproc    58.  3.100 / 58.  3.100
2025-07-21 17:50:23.313 ffmpeg[19167:11461232] WARNING: Add NSCameraUseContinuityCameraDeviceType to your Info.plist to use AVCaptureDeviceTypeContinuityCamera.
2025-07-21 17:50:23.404 ffmpeg[19167:11461232] WARNING: AVCaptureDeviceTypeExternal is deprecated for Continuity Cameras. Please use AVCaptureDeviceTypeContinuityCamera and add NSCameraUseContinuityCameraDeviceType to your Info.plist.
abort trap: 6

(That's an unpatched Emacs from master, if that matters.)

>
> Or maybe checking under System Settings > Privacy & Security >
> Microphone and verifying Emacs is listed there?

Emacs isn't there, but there also seems to be no way to add an
application there.

>
> Just thinking out loud here to troubleshoot things. Anything else that comes to mind we can try?
>
> I’ll try to clear all permissions here and see if I can reproduce the issue.

Thanks, that's definitely far beyond my expertise :-).