mika314 / obs-airplay

OBS plugin to capture screen mirroring from iOS and macOS devices
GNU General Public License v2.0
37 stars 9 forks source link

Compile error #1

Closed whwuth closed 1 month ago

whwuth commented 2 years ago

`$ coddle

Loading config: coddle-repo/libraries.toml Loading config: .coddle/remote/libraries.toml ar r .coddle/a/libuxplay.a .coddle/libs_artifacts/uxplay/byteutils.c.o .coddle/libs_artifacts/uxplay/crypto.c.o .coddle/libs_artifacts/uxplay/dnssd.c.o .coddle/libs_artifacts/uxplay/fairplay_playfair.c.o .coddle/libs_artifacts/uxplay/http_request.c.o .coddle/libs_artifacts/uxplay/http_response.c.o .coddle/libs_artifacts/uxplay/httpd.c.o .coddle/libs_artifacts/uxplay/logger.c.o .coddle/libs_artifacts/uxplay/mirror_buffer.c.o .coddle/libs_artifacts/uxplay/netutils.c.o .coddle/libs_artifacts/uxplay/pairing.c.o .coddle/libs_artifacts/uxplay/raop.c.o .coddle/libs_artifacts/uxplay/raop_buffer.c.o .coddle/libs_artifacts/uxplay/raop_ntp.c.o .coddle/libs_artifacts/uxplay/raop_rtp.c.o .coddle/libs_artifacts/uxplay/raop_rtp_mirror.c.o .coddle/libs_artifacts/uxplay/utils.c.o clang++ -std=c++20 $(pkg-config --cflags fdk-aac libavcodec libavutil libobs libswscale) -IUxPlay/lib -IUxPlay/lib/ -Wall -Wextra -gdwarf-3 -O3 -march=native -fPIC -I.coddle/libs_src -c ./h264-decoder.cpp -o .coddle/h264-decoder.cpp.o ./h264-decoder.cpp:14:5: error: cannot initialize a member subobject of type 'struct AVCodec ' with an rvalue of type 'const AVCodec ' : codec(avcodec_find_decoder(AV_CODEC_ID_H264)), ^ ~~~~~~~~~~ ./h264-decoder.cpp:48:23: error: use of undeclared identifier 'avcodec_decode_video2'; did you mean 'avcodec_decode_subtitle2'? const auto result = avcodec_decode_video2(ctx, yuvPicture, &got_picture, pkt); ^~~~~ avcodec_decode_subtitle2 /usr/include/libavcodec/avcodec.h:2531:5: note: 'avcodec_decode_subtitle2' declared here int avcodec_decode_subtitle2(AVCodecContext avctx, AVSubtitle sub, ^ ./h264-decoder.cpp:48:50: error: cannot initialize a parameter of type 'AVSubtitle ' with an lvalue of type 'struct AVFrame ' const auto result = avcodec_decode_video2(ctx, yuvPicture, &got_picture, pkt); ^~~~~~ /usr/include/libavcodec/avcodec.h:2531:65: note: passing argument to parameter 'sub' here int avcodec_decode_subtitle2(AVCodecContext avctx, AVSubtitle sub, ^ 3 errors generated. terminate called after throwing an instance of 'int' fish: Job 1, 'coddle' terminated by signal SIGABRT (Abort)`

mika314 commented 2 years ago

What OS are you using? What version of ffmpeg? If you are running Ubuntu like OS you can find it by typing in the console:

apt list ffmpeg
revmischa commented 11 months ago

I'm getting the same errors

