matanui159 / ReplaySorcery

An open-source, instant-replay solution for Linux
GNU General Public License v3.0
851 stars 26 forks source link

error: ‘AV_CH_LAYOUT_MONO’ undeclared #143

Open Jourdelune opened 2 years ago

Jourdelune commented 2 years ago

Describe the bug Can't compile

Desktop:

Logs:

make : on entre dans le répertoire « /home/jourdelune/ReplaySorcery/bin »
make[1] : on entre dans le répertoire « /home/jourdelune/ReplaySorcery/bin »
make[2] : on entre dans le répertoire « /home/jourdelune/ReplaySorcery/bin »
make[2] : on quitte le répertoire « /home/jourdelune/ReplaySorcery/bin »
[ 18%] Built target backtrace
make[2] : on entre dans le répertoire « /home/jourdelune/ReplaySorcery/bin »
make[2] : on quitte le répertoire « /home/jourdelune/ReplaySorcery/bin »
make[2] : on entre dans le répertoire « /home/jourdelune/ReplaySorcery/bin »
[ 20%] Building C object CMakeFiles/replay-sorcery.dir/src/audio/pulsedev.c.o
/home/jourdelune/ReplaySorcery/src/audio/pulsedev.c: In function ‘rsPulseDeviceCreate’:
/home/jourdelune/ReplaySorcery/src/audio/pulsedev.c:315:37: error: ‘AV_CH_LAYOUT_MONO’ undeclared (first use in this function)
  315 |    device->params->channel_layout = AV_CH_LAYOUT_MONO;
      |                                     ^~~~~~~~~~~~~~~~~
/home/jourdelune/ReplaySorcery/src/audio/pulsedev.c:315:37: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [CMakeFiles/replay-sorcery.dir/build.make:245 : CMakeFiles/replay-sorcery.dir/src/audio/pulsedev.c.o] Erreur 1
make[2] : on quitte le répertoire « /home/jourdelune/ReplaySorcery/bin »
make[1]: *** [CMakeFiles/Makefile2:133 : CMakeFiles/replay-sorcery.dir/all] Erreur 2
make[1] : on quitte le répertoire « /home/jourdelune/ReplaySorcery/bin »
make: *** [Makefile:130 : all] Erreur 2
make : on quitte le répertoire « /home/jourdelune/ReplaySorcery/bin »
TheK0tYaRa commented 2 years ago

It's incompatible with pipewire-pulse

Jourdelune commented 2 years ago

uh okay, thanks for you answer :p

guglovich commented 2 years ago

How do I get around this error? I have pulseaudio as my primary server, pipewire is installed only as a dependency

matanui159 commented 2 years ago

This doesn't sound like an issue with Pipewire. This is a definition from FFmpeg so I don't know why its not declared in this case

matanui159 commented 2 years ago

Looks like channel_layout.h is no longer included by avcodec.h (https://github.com/FFmpeg/FFmpeg/commit/1be3d8a0cb77f8d34c1f39b47bf5328fe10c82d7) :pensive:

A temporary fix would be to add #include <libavutil/channel_layout.h> to pulsedev.c