1
0
mirror of https://github.com/mpv-player/mpv synced 2025-01-05 06:30:06 +00:00
mpv/audio
leetoburrito e22a2f0483 ao/coreaudio_exclusive: fix segfault when changing formats
PR #12747 missed updating a variable declaration in
`ca_change_physical_format_sync`, which ultimately leads to the thread
crashing.  The problem reproduces consistently on AS Macs (I don't have
an Intel Mac to test on anymore), and produces stack traces like the
following:

```
Thread 3 Crashed:: mpv
0   libsystem_kernel.dylib                     0x18cebd11c __pthread_kill + 8
1   libsystem_pthread.dylib                    0x18cef4cc0 pthread_kill + 288
2   libsystem_c.dylib                          0x18ce04ad4 __abort + 136
3   libsystem_c.dylib                          0x18cdf56c4 __stack_chk_fail + 96
4   mpv                                        0x1026b66d0 ca_change_physical_format_sync + 420
5   mpv                                        0x1026b3b70 init + 1052
6   mpv                                        0x1025c5afc ao_init + 332
7   mpv                                        0x1025c5bec ao_init + 572
8   mpv                                        0x1025c5830 ao_init_best + 1228
9   mpv                                        0x102622fac fill_audio_out_buffers + 1820
10  mpv                                        0x1026450d0 run_playloop + 132
11  mpv                                        0x10263f958 play_current_file + 5116
12  mpv                                        0x10263e4e8 mp_play_files + 452
13  mpv                                        0x102641308 mpv_main + 128
14  mpv                                        0x10269f520 playback_thread + 40
15  libsystem_pthread.dylib                    0x18cef5034 _pthread_start + 136
16  libsystem_pthread.dylib                    0x18ceefe3c thread_start + 8
```

Note that non-exclusive output seems to be unaffected.  To reproduce
this problem (and/or test this fix), pass `--audio-exclusive=yes` to
mpv.
2023-11-23 11:22:21 +01:00
..
decode ad_spdif: fix this not working at all 2023-08-07 23:15:00 +02:00
filter various: remove trailing whitespace 2023-10-30 16:45:47 +00:00
out ao/coreaudio_exclusive: fix segfault when changing formats 2023-11-23 11:22:21 +01:00
aframe.c various: replace if + abort() with MP_HANDLE_OOM() 2023-01-12 22:02:07 +01:00
aframe.h ad_lavc: strip non-normalized floats 2022-09-02 01:27:31 +02:00
chmap_avchannel.c audio: add AVChannelLayout helpers to convert from/to mp_chmap 2022-06-12 21:05:59 +03:00
chmap_avchannel.h audio: add AVChannelLayout helpers to convert from/to mp_chmap 2022-06-12 21:05:59 +03:00
chmap_sel.c
chmap_sel.h
chmap.c chmap: add more channel layouts up to 22.2 2023-09-29 02:35:10 +00:00
chmap.h audio/chmap: support up to 64 channels 2023-09-29 02:35:10 +00:00
fmt-conversion.c audio: add support for AV_SAMPLE_FMT_S64* 2019-09-27 21:21:34 +02:00
fmt-conversion.h audio/fmt-conversion: change license to LGPL 2017-05-05 07:25:55 +02:00
format.c audio/format: fix Type 'struct entry' has incompatible definitions in different translation units 2022-10-23 14:57:24 +02:00
format.h audio: add support for AV_SAMPLE_FMT_S64* 2019-09-27 21:21:34 +02:00