ar r .coddle/a/libuxplay.a .coddle/libs_artifacts/uxplay/byteutils.c.o .coddle/libs_artifacts/uxplay/crypto.c.o .coddle/libs_artifacts/uxplay/dnssd.c.o .coddle/libs_artifacts/uxplay/fairplay_playfair.c.o .coddle/libs_artifacts/uxplay/http_request.c.o .coddle/libs_artifacts/uxplay/http_response.c.o .coddle/libs_artifacts/uxplay/httpd.c.o .coddle/libs_artifacts/uxplay/logger.c.o .coddle/libs_artifacts/uxplay/mirror_buffer.c.o .coddle/libs_artifacts/uxplay/netutils.c.o .coddle/libs_artifacts/uxplay/pairing.c.o .coddle/libs_artifacts/uxplay/raop.c.o .coddle/libs_artifacts/uxplay/raop_buffer.c.o .coddle/libs_artifacts/uxplay/raop_ntp.c.o .coddle/libs_artifacts/uxplay/raop_rtp.c.o .coddle/libs_artifacts/uxplay/raop_rtp_mirror.c.o .coddle/libs_artifacts/uxplay/utils.c.o
ar: creating .coddle/a/libuxplay.a
clang++ -std=c++20 $(pkg-config --cflags fdk-aac libavcodec libavutil libobs libswscale) -IUxPlay/lib -IUxPlay/lib/ -Wall -Wextra -gdwarf-3 -O3 -march=native -fPIC -I.coddle/libs_src -c ./h264-decoder.cpp -o .coddle/h264-decoder.cpp.o
clang++ -std=c++20 $(pkg-config --cflags fdk-aac libavcodec libavutil libobs libswscale) -IUxPlay/lib -IUxPlay/lib/ -Wall -Wextra -gdwarf-3 -O3 -march=native -fPIC -I.coddle/libs_src -c ./audio-decoder.cpp -o .coddle/audio-decoder.cpp.o
clang++ -std=c++20 $(pkg-config --cflags fdk-aac libavcodec libavutil libobs libswscale) -IUxPlay/lib -IUxPlay/lib/ -Wall -Wextra -gdwarf-3 -O3 -march=native -fPIC -I.coddle/libs_src -c ./airplay.cpp -o .coddle/airplay.cpp.o
clang++ -std=c++20 $(pkg-config --cflags fdk-aac libavcodec libavutil libobs libswscale) -IUxPlay/lib -IUxPlay/lib/ -Wall -Wextra -gdwarf-3 -O3 -march=native -fPIC -I.coddle/libs_src -c ./plugin.cpp -o .coddle/plugin.cpp.o
./h264-decoder.cpp:14:5: error: cannot initialize a member subobject of type 'struct AVCodec *' with an rvalue of type 'const AVCodec *'
  : codec(avcodec_find_decoder(AV_CODEC_ID_H264)),
    ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./h264-decoder.cpp:48:23: error: use of undeclared identifier 'avcodec_decode_video2'; did you mean 'avcodec_decode_subtitle2'?
  const auto result = avcodec_decode_video2(ctx, yuvPicture, &got_picture, pkt);
                      ^~~~~~~~~~~~~~~~~~~~~
                      avcodec_decode_subtitle2
/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:2545:5: note: 'avcodec_decode_subtitle2' declared here
int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
    ^
./h264-decoder.cpp:48:50: error: cannot initialize a parameter of type 'AVSubtitle *' with an lvalue of type 'struct AVFrame *'
  const auto result = avcodec_decode_video2(ctx, yuvPicture, &got_picture, pkt);
                                                 ^~~~~~~~~~
/usr/include/x86_64-linux-gnu/libavcodec/avcodec.h:2545:65: note: passing argument to parameter 'sub' here
int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
                                                                ^
3 errors generated.
terminate called after throwing an instance of 'int'
[1]    457966 IOT instruction (core dumped)  coddle
❯ apt list ffmpeg
Listing... Done
ffmpeg/lunar,now 7:5.1.2-3ubuntu1 amd64 [installed,automatic]
ffmpeg/lunar 7:5.1.2-3ubuntu1 i386
jerrywcy commented 11 months ago

Me too the same error.

