Recherche avancée

Médias (1)

Mot : - Tags -/bug

Autres articles (38)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • MediaSPIP Player : problèmes potentiels

    22 février 2011, par

    Le lecteur ne fonctionne pas sur Internet Explorer
    Sur Internet Explorer (8 et 7 au moins), le plugin utilise le lecteur Flash flowplayer pour lire vidéos et son. Si le lecteur ne semble pas fonctionner, cela peut venir de la configuration du mod_deflate d’Apache.
    Si dans la configuration de ce module Apache vous avez une ligne qui ressemble à la suivante, essayez de la supprimer ou de la commenter pour voir si le lecteur fonctionne correctement : /** * GeSHi (C) 2004 - 2007 Nigel McNie, (...)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

Sur d’autres sites (6801)

  • C++ ffmpeg lib version 7.0 - runtime error

    1er septembre 2024, par Chris P

    I want to make a C++ lib named cppdub which will mimic the python module pydub.

    


    One main function is to export the AudioSegment to a file with a specific format (example : mp3).

    


    The code is :

    


    void check_av_error(int error_code, const std::string&amp; msg) {&#xA;    if (error_code &lt; 0) {&#xA;        char errbuf[AV_ERROR_MAX_STRING_SIZE];&#xA;        av_strerror(error_code, errbuf, sizeof(errbuf));&#xA;        throw std::runtime_error(msg &#x2B; ": " &#x2B; errbuf);&#xA;    }&#xA;}&#xA;&#xA;std::string av_err2str_(int errnum) {&#xA;    char buf[AV_ERROR_MAX_STRING_SIZE];&#xA;    av_strerror(errnum, buf, sizeof(buf));&#xA;    return std::string(buf);&#xA;}&#xA;&#xA;void log_error(const std::string&amp; msg) {&#xA;    std::cerr &lt;&lt; "Error: " &lt;&lt; msg &lt;&lt; std::endl;&#xA;}&#xA;&#xA;std::ofstream cppdub::AudioSegment::export_segment(&#xA;    std::string&amp; out_f,&#xA;    const std::string&amp; format,&#xA;    const std::string&amp; codec,&#xA;    const std::string&amp; bitrate,&#xA;    const std::vector&amp; parameters,&#xA;    const std::map&amp; tags,&#xA;    const std::string&amp; id3v2_version,&#xA;    const std::string&amp; cover) {&#xA;&#xA;    av_log_set_level(AV_LOG_DEBUG);&#xA;    avformat_network_init();&#xA;&#xA;    AVFormatContext* format_ctx = nullptr;&#xA;    int ret = avformat_alloc_output_context2(&amp;format_ctx, nullptr, format.c_str(), out_f.c_str());&#xA;    check_av_error(ret, "Could not allocate format context");&#xA;&#xA;    if (!(format_ctx->oformat->flags &amp; AVFMT_NOFILE)) {&#xA;        ret = avio_open(&amp;format_ctx->pb, out_f.c_str(), AVIO_FLAG_WRITE);&#xA;        check_av_error(ret, "Could not open output file");&#xA;    }&#xA;&#xA;    AVStream* stream = avformat_new_stream(format_ctx, nullptr);&#xA;    if (!stream) {&#xA;        avformat_free_context(format_ctx);&#xA;        throw std::runtime_error("Could not allocate stream");&#xA;    }&#xA;&#xA;    const AVCodec* codec_obj = avcodec_find_encoder_by_name(codec.c_str());&#xA;    if (!codec_obj) {&#xA;        avformat_free_context(format_ctx);&#xA;        throw std::runtime_error("Codec not found");&#xA;    }&#xA;&#xA;    AVCodecContext* codec_ctx = avcodec_alloc_context3(codec_obj);&#xA;    if (!codec_ctx) {&#xA;        avformat_free_context(format_ctx);&#xA;        throw std::runtime_error("Could not allocate codec context");&#xA;    }&#xA;&#xA;    codec_ctx->sample_rate = this->get_frame_rate();&#xA;    AVChannelLayout ch_layout_1;&#xA;    av_channel_layout_uninit(&amp;ch_layout_1);&#xA;    av_channel_layout_default(&amp;ch_layout_1, 2);&#xA;    codec_ctx->ch_layout = ch_layout_1; // Adjust based on your needs&#xA;    codec_ctx->bit_rate = std::stoi(bitrate);&#xA;    codec_ctx->sample_fmt = codec_obj->sample_fmts[0];&#xA;&#xA;    if (format_ctx->oformat->flags &amp; AVFMT_GLOBALHEADER) {&#xA;        codec_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;&#xA;    }&#xA;&#xA;    ret = avcodec_open2(codec_ctx, codec_obj, nullptr);&#xA;    check_av_error(ret, "Could not open codec");&#xA;&#xA;    stream->time_base = { 1, codec_ctx->sample_rate };&#xA;    ret = avcodec_parameters_from_context(stream->codecpar, codec_ctx);&#xA;    check_av_error(ret, "Could not set codec parameters");&#xA;&#xA;    ret = avformat_write_header(format_ctx, nullptr);&#xA;    check_av_error(ret, "Error occurred when writing header");&#xA;&#xA;    AVPacket pkt;&#xA;    av_init_packet(&amp;pkt);&#xA;    pkt.data = nullptr;&#xA;    pkt.size = 0;&#xA;&#xA;    int frame_size = av_samples_get_buffer_size(nullptr, codec_ctx->ch_layout.nb_channels,&#xA;        codec_ctx->frame_size, codec_ctx->sample_fmt, 0);&#xA;    check_av_error(frame_size, "Could not calculate frame size");&#xA;&#xA;    AVFrame* frame = av_frame_alloc();&#xA;    if (!frame) {&#xA;        avcodec_free_context(&amp;codec_ctx);&#xA;        avformat_free_context(format_ctx);&#xA;        throw std::runtime_error("Error allocating frame");&#xA;    }&#xA;&#xA;    frame->format = codec_ctx->sample_fmt;&#xA;    frame->ch_layout = codec_ctx->ch_layout;&#xA;    frame->sample_rate = codec_ctx->sample_rate;&#xA;    frame->nb_samples = codec_ctx->frame_size;&#xA;&#xA;    ret = av_frame_get_buffer(frame, 0);&#xA;    if (ret &lt; 0) {&#xA;        av_frame_free(&amp;frame);&#xA;        avcodec_free_context(&amp;codec_ctx);&#xA;        avformat_free_context(format_ctx);&#xA;        throw std::runtime_error("Error allocating frame buffer: " &#x2B; av_err2str_(ret));&#xA;    }&#xA;&#xA;    size_t data_offset = 0;&#xA;&#xA;    while (data_offset &lt; this->raw_data().size()) {&#xA;        int samples_to_process = std::min(frame_size, static_cast<int>(this->raw_data().size()) - static_cast<int>(data_offset));&#xA;&#xA;        // Fill the frame with audio data&#xA;        ret = avcodec_fill_audio_frame(frame, codec_ctx->ch_layout.nb_channels, codec_ctx->sample_fmt,&#xA;            reinterpret_cast<const>(this->raw_data().data()) &#x2B; data_offset,&#xA;            samples_to_process, 0);&#xA;        if (ret &lt; 0) {&#xA;            log_error("Error filling audio frame: " &#x2B; av_err2str_(ret));&#xA;            av_frame_free(&amp;frame);&#xA;            avcodec_free_context(&amp;codec_ctx);&#xA;            avformat_free_context(format_ctx);&#xA;            throw std::runtime_error("Error filling audio frame: " &#x2B; av_err2str_(ret));&#xA;        }&#xA;&#xA;        data_offset &#x2B;= samples_to_process;&#xA;&#xA;        ret = avcodec_send_frame(codec_ctx, frame);&#xA;        if (ret &lt; 0) {&#xA;            log_error("Error sending frame for encoding: " &#x2B; av_err2str_(ret));&#xA;            av_frame_free(&amp;frame);&#xA;            avcodec_free_context(&amp;codec_ctx);&#xA;            avformat_free_context(format_ctx);&#xA;            throw std::runtime_error("Error sending frame for encoding: " &#x2B; av_err2str_(ret));&#xA;        }&#xA;&#xA;        while (ret >= 0) {&#xA;            ret = avcodec_receive_packet(codec_ctx, &amp;pkt);&#xA;            if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {&#xA;                break;&#xA;            }&#xA;            check_av_error(ret, "Error receiving packet");&#xA;&#xA;            pkt.stream_index = stream->index;&#xA;&#xA;            ret = av_interleaved_write_frame(format_ctx, &amp;pkt);&#xA;            check_av_error(ret, "Error writing encoded frame to output file");&#xA;&#xA;            av_packet_unref(&amp;pkt);&#xA;        }&#xA;    }&#xA;&#xA;    // Flush the encoder&#xA;    avcodec_send_frame(codec_ctx, nullptr);&#xA;    while (avcodec_receive_packet(codec_ctx, &amp;pkt) == 0) {&#xA;        pkt.stream_index = stream->index;&#xA;        av_interleaved_write_frame(format_ctx, &amp;pkt);&#xA;        av_packet_unref(&amp;pkt);&#xA;    }&#xA;&#xA;    av_write_trailer(format_ctx);&#xA;&#xA;    av_frame_free(&amp;frame);&#xA;    avcodec_free_context(&amp;codec_ctx);&#xA;    avformat_free_context(format_ctx);&#xA;&#xA;    return std::ofstream(out_f, std::ios::binary);&#xA;}&#xA;</const></int></int>

    &#xA;

    The runtime error is :

    &#xA;

    Exception thrown at 0x00007FF945137C9B (avcodec-61.dll) in cppdub_test.exe : 0xC0000005 : Access violation reading location 0x0000024CBCD25080.

    &#xA;

    for line :

    &#xA;

        ret = avcodec_send_frame(codec_ctx, frame);&#xA;

    &#xA;

    Call stack :

    &#xA;

        avcodec-61.dll!00007ff945137c9b()   Unknown&#xA;    avcodec-61.dll!00007ff9451381bb()   Unknown&#xA;    avcodec-61.dll!00007ff945139679()   Unknown&#xA;    avcodec-61.dll!00007ff94371521d()   Unknown&#xA;    avcodec-61.dll!00007ff9434a80c2()   Unknown&#xA;    avcodec-61.dll!00007ff9434a84a6()   Unknown&#xA;    avcodec-61.dll!00007ff9434a8749()   Unknown&#xA;>   cppdub_test.exe!cppdub::AudioSegment::export_segment(std::string &amp; out_f, const std::string &amp; format, const std::string &amp; codec, const std::string &amp; bitrate, const std::vector> &amp; parameters, const std::map,std::allocator>> &amp; tags, const std::string &amp; id3v2_version, const std::string &amp; cover) Line 572  C&#x2B;&#x2B;&#xA;    cppdub_test.exe!main() Line 33  C&#x2B;&#x2B;&#xA;    [External Code] &#xA;&#xA;

    &#xA;

    Autos :

    &#xA;

    &#x2B;       this    0x000000d3a08ff690 {data_="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0... ...} cppdub::AudioSegment *&#xA;&#x2B;       bitrate "128000"    const std::string &amp;&#xA;&#x2B;       ch_layout_1 {order=AV_CHANNEL_ORDER_NATIVE (1) nb_channels=2 u={mask=3 map=0x0000000000000003 {id=??? name=... opaque=...} } ...}   AVChannelLayout&#xA;&#x2B;       codec   "libmp3lame"    const std::string &amp;&#xA;&#x2B;       codec_ctx   0x0000024cbc78c240 {av_class=avcodec-61.dll!0x00007ff94789c760 {class_name=0x00007ff94789c740 "AVCodecContext" ...} ...}    AVCodecContext *&#xA;&#x2B;       codec_obj   avcodec-61.dll!0x00007ff9477fa4c0 (load symbols for additional information) {name=0x00007ff9477fa47c "libmp3lame" ...}  const AVCodec *&#xA;&#x2B;       cover   ""  const std::string &amp;&#xA;        data_offset 9216    unsigned __int64&#xA;&#x2B;       format  "mp3"   const std::string &amp;&#xA;&#x2B;       format_ctx  0x0000024cbc788a40 {av_class=avformat-61.dll!0x00007ff99eb09fe0 {class_name=0x00007ff99eb09fc0 "AVFormatContext" ...} ...}  AVFormatContext *&#xA;&#x2B;       frame   0x0000024cbc787380 {data=0x0000024cbc787380 {0x0000024cbcd25080 <error reading="reading" characters="characters" of="of">, ...} ...}    AVFrame *&#xA;        frame_size  9216    int&#xA;&#x2B;       id3v2_version   "4" const std::string &amp;&#xA;&#x2B;       out_f   "ha-ha-ha.mp3"  std::string &amp;&#xA;&#x2B;       parameters  { size=0 }  const std::vector> &amp;&#xA;&#x2B;       pkt {buf=0x0000000000000000 <null> pts=-9223372036854775808 dts=-9223372036854775808 ...}   AVPacket&#xA;        ret 9216    int&#xA;        samples_to_process  9216    int&#xA;&#x2B;       stream  0x0000024cbc789bc0 {av_class=avformat-61.dll!0x00007ff99eb09840 {class_name=0x00007ff99eb09820 "AVStream" ...} ...} AVStream *&#xA;&#x2B;       tags    { size=0 }  const std::map,std::allocator>> &amp;&#xA;</null></error>

    &#xA;

  • [Aug-Sept 2013] Piwik 2.0 Development Update !

    3 octobre 2013, par Fabian Becker — Development

    This Development Update is the first in a new series of posts we’ll be writing to keep you, our loyal users, informed of our efforts. We hope these updates keep you excited about Piwik’s future, and if you’re a developer, we hope they inspire and challenge you to accomplish more yourself !

    Despite this being our first update, it will probably be one of our biggest. We’ve gotten a lot done as we race towards the Piwik 2.0 release ! Just see for yourself :

    What we’ve accomplished

    Theming

    Piwik now supports theming, a feature that was requested often in the past. Because of our switch to the Twig template engine and other major code changes it is now possible to change the way Piwik looks. Additionally, developers can use the dynamic stylesheet language LESS, instead of CSS. Piwik will automatically transform the LESS code into CSS.

    Piwik 2.0 will ship with a new dark theme called PleineLune (french for Full Moon) that makes use of the new theming feature. Another theme with a left-aligned menu was created during the Piwik Meetup in Paris. Both of these themes were created by Thomas Zilliox, a very talented designer and CSS expert.

    left-menuplein-lune

    PHP 5.3 Namespaces

    For Piwik 2.0 we decided to make use of namespaces, a feature introduced in PHP 5.3. The usage of namespaces makes our code more readable and allows us to better modularize the platform. This is in part why we are raising the required minimum PHP version to 5.3 for Piwik 2.0. (Remember to update your server !)

    Translations in JSON

    All translations are now stored in JSON files which makes storing translations in Piwik a lot cleaner that the giant PHP array we previously used.

    Side note : if you’d like to make Piwik available to more languages, please sign up at translations.piwik.org. We’d love to have your help !

    UI Tests

    We now use UI tests to make sure that changes to the code don’t break the UI. UI tests use PhantomJS and CutyCapt and are automatically executed on Travis CI. Whenever an integration test fails the script produces a screenshot diff that shows the difference. Learn more.

    UIIntegrationTest_actions_downloads

    AnonymizeIP supports IPv6

    The AnonymizeIP plugin now masks IPv6 addresses. The concept of the config option ‘ip_address_mask_length’ has now changed to reflect the level of masking that should be applied to the IP. With a masking level of 1 Piwik will mask the last octet of an IPv4 address and the last 80 bits of an IPv6 address.

    All Websites Dashboard usable with 20,000+ Websites

    The All Websites Dashboard is now usable even if you track many thousands of websites in your Piwik instance. We rewrote parts of the archiving process in order to make this possible. Making Piwik fast and memory efficient is a constant concern for core developers.

    Plugins can now add new Visualizations

    Piwik Plugins and Themes can now create new visualizations for your report data. They can also specify their own ViewDataTable footer icons or modify existing ones. This will allow plugin developers to create new ways for you to view your data, customize existing reports so they look great in new visualizations and provide extra analytics functionality accessible in each of your reports.

    The new TreemapVisualization plugin makes use of this feature to let you view your reports as treemaps. It serves as an example of this new functionality.

    Piwik Marketplace

    The Piwik Marketplace is a new platform developers can use to publish their plugins and themes so all Piwik users can easily access them. The marketplace is hosted at plugins.piwik.org and is currently in an early development state, but we’re already able to host plugins !

    Developers can easily publish their plugins by adding a commit hook to their Github repositories. Every time you push a new tag, the marketplace will make a new version of your plugin available. The marketplace will provide a centralized platform to search for plugins and also provide statistics on plugin usage.

    Install Plugins and Themes in one click from within Piwik

    Piwik has offered since the beginning the much-loved “one click update” feature. We are bringing the same functionnality to the Marketplace : you will be able to install Plugins and Themes in one click directly within the Piwik interface ! Similarly to WordPress or Firefox, Piwik will let you extend the functionnality of your analytics platform.

    Conclusion

    In Piwik 2.0 you will be able to install plugins and themes from the marketplace. And, if you’re so inclined, you will be able to create and host your own plugins/themes on the marketplace so everyone can use them. This is by far the accomplishment we are most excited by… the possibilities it opens up for Piwik’s future are truly unlimited. We hope you share our excitement !

    Au revoir, until next time !

    PS : our mission is to liberate web analytics ; thank you for sharing the word about Piwik 2.0 !

  • ffmpeg build fails with gcc error even with gcc installed (C compiler test failed)

    15 mars 2023, par Martin

    I am on macos 11.2.3, trying to build ffmpeg in my terminal. When I run my script sh buildffmpeg.sh which is below :

    &#xA;

    #!/bin/bash&#xA;&#xA;# If you get error `c compiler failed` run `sudo apt install libglfw3-dev libglew-dev`&#xA;# apt-get install build-essential&#xA;# apt-get build-dep ffmpeg&#xA;# when running this on mac, you need to install some libraries such as &#x27;brew install opus&#x27;&#xA;&#xA;set -e&#xA;&#xA;CWD=$(pwd)&#xA;PACKAGES="$CWD/packages"&#xA;WORKSPACE="$CWD/workspace"&#xA;ADDITIONAL_CONFIGURE_OPTIONS=""&#xA;&#xA;&#xA;mkdir -p "$PACKAGES"&#xA;mkdir -p "$WORKSPACE"&#xA;&#xA;FFMPEG_TAG="$1"&#xA;FFMPEG_URL="http://git.ffmpeg.org/gitweb/ffmpeg.git/snapshot/74c4c539538e36d8df02de2484b045010d292f2c.tar.gz"&#xA;&#xA;FFMPEG_ARCHIVE="$PACKAGES/ffmpeg.tar.gz"&#xA;&#xA;if [ ! -f "$FFMPEG_ARCHIVE" ]; then&#xA;    echo "Downloading tag ${FFMPEG_TAG}..."&#xA;    curl -L -o "$FFMPEG_ARCHIVE" "$FFMPEG_URL"&#xA;fi&#xA;&#xA;EXTRACTED_DIR="$PACKAGES/extracted"&#xA;&#xA;mkdir -p "$EXTRACTED_DIR"&#xA;&#xA;echo "Extracting..."&#xA;tar -xf "$FFMPEG_ARCHIVE" --strip-components=1 -C "$EXTRACTED_DIR"&#xA;&#xA;cd "$EXTRACTED_DIR"&#xA;&#xA;echo "Building..."&#xA;&#xA;# Min electron supported version&#xA;MACOS_MIN="10.10"&#xA;&#xA;./configure $ADDITIONAL_CONFIGURE_OPTIONS \&#xA;    --pkgconfigdir="$WORKSPACE/lib/pkgconfig" \&#xA;    --prefix=${WORKSPACE} \&#xA;    --pkg-config-flags="--static" \&#xA;    --extra-libs=-static \&#xA;    --extra-cflags=--static \&#xA;    --enable-cross-compile \&#xA;    --extra-cflags="-I$WORKSPACE/include -mmacosx-version-min=${MACOS_MIN}" \&#xA;    --extra-ldflags="-L$WORKSPACE/lib -mmacosx-version-min=${MACOS_MIN} -L/usr/local/opt/lame/lib -Wl,-rpath,/usr/local/opt/lame/lib" \&#xA;    --extra-libs="-lpthread -lm" \&#xA;    --enable-static \&#xA;    --disable-securetransport \&#xA;    --disable-debug \&#xA;    --disable-shared \&#xA;    --disable-ffplay \&#xA;    --disable-lzma \&#xA;    --disable-doc \&#xA;    --enable-version3 \&#xA;    --enable-pthreads \&#xA;    --enable-runtime-cpudetect \&#xA;    --enable-avfilter \&#xA;    --enable-filters \&#xA;    --disable-libxcb \&#xA;    --enable-gpl \&#xA;    --disable-libass \&#xA;    --enable-libmp3lame \&#xA;    --enable-libx264 \&#xA;    --enable-libopus&#xA;&#xA;make -j 4&#xA;make install&#xA;&#xA;otool -L "$WORKSPACE/bin/ffmpeg"&#xA;otool -L "$WORKSPACE/bin/ffprobe"&#xA;&#xA;echo "Building done. The binaries can be found here: $WORKSPACE/bin/ffmpeg $WORKSPACE/bin/ffprobe"&#xA;&#xA;mkdir ffmpeg-mac/ &#xA;cp -r "$WORKSPACE/bin/" "$CWD/ffmpeg-mac/"&#xA;&#xA;rm -rf "$PACKAGES"&#xA;rm -rf "$WORKSPACE"&#xA;&#xA;exit 0&#xA;&#xA;

    &#xA;

    It fails with this error :

    &#xA;

    > sh buildffmpeg.sh&#xA;&#xA;Extracting...&#xA;Building...&#xA;gcc is unable to create an executable file.&#xA;C compiler test failed.&#xA;&#xA;If you think configure made a mistake, make sure you are using the latest&#xA;version from Git.  If the latest version fails, report the problem to the&#xA;ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.&#xA;Include the log file "ffbuild/config.log" produced by configure as this will help&#xA;solve the problem.&#xA;

    &#xA;

    I have been trying to solve this error, and have installed gcc with brew, if i run gcc -v I can see my installed gcc version :

    &#xA;

    $ gcc -v&#xA;Using built-in specs.&#xA;COLLECT_GCC=gcc&#xA;COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc/12.2.0/bin/../libexec/gcc/x86_64-apple-darwin20/12/lto-wrapper&#xA;Target: x86_64-apple-darwin20&#xA;Configured with: ../configure --prefix=/usr/local/opt/gcc --libdir=/usr/local/opt/gcc/lib/gcc/current --disable-nls --enable-checking=release --with-gcc-major-version-only --enable-languages=c,c&#x2B;&#x2B;,objc,obj-c&#x2B;&#x2B;,fortran --program-suffix=-12 --with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc --with-isl=/usr/local/opt/isl --with-zstd=/usr/local/opt/zstd --with-pkgversion=&#x27;Homebrew GCC 12.2.0&#x27; --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --with-system-zlib --build=x86_64-apple-darwin20 --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk&#xA;Thread model: posix&#xA;Supported LTO compression algorithms: zlib zstd&#xA;gcc version 12.2.0 (Homebrew GCC 12.2.0) &#xA;

    &#xA;

    So if gcc is installed correctly (i think) why is it failing with a gcc error when I build ffmpeg ?

    &#xA;

    ffbuild/config.log :

    &#xA;

    ...&#xA;mktemp -u XXXXXX&#xA;9v9a2o&#xA;test_ld cc&#xA;test_cc&#xA;BEGIN /var/folders/p7/w8ysrm_x76v_z4n3nk70yd6m0000gn/T//ffconf.rUw6aGKJ/test.c&#xA;    1   int main(void){ return 0; }&#xA;END /var/folders/p7/w8ysrm_x76v_z4n3nk70yd6m0000gn/T//ffconf.rUw6aGKJ/test.c&#xA;gcc --static -I/Users/martinbarker/Documents/projects/rendertunev1.1.2/workspace/include -mmacosx-version-min=10.10 -c -o /var/folders/p7/w8ysrm_x76v_z4n3nk70yd6m0000gn/T//ffconf.rUw6aGKJ/test.o /var/folders/p7/w8ysrm_x76v_z4n3nk70yd6m0000gn/T//ffconf.rUw6aGKJ/test.c&#xA;gcc -L/Users/martinbarker/Documents/projects/rendertunev1.1.2/workspace/lib -mmacosx-version-min=10.10 -L/usr/local/opt/lame/lib -Wl,-rpath,/usr/local/opt/lame/lib -o /var/folders/p7/w8ysrm_x76v_z4n3nk70yd6m0000gn/T//ffconf.rUw6aGKJ/test /var/folders/p7/w8ysrm_x76v_z4n3nk70yd6m0000gn/T//ffconf.rUw6aGKJ/test.o -lpthread -lm -static&#xA;ld: warning: directory not found for option &#x27;-L/Users/martinbarker/Documents/projects/rendertunev1.1.2/workspace/lib&#x27;&#xA;ld: library not found for -lcrt0.o&#xA;collect2: error: ld returned 1 exit status&#xA;C compiler test failed.&#xA;&#xA;

    &#xA;

    gcc test :

    &#xA;

    apples-MacBook:gcctest apple$ export CC=$(which gcc)&#xA;apples-MacBook:gcctest apple$ export CXX=$(which g&#x2B;&#x2B;)&#xA;apples-MacBook:gcctest apple$ ls&#xA;minimal.c&#xA;apples-MacBook:gcctest apple$ gcc -static -Wall -o minimal minimal.c -v&#xA;Apple LLVM version 10.0.0 (clang-1000.10.44.4)&#xA;Target: x86_64-apple-darwin17.0.0&#xA;Thread model: posix&#xA;InstalledDir: /Library/Developer/CommandLineTools/usr/bin&#xA; "/Library/Developer/CommandLineTools/usr/bin/clang" -cc1 -triple x86_64-apple-macosx10.13.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name minimal.c -static-define -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fno-strict-return -masm-verbose -munwind-tables -target-cpu penryn -dwarf-column-info -debugger-tuning=lldb -target-linker-version 409.12 -v -resource-dir /Library/Developer/CommandLineTools/usr/lib/clang/10.0.0 -Wall -fdebug-compilation-dir /Users/apple/Documents/projects/gcctest -ferror-limit 19 -fmessage-length 157 -stack-protector 1 -fblocks -fencode-extended-block-signature -fobjc-runtime=macosx-10.13.0 -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -o /var/folders/7t/d2z0gq194s92vn5xz923gq5h0000gn/T/minimal-8cfbfc.o -x c minimal.c&#xA;clang -cc1 version 10.0.0 (clang-1000.10.44.4) default target x86_64-apple-darwin17.0.0&#xA;#include "..." search starts here:&#xA;#include &lt;...> search starts here:&#xA; /usr/local/include&#xA; /Library/Developer/CommandLineTools/usr/lib/clang/10.0.0/include&#xA; /Library/Developer/CommandLineTools/usr/include&#xA; /usr/include&#xA; /System/Library/Frameworks (framework directory)&#xA; /Library/Frameworks (framework directory)&#xA;End of search list.&#xA; "/Library/Developer/CommandLineTools/usr/bin/ld" -demangle -lto_library /Library/Developer/CommandLineTools/usr/lib/libLTO.dylib -no_deduplicate -static -arch x86_64 -macosx_version_min 10.13.0 -o minimal -lcrt0.o /var/folders/7t/d2z0gq194s92vn5xz923gq5h0000gn/T/minimal-8cfbfc.o&#xA;ld: library not found for -lcrt0.o&#xA;clang: error: linker command failed with exit code 1 (use -v to see invocation)&#xA;

    &#xA;