deadbeef icon indicating copy to clipboard operation
deadbeef copied to clipboard

Fail to build with ffmpeg 7

Open marillat opened this issue 1 year ago • 1 comments

Debian amd64 unstable All deprecated functions before 6.0 have been removed in this version.

libtool: compile:  clang -DHAVE_CONFIG_H -I. -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/deadbeef-dmo-1.9.6=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -D_GNU_SOURCE -D__EXTENSIONS__ -DLIBDIR=\"/usr/lib/x86_64-linux-gnu\" -DPREFIX=\"/usr\" -DDOCDIR=\"/usr/share/doc/deadbeef\" -DDDB_WARN_DEPRECATED=1 -std=c99 -I/usr/include/x86_64-linux-gnu -I../../include -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/deadbeef-dmo-1.9.6=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -D_GNU_SOURCE -D__EXTENSIONS__ -DLIBDIR=\"/usr/lib/x86_64-linux-gnu\" -DPREFIX=\"/usr\" -DDOCDIR=\"/usr/share/doc/deadbeef\" -DDDB_WARN_DEPRECATED=1 -c ffmpeg.c  -fPIC -DPIC -o .libs/ffmpeg_la-ffmpeg.o
ffmpeg.c:118:80: error: no member named 'channels' in 'struct AVCodecContext'
    if (!info->buffer || info->buffer_size < frame_size * info->codec_context->channels) {
                                                          ~~~~~~~~~~~~~~~~~~~  ^
ffmpeg.c:123:61: error: no member named 'channels' in 'struct AVCodecContext'
        info->buffer_size = frame_size*info->codec_context->channels;
                                       ~~~~~~~~~~~~~~~~~~~  ^
ffmpeg.c:140:14: warning: initializing 'AVCodec *' (aka 'struct AVCodec *') with an expression of type 'const AVCodec *' (aka 'const struct AVCodec *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
    AVCodec *codec = avcodec_find_decoder(format_context->streams[stream_index]->codecpar->codec_id);
             ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ffmpeg.c:234:42: error: no member named 'channels' in 'struct AVCodecContext'
    if (bps <= 0 || info->codec_context->channels <= 0 || samplerate <= 0) {
                    ~~~~~~~~~~~~~~~~~~~  ^
ffmpeg.c:251:48: error: no member named 'channels' in 'struct AVCodecContext'
    _info->fmt.channels = info->codec_context->channels;
                          ~~~~~~~~~~~~~~~~~~~  ^
ffmpeg.c:299:9: warning: 'avcodec_close' is deprecated [-Wdeprecated-declarations]
        avcodec_close (info->codec_context);
        ^
/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:2386:1: note: 'avcodec_close' has been explicitly marked deprecated here
attribute_deprecated
^
/usr/include/x86_64-linux-gnu/libavutil/attributes.h:100:49: note: expanded from macro 'attribute_deprecated'
#    define attribute_deprecated __attribute__((deprecated))
                                                ^
ffmpeg.c:399:54: error: no member named 'channels' in 'struct AVCodecContext'
                    int chCnt = info->codec_context->channels;
                                ~~~~~~~~~~~~~~~~~~~  ^
ffmpeg.c:466:66: error: no member named 'channels' in 'struct AVCodecContext'
                        for (int c = 0; c < info->codec_context->channels; c++) {
                                            ~~~~~~~~~~~~~~~~~~~  ^
ffmpeg.c:469:73: error: no member named 'channels' in 'struct AVCodecContext'
                                    info->buffer[i*info->codec_context->channels+c] = ((int8_t *)info->frame->extended_data[c])[i];
                                                   ~~~~~~~~~~~~~~~~~~~  ^
ffmpeg.c:474:85: error: no member named 'channels' in 'struct AVCodecContext'
                                    ((int16_t*)info->buffer)[i*info->codec_context->channels+c] = outsample;
                                                               ~~~~~~~~~~~~~~~~~~~  ^
ffmpeg.c:478:83: error: no member named 'channels' in 'struct AVCodecContext'
                                    memcpy (&info->buffer[(i*info->codec_context->channels+c)*3], &((int8_t*)info->frame->extended_data[c])[i*3], 3);
                                                             ~~~~~~~~~~~~~~~~~~~  ^
ffmpeg.c:483:85: error: no member named 'channels' in 'struct AVCodecContext'
                                    ((int32_t*)info->buffer)[i*info->codec_context->channels+c] = sample;
                                                               ~~~~~~~~~~~~~~~~~~~  ^
ffmpeg.c:787:41: error: no member named 'channels' in 'struct AVCodecContext'
    if (bps <= 0 || info.codec_context->channels <= 0 || samplerate <= 0) {
                    ~~~~~~~~~~~~~~~~~~  ^
ffmpeg.c:822:60: error: no member named 'channels' in 'struct AVCodecContext'
        snprintf (s, sizeof (s), "%d", info.codec_context->channels);
                                       ~~~~~~~~~~~~~~~~~~  ^
/usr/include/x86_64-linux-gnu/bits/stdio2.h:61:31: note: expanded from macro 'snprintf'
                            __glibc_objsize (str), __VA_ARGS__)
                                                   ^~~~~~~~~~~
ffmpeg.c:921:22: warning: assigning to 'AVInputFormat *' (aka 'struct AVInputFormat *') from 'const AVInputFormat *' (aka 'const struct AVInputFormat *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
        while ((ifmt = av_demuxer_iterate(&iter))) {
                     ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings and 12 errors generated.

marillat avatar Apr 09 '24 06:04 marillat

And now Arch has updated to 7.0.1 in extra. I'll see if I can help fix this now.

kode54 avatar Jun 22 '24 04:06 kode54

Thanks, work fine.

marillat avatar Jul 03 '24 18:07 marillat