Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't build on linux #1

Open
AngelJumbo opened this issue Dec 10, 2022 · 2 comments
Open

Can't build on linux #1

AngelJumbo opened this issue Dec 10, 2022 · 2 comments

Comments

@AngelJumbo
Copy link

I have tried to test this project from time to time on my machine, but I keep getting the same result running ninja -C build

ninja: Entering directory `build'
[1/31] Compiling C object mmfm.p/src_media_coder_coder.c.o
FAILED: mmfm.p/src_media_coder_coder.c.o
cc -Immfm.p -I. -I.. -I/usr/include -I/usr/include/GLES2 -I/usr/include/EGL -I/usr/include/SDL2 -I/usr/include/mupdf -I/usr/include/freetype2 -I../src/mt_math -I../src/mt_core -I../src/media_player -I../src/media_coder -I../src/kinetic_ui -I../src/kinetic_ui/egl -I../src/kinetic_ui/handler -I../src/kinetic_ui/texture -I../src/mmfm -I../src/mt_core_ext -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu99 -O3 '-DPKG_DATADIR="/usr/local/share/mmfm"' '-DMMFM_VERSION="0.41b"' -Wno-unused-but-set-variable -MD -MQ mmfm.p/src_media_coder_coder.c.o -MF mmfm.p/src_media_coder_coder.c.o.d -o mmfm.p/src_media_coder_coder.c.o -c ../src/media_coder/coder.c
../src/media_coder/coder.c: In function 'coder_load_metadata_into':
../src/media_coder/coder.c:412:44: error: 'AVCodecParameters' has no member named 'ch_layout'; did you mean 'channel_layout'?
  412 |        snprintf(channels, 10, "%i", param->ch_layout.nb_channels);
      |                                            ^~~~~~~~~
      |                                            channel_layout
../src/media_coder/coder.c:431:44: error: 'AVCodecParameters' has no member named 'ch_layout'; did you mean 'channel_layout'?
  431 |        snprintf(channels, 10, "%i", param->ch_layout.nb_channels);
      |                                            ^~~~~~~~~
      |                                            channel_layout
../src/media_coder/coder.c: In function 'coder_write_metadata':
../src/media_coder/coder.c:546:51: warning: passing argument 2 of 'avformat_alloc_output_context2' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
  546 |      if (avformat_alloc_output_context2(&enc_ctx, enc_fmt, NULL, new_path) >= 0) // FREE 1
      |                                                   ^~~~~~~
In file included from ../src/media_coder/coder.c:29:
/usr/include/libavformat/avformat.h:2135:86: note: expected 'AVOutputFormat *' but argument is of type 'const AVOutputFormat *'
 2135 | int avformat_alloc_output_context2(AVFormatContext **ctx, ff_const59 AVOutputFormat *oformat,
      |                                                                      ~~~~~~~~~~~~~~~~^~~~~~~
In file included from ../src/media_coder/coder.c:33:
../src/media_coder/coder.c:580:100: error: 'AVCodecParameters' has no member named 'ch_layout'; did you mean 'channel_layout'?
  580 |         case AVMEDIA_TYPE_AUDIO: mt_log_debug("Audio Codec: %d channels, sample rate %d\n", param->ch_layout.nb_channels, param->sample_rate); break;
      |                                                                                                    ^~~~~~~~~
../src/mt_core/mt_log.c:21:68: note: in definition of macro 'mt_log_debug'
   21 | #define mt_log_debug(...) mt_log(MT_LOG_DEBUG, __FILE__, __LINE__, __VA_ARGS__)
      |                                                                    ^~~~~~~~~~~
../src/media_coder/coder.c:641:98: error: 'AVCodecParameters' has no member named 'ch_layout'; did you mean 'channel_layout'?
  641 |       case AVMEDIA_TYPE_AUDIO: mt_log_debug("Audio Codec: %d channels, sample rate %d\n", param->ch_layout.nb_channels, param->sample_rate); break;
      |                                                                                                  ^~~~~~~~~
../src/mt_core/mt_log.c:21:68: note: in definition of macro 'mt_log_debug'
   21 | #define mt_log_debug(...) mt_log(MT_LOG_DEBUG, __FILE__, __LINE__, __VA_ARGS__)
      |                                                                    ^~~~~~~~~~~
[7/31] Compiling C object mmfm.p/src_media_player_decoder.c.o
FAILED: mmfm.p/src_media_player_decoder.c.o
cc -Immfm.p -I. -I.. -I/usr/include -I/usr/include/GLES2 -I/usr/include/EGL -I/usr/include/SDL2 -I/usr/include/mupdf -I/usr/include/freetype2 -I../src/mt_math -I../src/mt_core -I../src/media_player -I../src/media_coder -I../src/kinetic_ui -I../src/kinetic_ui/egl -I../src/kinetic_ui/handler -I../src/kinetic_ui/texture -I../src/mmfm -I../src/mt_core_ext -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu99 -O3 '-DPKG_DATADIR="/usr/local/share/mmfm"' '-DMMFM_VERSION="0.41b"' -Wno-unused-but-set-variable -MD -MQ mmfm.p/src_media_player_decoder.c.o -MF mmfm.p/src_media_player_decoder.c.o.d -o mmfm.p/src_media_player_decoder.c.o -c ../src/media_player/decoder.c
In file included from ../src/media_player/decoder.c:6:
../src/media_player/packetqueue.c:17:5: error: unknown type name 'AVFifo'
   17 |     AVFifo*    pkt_list;
      |     ^~~~~~
[8/31] Compiling C object mmfm.p/src_media_player_mediaplayer.c.o
FAILED: mmfm.p/src_media_player_mediaplayer.c.o
cc -Immfm.p -I. -I.. -I/usr/include -I/usr/include/GLES2 -I/usr/include/EGL -I/usr/include/SDL2 -I/usr/include/mupdf -I/usr/include/freetype2 -I../src/mt_math -I../src/mt_core -I../src/media_player -I../src/media_coder -I../src/kinetic_ui -I../src/kinetic_ui/egl -I../src/kinetic_ui/handler -I../src/kinetic_ui/texture -I../src/mmfm -I../src/mt_core_ext -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu99 -O3 '-DPKG_DATADIR="/usr/local/share/mmfm"' '-DMMFM_VERSION="0.41b"' -Wno-unused-but-set-variable -MD -MQ mmfm.p/src_media_player_mediaplayer.c.o -MF mmfm.p/src_media_player_mediaplayer.c.o.d -o mmfm.p/src_media_player_mediaplayer.c.o -c ../src/media_player/mediaplayer.c
In file included from ../src/media_player/decoder.c:6,
                 from ../src/media_player/mediaplayer.c:17:
../src/media_player/packetqueue.c:17:5: error: unknown type name 'AVFifo'
   17 |     AVFifo*    pkt_list;
      |     ^~~~~~
../src/media_player/mediaplayer.c:65:5: error: unknown type name 'AVChannelLayout'
   65 |     AVChannelLayout     ch_layout;
      |     ^~~~~~~~~~~~~~~
../src/media_player/mediaplayer.c: In function 'mp_audio_decode_frame':
../src/media_player/mediaplayer.c:491:61: error: 'AVFrame' has no member named 'ch_layout'; did you mean 'channel_layout'?
  491 |     data_size = av_samples_get_buffer_size(NULL, af->frame->ch_layout.nb_channels, af->frame->nb_samples, af->frame->format, 1);
      |                                                             ^~~~~~~~~
      |                                                             channel_layout
../src/media_player/mediaplayer.c:496:2: warning: implicit declaration of function 'av_channel_layout_compare' [-Wimplicit-function-declaration]
  496 |  av_channel_layout_compare(&af->frame->ch_layout, &is->audio_src.ch_layout) ||
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~
../src/media_player/mediaplayer.c:496:40: error: 'AVFrame' has no member named 'ch_layout'; did you mean 'channel_layout'?
  496 |  av_channel_layout_compare(&af->frame->ch_layout, &is->audio_src.ch_layout) ||
      |                                        ^~~~~~~~~
      |                                        channel_layout
../src/media_player/mediaplayer.c:501:2: warning: implicit declaration of function 'swr_alloc_set_opts2'; did you mean 'swr_alloc_set_opts'? [-Wimplicit-function-declaration]
  501 |  swr_alloc_set_opts2(&is->swr_ctx, &is->audio_tgt.ch_layout, is->audio_tgt.fmt, is->audio_tgt.freq, &af->frame->ch_layout, af->frame->format, af->frame->sample_rate, 0, NULL);
      |  ^~~~~~~~~~~~~~~~~~~
      |  swr_alloc_set_opts
../src/media_player/mediaplayer.c:501:113: error: 'AVFrame' has no member named 'ch_layout'; did you mean 'channel_layout'?
  501 |  swr_alloc_set_opts2(&is->swr_ctx, &is->audio_tgt.ch_layout, is->audio_tgt.fmt, is->audio_tgt.freq, &af->frame->ch_layout, af->frame->format, af->frame->sample_rate, 0, NULL);
      |                                                                                                                 ^~~~~~~~~
      |                                                                                                                 channel_layout
../src/media_player/mediaplayer.c:504:216: error: 'AVFrame' has no member named 'ch_layout'; did you mean 'channel_layout'?
  504 |      av_log(NULL, AV_LOG_ERROR, "Cannot create sample rate converter for conversion of %d Hz %s %d channels to %d Hz %s %d channels!\n", af->frame->sample_rate, av_get_sample_fmt_name(af->frame->format), af->frame->ch_layout.nb_channels, is->audio_tgt.freq, av_get_sample_fmt_name(is->audio_tgt.fmt), is->audio_tgt.ch_layout.nb_channels);
      |
                                      ^~~~~~~~~
      |
                                      channel_layout
../src/media_player/mediaplayer.c:504:325: error: request for member 'nb_channels' in something not a structure or union
  504 |      av_log(NULL, AV_LOG_ERROR, "Cannot create sample rate converter for conversion of %d Hz %s %d channels to %d Hz %s %d channels!\n", af->frame->sample_rate, av_get_sample_fmt_name(af->frame->format), af->frame->ch_layout.nb_channels, is->audio_tgt.freq, av_get_sample_fmt_name(is->audio_tgt.fmt), is->audio_tgt.ch_layout.nb_channels);
      |
                                                                                                                                                   ^
../src/media_player/mediaplayer.c:508:6: warning: implicit declaration of function 'av_channel_layout_copy' [-Wimplicit-function-declaration]
  508 |  if (av_channel_layout_copy(&is->audio_src.ch_layout, &af->frame->ch_layout) < 0)
      |      ^~~~~~~~~~~~~~~~~~~~~~
../src/media_player/mediaplayer.c:508:67: error: 'AVFrame' has no member named 'ch_layout'; did you mean 'channel_layout'?
  508 |  if (av_channel_layout_copy(&is->audio_src.ch_layout, &af->frame->ch_layout) < 0)
      |                                                                   ^~~~~~~~~
      |                                                                   channel_layout
../src/media_player/mediaplayer.c:519:86: error: request for member 'nb_channels' in something not a structure or union
  519 |  int             out_size  = av_samples_get_buffer_size(NULL, is->audio_tgt.ch_layout.nb_channels, out_count, is->audio_tgt.fmt, 0);
      |                                                                                      ^
../src/media_player/mediaplayer.c:550:54: error: request for member 'nb_channels' in something not a structure or union
  550 |  resampled_data_size = len2 * is->audio_tgt.ch_layout.nb_channels * av_get_bytes_per_sample(is->audio_tgt.fmt);
      |                                                      ^
../src/media_player/mediaplayer.c: At top level:
../src/media_player/mediaplayer.c:652:33: error: unknown type name 'AVChannelLayout'
  652 | int mp_audio_open(void* opaque, AVChannelLayout* wanted_channel_layout, int wanted_sample_rate, struct AudioParams* audio_hw_params)
      |                                 ^~~~~~~~~~~~~~~
../src/media_player/mediaplayer.c: In function 'mp_stream_open':
../src/media_player/mediaplayer.c:869:5: error: unknown type name 'AVChannelLayout'
  869 |     AVChannelLayout ch_layout   = {0};
      |     ^~~~~~~~~~~~~~~
../src/media_player/mediaplayer.c:871:81: error: 'AVCodecContext' has no member named 'ch_layout'; did you mean 'channel_layout'?
  871 |     ret                         = av_channel_layout_copy(&ch_layout, &codecctx->ch_layout);
      |                                                                                 ^~~~~~~~~
      |                                                                                 channel_layout
../src/media_player/mediaplayer.c:876:15: warning: implicit declaration of function 'mp_audio_open'; did you mean 'avio_open'? [-Wimplicit-function-declaration]
  876 |         ret = mp_audio_open(ms, &ch_layout, sample_rate, &ms->audio_tgt);
      |               ^~~~~~~~~~~~~
      |               avio_open
../src/media_player/mediaplayer.c: In function 'mp_audio_refresh':
../src/media_player/mediaplayer.c:1638:39: error: request for member 'nb_channels' in something not a structure or union
 1638 |     channels = ms->audio_tgt.ch_layout.nb_channels;
      |                                       ^
At top level:
../src/media_player/mediaplayer.c:596:13: warning: 'mp_sdl_audio_callback' defined but not used [-Wunused-function]
  596 | static void mp_sdl_audio_callback(void* opaque, Uint8* stream, int len)
      |             ^~~~~~~~~~~~~~~~~~~~~
[9/31] Compiling C object mmfm.p/src_media_player_packetqueue.c.o
FAILED: mmfm.p/src_media_player_packetqueue.c.o
cc -Immfm.p -I. -I.. -I/usr/include -I/usr/include/GLES2 -I/usr/include/EGL -I/usr/include/SDL2 -I/usr/include/mupdf -I/usr/include/freetype2 -I../src/mt_math -I../src/mt_core -I../src/media_player -I../src/media_coder -I../src/kinetic_ui -I../src/kinetic_ui/egl -I../src/kinetic_ui/handler -I../src/kinetic_ui/texture -I../src/mmfm -I../src/mt_core_ext -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu99 -O3 '-DPKG_DATADIR="/usr/local/share/mmfm"' '-DMMFM_VERSION="0.41b"' -Wno-unused-but-set-variable -MD -MQ mmfm.p/src_media_player_packetqueue.c.o -MF mmfm.p/src_media_player_packetqueue.c.o.d -o mmfm.p/src_media_player_packetqueue.c.o -c ../src/media_player/packetqueue.c
../src/media_player/packetqueue.c:17:5: error: unknown type name 'AVFifo'
   17 |     AVFifo*    pkt_list;
      |     ^~~~~~
../src/media_player/packetqueue.c: In function 'packet_queue_init':
../src/media_player/packetqueue.c:46:19: warning: implicit declaration of function 'av_fifo_alloc2'; did you mean 'av_fifo_alloc'? [-Wimplicit-function-declaration]
   46 |     q->pkt_list = av_fifo_alloc2(1, sizeof(MyAVPacketList), AV_FIFO_FLAG_AUTO_GROW);
      |                   ^~~~~~~~~~~~~~
      |                   av_fifo_alloc
../src/media_player/packetqueue.c:46:61: error: 'AV_FIFO_FLAG_AUTO_GROW' undeclared (first use in this function)
   46 |     q->pkt_list = av_fifo_alloc2(1, sizeof(MyAVPacketList), AV_FIFO_FLAG_AUTO_GROW);
      |                                                             ^~~~~~~~~~~~~~~~~~~~~~
../src/media_player/packetqueue.c:46:61: note: each undeclared identifier is reported only once for each function it appears in
../src/media_player/packetqueue.c: In function 'packet_queue_destroy':
../src/media_player/packetqueue.c:68:5: warning: implicit declaration of function 'av_fifo_freep2'; did you mean 'av_fifo_freep'? [-Wimplicit-function-declaration]
   68 |     av_fifo_freep2(&q->pkt_list);
      |     ^~~~~~~~~~~~~~
      |     av_fifo_freep
../src/media_player/packetqueue.c: In function 'packet_queue_flush':
../src/media_player/packetqueue.c:97:12: warning: implicit declaration of function 'av_fifo_read'; did you mean 'av_fifo_reset'? [-Wimplicit-function-declaration]
   97 |     while (av_fifo_read(q->pkt_list, &pkt1, 1) >= 0)
      |            ^~~~~~~~~~~~
      |            av_fifo_reset
../src/media_player/packetqueue.c: In function 'packet_queue_put_private':
../src/media_player/packetqueue.c:117:11: warning: implicit declaration of function 'av_fifo_write'; did you mean 'av_fifo_size'? [-Wimplicit-function-declaration]
  117 |     ret = av_fifo_write(q->pkt_list, &pkt1, 1);
      |           ^~~~~~~~~~~~~
      |           av_fifo_size
[10/31] Compiling C object mmfm.p/src_mmfm_ui.c.o
FAILED: mmfm.p/src_mmfm_ui.c.o
cc -Immfm.p -I. -I.. -I/usr/include -I/usr/include/GLES2 -I/usr/include/EGL -I/usr/include/SDL2 -I/usr/include/mupdf -I/usr/include/freetype2 -I../src/mt_math -I../src/mt_core -I../src/media_player -I../src/media_coder -I../src/kinetic_ui -I../src/kinetic_ui/egl -I../src/kinetic_ui/handler -I../src/kinetic_ui/texture -I../src/mmfm -I../src/mt_core_ext -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=gnu99 -O3 '-DPKG_DATADIR="/usr/local/share/mmfm"' '-DMMFM_VERSION="0.41b"' -Wno-unused-but-set-variable -MD -MQ mmfm.p/src_mmfm_ui.c.o -MF mmfm.p/src_mmfm_ui.c.o.d -o mmfm.p/src_mmfm_ui.c.o -c ../src/mmfm/ui.c
In file included from ../src/media_player/decoder.c:6,
                 from ../src/media_player/mediaplayer.c:17,
                 from ../src/mmfm/ui.c:46:
../src/media_player/packetqueue.c:17:5: error: unknown type name 'AVFifo'
   17 |     AVFifo*    pkt_list;
      |     ^~~~~~
In file included from ../src/mmfm/ui.c:46:
../src/media_player/mediaplayer.c:65:5: error: unknown type name 'AVChannelLayout'
   65 |     AVChannelLayout     ch_layout;
      |     ^~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
@milgra
Copy link
Owner

milgra commented Dec 11, 2022

Hi, mmfm needs the latest ffmpeg libraries ( avcodec, avformat, etc ), I will add the needed versions to the meson build file. Arch linux already has it, I dont know about other distros.

@AngelJumbo
Copy link
Author

I just checked and yes the ffmpeg package in my distro (void linux) is behind of the arch one.

Pls consider creating an appimage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants