AkarinVS / L-SMASH-Works

Works based on L-SMASH project; This repo focuses on the common portion and the VapourSynth plugin. AviSynth users please use https://github.com/HomeOfAviSynthPlusEvolution/L-SMASH-Works. ffmpeg 5.0+ please use ffmpeg-4.5 branch.
47 stars 11 forks source link

Support ffmpeg 7.0 #33

Open FlyingWombat opened 4 months ago

FlyingWombat commented 4 months ago

Please consider updating to support ffmpeg 7.0.

ffmpeg 7.0 featured a significant refactoring of the encoder pipeline for multi-thread support, and other improvements.

yuygfgg commented 3 weeks ago
[3/9] Compiling C object libvslsmashsource.dylib.p/.._common_libavsmash.c.o
FAILED: libvslsmashsource.dylib.p/.._common_libavsmash.c.o 
/opt/homebrew/opt/llvm/bin/clang -Ilibvslsmashsource.dylib.p -I. -I.. -I/opt/homebrew/Cellar/zimg/3.0.5/include -I/usr/local/include/vapoursynth -I/usr/local/include -I/opt/homebrew/Cellar/ffmpeg/7.0.2-with-options/include -fvisibility=hidden -fdiagnostics-color=always -DNDEBUG -Wall -Winvalid-pch -std=c99 -O3 -DXXH_INLINE_ALL -D_FILE_OFFSET_BITS=64 '-DDEFAULT_CACHEDIR=""' -MD -MQ libvslsmashsource.dylib.p/.._common_libavsmash.c.o -MF libvslsmashsource.dylib.p/.._common_libavsmash.c.o.d -o libvslsmashsource.dylib.p/.._common_libavsmash.c.o -c ../../common/libavsmash.c
../../common/libavsmash.c:895:23: error: no member named 'channels' in 'struct AVCodecParameters'
  895 |             codecpar->channels              = config->queue.channels        ? config->queue.channels        : audio->channels;
      |             ~~~~~~~~  ^
../../common/libavsmash.c:972:31: error: no member named 'channel_layout' in 'struct AVCodecContext'
  972 |                 else if( ctx->channel_layout == 0 && ctx->channels == 0 )
      |                          ~~~  ^
../../common/libavsmash.c:972:59: error: no member named 'channels' in 'struct AVCodecContext'
  972 |                 else if( ctx->channel_layout == 0 && ctx->channels == 0 )
      |                                                      ~~~  ^
../../common/libavsmash.c:981:49: error: no member named 'channel_layout' in 'struct AVCodecContext'
  981 |         } while( ctx->sample_rate == 0 || (ctx->channel_layout == 0 && ctx->channels == 0) || ctx->sample_fmt == AV_SAMPLE_FMT_NONE );
      |                                            ~~~  ^
../../common/libavsmash.c:981:77: error: no member named 'channels' in 'struct AVCodecContext'
  981 |         } while( ctx->sample_rate == 0 || (ctx->channel_layout == 0 && ctx->channels == 0) || ctx->sample_fmt == AV_SAMPLE_FMT_NONE );
      |                                                                        ~~~  ^
../../common/libavsmash.c:982:41: error: no member named 'channel_layout' in 'struct AVCodecContext'
  982 |         extended->channel_layout = ctx->channel_layout ? ctx->channel_layout : av_get_default_channel_layout( ctx->channels );
      |                                    ~~~  ^
../../common/libavsmash.c:982:63: error: no member named 'channel_layout' in 'struct AVCodecContext'
  982 |         extended->channel_layout = ctx->channel_layout ? ctx->channel_layout : av_get_default_channel_layout( ctx->channels );
      |                                                          ~~~  ^
../../common/libavsmash.c:982:80: error: call to undeclared function 'av_get_default_channel_layout'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
  982 |         extended->channel_layout = ctx->channel_layout ? ctx->channel_layout : av_get_default_channel_layout( ctx->channels );
      |                                                                                ^
../../common/libavsmash.c:982:116: error: no member named 'channels' in 'struct AVCodecContext'
  982 |         extended->channel_layout = ctx->channel_layout ? ctx->channel_layout : av_get_default_channel_layout( ctx->channels );
      |                                                                                                               ~~~  ^
../../common/libavsmash.c:1039:51: error: no member named 'channel_layout' in 'struct AVCodecContext'
 1039 |     config->prefer.channel_layout  = config->ctx->channel_layout
      |                                      ~~~~~~~~~~~  ^
../../common/libavsmash.c:1040:51: error: no member named 'channel_layout' in 'struct AVCodecContext'
 1040 |                                    ? config->ctx->channel_layout
      |                                      ~~~~~~~~~~~  ^
../../common/libavsmash.c:1041:38: error: call to undeclared function 'av_get_default_channel_layout'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1041 |                                    : av_get_default_channel_layout( config->ctx->channels );
      |                                      ^
../../common/libavsmash.c:1041:82: error: no member named 'channels' in 'struct AVCodecContext'
 1041 |                                    : av_get_default_channel_layout( config->ctx->channels );
      |                                                                     ~~~~~~~~~~~  ^
../../common/libavsmash.c:1071:17: error: call to undeclared function 'av_get_channel_layout_nb_channels'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
 1071 |             if( av_get_channel_layout_nb_channels( config->ctx->channel_layout )
      |                 ^
../../common/libavsmash.c:1071:65: error: no member named 'channel_layout' in 'struct AVCodecContext'
 1071 |             if( av_get_channel_layout_nb_channels( config->ctx->channel_layout )
      |                                                    ~~~~~~~~~~~  ^
../../common/libavsmash.c:1073:62: error: no member named 'channel_layout' in 'struct AVCodecContext'
 1073 |                 config->prefer.channel_layout = config->ctx->channel_layout;
      |                                                 ~~~~~~~~~~~  ^
16 errors generated.