Opened 19 months ago
Last modified 14 months ago
#71721 new defect
audiowmark: build failure if ffmpeg is active
| Reported by: | i0ntempest | Owned by: | |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 2.10.5 |
| Keywords: | Cc: | aeiouaeiouaeiouaeiouaeiouaeiou | |
| Port: | audiowmark |
Description
Port specifies ffmpeg7 as dependency, but if ffmpeg is also active build will fail.
:info:build In file included from hls.cc:57:
:info:build ./hlsoutputstream.hh:79:64: error: unknown type name 'AVChannelLayout'
:info:build 79 | AVFrame *alloc_audio_frame (AVSampleFormat sample_fmt, const AVChannelLayout *channel_layout, int sample_rate, int nb_samples, Error& err);
:info:build | ^
:info:build hls.cc:92:14: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
:info:build 92 | char *argv[args.size() + 1];
:info:build | ^~~~~~~~~~~~~~~
:info:build hls.cc:92:14: note: function parameter 'args' with unknown value cannot be used in a constant expression
:info:build hls.cc:88:28: note: declared here
:info:build 88 | run (const vector<string>& args, vector<string> *pipe_out = nullptr)
:info:build | ^
:info:build CXX testshortcode.o
:info:build CXX testmpegts.o
:info:build CXX testthreadpool.o
:info:build wmadd.cc:426:19: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
:info:build 426 | float out[out_count * n_channels];
:info:build | ^~~~~~~~~~~~~~~~~~~~~~
:info:build wmadd.cc:486:9: note: in instantiation of member function 'BufferedResamplerImpl<Resampler>::write_frames' requested here
:info:build 486 | delete resampler;
:info:build | ^
:info:build wmadd.cc:426:31: note: implicit use of 'this' pointer is only allowed within the evaluation of a call to a 'constexpr' member function
:info:build 426 | float out[out_count * n_channels];
:info:build | ^
:info:build wmadd.cc:426:19: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
:info:build 426 | float out[out_count * n_channels];
:info:build | ^~~~~~~~~~~~~~~~~~~~~~
:info:build wmadd.cc:497:11: note: in instantiation of member function 'BufferedResamplerImpl<VResampler>::write_frames' requested here
:info:build 497 | delete vresampler;
:info:build | ^
:info:build wmadd.cc:426:31: note: implicit use of 'this' pointer is only allowed within the evaluation of a call to a 'constexpr' member function
:info:build 426 | float out[out_count * n_channels];
:info:build | ^
:info:build CXX testrawconverter.o
:info:build CXX testwavformat.o
:info:build CXX testhls.o
:info:build 1 warning and 1 error generated.
:info:build make[2]: *** [hls.o] Error 1
:info:build make[2]: *** Waiting for unfinished jobs....
:info:build In file included from hlsoutputstream.cc:18:
:info:build ./hlsoutputstream.hh:79:64: error: unknown type name 'AVChannelLayout'
:info:build 79 | AVFrame *alloc_audio_frame (AVSampleFormat sample_fmt, const AVChannelLayout *channel_layout, int sample_rate, int nb_samples, Error& err);
:info:build | ^
:info:build hlsoutputstream.cc:118:3: error: use of undeclared identifier 'AVChannelLayout'; did you mean 'm_channel_layout'?
:info:build 118 | AVChannelLayout channel_layout = { AVChannelOrder (0), };
:info:build | ^~~~~~~~~~~~~~~
:info:build | m_channel_layout
:info:build ./hlsoutputstream.hh:60:21: note: 'm_channel_layout' declared here
:info:build 60 | std::string m_channel_layout;
:info:build | ^
:info:build hlsoutputstream.cc:118:18: error: expected ';' after expression
:info:build 118 | AVChannelLayout channel_layout = { AVChannelOrder (0), };
:info:build | ^
:info:build | ;
:info:build hlsoutputstream.cc:118:19: error: use of undeclared identifier 'channel_layout'; did you mean 'm_channel_layout'?
:info:build 118 | AVChannelLayout channel_layout = { AVChannelOrder (0), };
:info:build | ^~~~~~~~~~~~~~
:info:build | m_channel_layout
:info:build ./hlsoutputstream.hh:60:21: note: 'm_channel_layout' declared here
:info:build 60 | std::string m_channel_layout;
:info:build | ^
:info:build hlsoutputstream.cc:118:38: error: use of undeclared identifier 'AVChannelOrder'
:info:build 118 | AVChannelLayout channel_layout = { AVChannelOrder (0), };
:info:build | ^
:info:build hlsoutputstream.cc:119:39: error: use of undeclared identifier 'channel_layout'
:info:build 119 | if (av_channel_layout_from_string (&channel_layout, m_channel_layout.c_str()) != 0)
:info:build | ^
:info:build hlsoutputstream.cc:121:37: error: no member named 'ch_layout' in 'AVCodecContext'
:info:build 121 | av_channel_layout_uninit (&m_enc->ch_layout);
:info:build | ~~~~~ ^
:info:build hlsoutputstream.cc:122:35: error: no member named 'ch_layout' in 'AVCodecContext'
:info:build 122 | av_channel_layout_copy (&m_enc->ch_layout, &channel_layout);
:info:build | ~~~~~ ^
:info:build hlsoutputstream.cc:122:47: error: use of undeclared identifier 'channel_layout'
:info:build 122 | av_channel_layout_copy (&m_enc->ch_layout, &channel_layout);
:info:build | ^
:info:build hlsoutputstream.cc:123:17: error: no member named 'ch_layouts' in 'AVCodec'
:info:build 123 | if ((*codec)->ch_layouts)
:info:build | ~~~~~~~~ ^
:info:build hlsoutputstream.cc:125:41: error: no member named 'ch_layout' in 'AVCodecContext'
:info:build 125 | av_channel_layout_uninit (&m_enc->ch_layout);
:info:build | ~~~~~ ^
:info:build hlsoutputstream.cc:126:39: error: no member named 'ch_layout' in 'AVCodecContext'
:info:build 126 | av_channel_layout_copy (&m_enc->ch_layout, &(*codec)->ch_layouts[0]);
:info:build | ~~~~~ ^
:info:build hlsoutputstream.cc:126:61: error: no member named 'ch_layouts' in 'AVCodec'
:info:build 126 | av_channel_layout_copy (&m_enc->ch_layout, &(*codec)->ch_layouts[0]);
:info:build | ~~~~~~~~ ^
:info:build hlsoutputstream.cc:127:33: error: no member named 'ch_layouts' in 'AVCodec'
:info:build 127 | for (int i = 0; (*codec)->ch_layouts[i].nb_channels; i++)
:info:build | ~~~~~~~~ ^
:info:build hlsoutputstream.cc:129:53: error: no member named 'ch_layouts' in 'AVCodec'
:info:build 129 | if (av_channel_layout_compare (&(*codec)->ch_layouts[i], &channel_layout) == 0) {
:info:build | ~~~~~~~~ ^
:info:build hlsoutputstream.cc:129:69: error: use of undeclared identifier 'channel_layout'
:info:build 129 | if (av_channel_layout_compare (&(*codec)->ch_layouts[i], &channel_layout) == 0) {
:info:build | ^
:info:build hlsoutputstream.cc:130:47: error: no member named 'ch_layout' in 'AVCodecContext'
:info:build 130 | av_channel_layout_uninit (&m_enc->ch_layout);
:info:build | ~~~~~ ^
:info:build hlsoutputstream.cc:131:45: error: no member named 'ch_layout' in 'AVCodecContext'
:info:build 131 | av_channel_layout_copy (&m_enc->ch_layout, &(*codec)->ch_layouts[i]);
:info:build | ~~~~~ ^
:info:build hlsoutputstream.cc:131:67: error: no member named 'ch_layouts' in 'AVCodec'
:info:build 131 | av_channel_layout_copy (&m_enc->ch_layout, &(*codec)->ch_layouts[i]);
:info:build | ~~~~~~~~ ^
:info:build fatal error: too many errors emitted, stopping now [-ferror-limit=]
:info:build 20 errors generated.
:info:build make[2]: *** [hlsoutputstream.o] Error 1
:info:build 2 warnings generated.
:info:build In file included from testhls.cc:29:
:info:build ./hlsoutputstream.hh:79:64: error: unknown type name 'AVChannelLayout'
:info:build 79 | AVFrame *alloc_audio_frame (AVSampleFormat sample_fmt, const AVChannelLayout *channel_layout, int sample_rate, int nb_samples, Error& err);
:info:build | ^
:info:build 1 error generated.
:info:build make[2]: *** [testhls.o] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_audiowmark/audiowmark/work/audiowmark-0.6.3/src'
:info:build make[1]: *** [all-recursive] Error 1
:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_audiowmark/audiowmark/work/audiowmark-0.6.3'
:info:build make: *** [all] Error 2
:info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_audiowmark/audiowmark/work/audiowmark-0.6.3'
:info:build Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_audio_audiowmark/audiowmark/work/audiowmark-0.6.3" && /usr/bin/make -j24 -w all
:info:build Exit code: 2
Attachments (1)
Change History (6)
Changed 19 months ago by i0ntempest
comment:1 Changed 19 months ago by aeiouaeiouaeiouaeiouaeiouaeiou
comment:2 Changed 19 months ago by i0ntempest
Unfortunately no. I tested with these 3 lines added:
configure.cflags-prepend \
-I${prefix}/libexec/ffmpeg${ffmpeg_ver}/include
configure.cxxflags-prepend \
-I${prefix}/libexec/ffmpeg${ffmpeg_ver}/include
configure.ldflags-prepend \
-L${prefix}/libexec/ffmpeg${ffmpeg_ver}/lib
Problem persists.
comment:4 Changed 14 months ago by ryandesign (Ryan Carsten Schmidt)
Traditionally, -I flags belong in CPPFLAGS, not CFLAGS nor CXXFLAGS.
comment:5 Changed 14 months ago by i0ntempest
Same thing happens even with it added to CPPFLAGS. Probably should bring it to upstream like I did last time for cmus https://github.com/cmus/cmus/issues/1366.
Note: See
TracTickets for help on using
tickets.

I saw that
ffms2portfile contains a hack to force library linking:configure.ldflags-prepend \ -L${prefix}/libexec/ffmpeg${ffmpeg_ver}/libDoes it work with
audiowmarkas well?