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

From: Alvaro Ramirez <[email-masked]>
Date: Mon, 21 Jul 2025 18:02:10 +0100

> On 21 Jul 2025, at 17:00, Gerd Möllmann <[email-masked]> wrote:
> 
> 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.)

Handy to know. Thanks for this.

It’s looking like Microphone permission may have been rejected at some point.

Can you try resetting the permission with:

tccutil reset Microphone org.gnu.Emacs

And then attempt to record using ffmpeg via eshell. Must be from Emacs process (not a separate terminal app).

It should display the Microphone permission dialog

Once permission is accepted, ffmpeg recording should work again.

>> 
>> 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 :-).