> coddle
Loading config: .coddle/remote/libraries.toml
Loading config: coddle-repo/libraries.toml
ar r .coddle/a/libuxplay.a .coddle/libs_artifacts/uxplay/byteutils.c.o .coddle/libs_artifacts/uxplay/crypto.c.o .coddle/libs_artifacts/uxplay/dnssd.c.o .coddle/libs_artifacts/uxplay/fairplay_playfair.c.o .coddle/libs_artifacts/uxplay/http_request.c.o .coddle/libs_artifacts/uxplay/http_response.c.o .coddle/libs_artifacts/uxplay/httpd.c.o .coddle/libs_artifacts/uxplay/logger.c.o .coddle/libs_artifacts/uxplay/mirror_buffer.c.o .coddle/libs_artifacts/uxplay/netutils.c.o .coddle/libs_artifacts/uxplay/pairing.c.o .coddle/libs_artifacts/uxplay/raop.c.o .coddle/libs_artifacts/uxplay/raop_buffer.c.o .coddle/libs_artifacts/uxplay/raop_ntp.c.o .coddle/libs_artifacts/uxplay/raop_rtp.c.o .coddle/libs_artifacts/uxplay/raop_rtp_mirror.c.o .coddle/libs_artifacts/uxplay/utils.c.o
clang++ -std=c++20 $(pkg-config --cflags fdk-aac libavcodec libavutil libobs libswscale) -IUxPlay/lib -IUxPlay/lib/ -Wall -Wextra -gdwarf-3 -O3 -march=native -fPIC -I.coddle/libs_src -c ./h264-decoder.cpp -o .coddle/h264-decoder.cpp.o
./h264-decoder.cpp:14:5: error: cannot initialize a member subobject of type 'struct AVCodec *' with an rvalue of type 'const AVCodec *'
  : codec(avcodec_find_decoder(AV_CODEC_ID_H264)),
    ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./h264-decoder.cpp:48:23: error: use of undeclared identifier 'avcodec_decode_video2'; did you mean 'avcodec_decode_subtitle2'?
  const auto result = avcodec_decode_video2(ctx, yuvPicture, &got_picture, pkt);
                      ^~~~~~~~~~~~~~~~~~~~~
                      avcodec_decode_subtitle2
/usr/include/libavcodec/avcodec.h:2527:5: note: 'avcodec_decode_subtitle2' declared here
int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
    ^
./h264-decoder.cpp:48:50: error: cannot initialize a parameter of type 'AVSubtitle *' with an lvalue of type 'struct AVFrame *'
  const auto result = avcodec_decode_video2(ctx, yuvPicture, &got_picture, pkt);
                                                 ^~~~~~~~~~
/usr/include/libavcodec/avcodec.h:2527:65: note: passing argument to parameter 'sub' here
int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
                                                                ^
3 errors generated.
terminate called after throwing an instance of 'int'
[1]    989501 IOT instruction (core dumped)  coddle

System: Arch Linux

Linux wcythinkpad 6.1.53-1-lts #1 SMP PREEMPT_DYNAMIC Wed, 13 Sep 2023 09:32:00 +0000 x86_64 GNU/Linux

ffmpeg version:

> ffmpeg -version
ffmpeg version n6.0 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 13.2.1 (GCC) 20230801
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libjxl --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-opencl --enable-opengl --enable-shared --enable-version3 --enable-vulkan
libavutil      58.  2.100 / 58.  2.100
libavcodec     60.  3.100 / 60.  3.100
libavformat    60.  3.100 / 60.  3.100
libavdevice    60.  1.100 / 60.  1.100
libavfilter     9.  3.100 /  9.  3.100
libswscale      7.  1.100 /  7.  1.100
libswresample   4. 10.100 /  4. 10.100
libpostproc    57.  1.100 / 57.  1.100
jlfranklin commented 2 months ago

I'm getting similar errors in Debian 12. Borrowing the meat of a patch from MythTV allows it to build without the deprecated call to avcodec_decode_video2().

jlfranklin commented 1 month ago

This issue can be closed.