-
Notifications
You must be signed in to change notification settings - Fork 7.2k
Torchvision doesn't compile against ffmpeg-5 #5616
Copy link
Copy link
Closed
Labels
Description
🐛 Describe the bug
Steps to reproduce:
- Install torchvision nightly from conda:
conda install -y -c pytorch-nightly torchvision. This will also install ffmpeg-5 from conda - Compile torchvision from source:
python setup.py install - The compile fails with the following error:
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:21:36: error: use of enum ‘AVLockOp’ without previous declaration
int ffmpeg_lock(void** mutex, enum AVLockOp op) {
^~~~~~~~
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp: In function ‘int ffmpeg::{anonymous}::ffmpeg_lock(void**, int)’:
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:24:10: error: ‘AV_LOCK_CREATE’ was not declared in this scope
case AV_LOCK_CREATE:
^~~~~~~~~~~~~~
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:24:10: note: suggested alternative: ‘AV_LOG_TRACE’
case AV_LOCK_CREATE:
^~~~~~~~~~~~~~
AV_LOG_TRACE
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:27:10: error: ‘AV_LOCK_OBTAIN’ was not declared in this scope
case AV_LOCK_OBTAIN:
^~~~~~~~~~~~~~
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:27:10: note: suggested alternative: ‘CLOCK_TAI’
case AV_LOCK_OBTAIN:
^~~~~~~~~~~~~~
CLOCK_TAI
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:30:10: error: ‘AV_LOCK_RELEASE’ was not declared in this scope
case AV_LOCK_RELEASE:
^~~~~~~~~~~~~~~
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:30:10: note: suggested alternative: ‘AV_LOG_VERBOSE’
case AV_LOCK_RELEASE:
^~~~~~~~~~~~~~~
AV_LOG_VERBOSE
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:33:10: error: ‘AV_LOCK_DESTROY’ was not declared in this scope
case AV_LOCK_DESTROY:
^~~~~~~~~~~~~~~
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:33:10: note: suggested alternative: ‘AV_LOG_ERROR’
case AV_LOCK_DESTROY:
^~~~~~~~~~~~~~~
AV_LOG_ERROR
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp: In lambda function:
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:206:5: error: ‘av_lockmgr_register’ was not declared in this scope
av_lockmgr_register(&ffmpeg_lock);
^~~~~~~~~~~~~~~~~~~
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp: In member function ‘virtual bool ffmpeg::Decoder::init(const ffmpeg::DecoderParameters&, ffmpeg::DecoderInCallback&&, std::vector<ffmpeg::DecoderMetadata>*)’:
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:280:33: error: invalid conversion from ‘const AVInputFormat*’ to ‘AVInputFormat*’ [-fpermissive]
fmt = av_find_input_format(fmtName);
~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp: In member function ‘int ffmpeg::Decoder::getFrame(size_t)’:
/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:509:27: warning: ‘void av_init_packet(AVPacket*)’ is deprecated [-Wdeprecated-declarations]
av_init_packet(&avPacket);
^
In file included from /home/ec2-user/anaconda3/envs/pr-ci/include/libavcodec/avcodec.h:45:0,
from /home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/defs.h:12,
from /home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/seekable_buffer.h:3,
from /home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.h:5,
from /home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder/decoder.cpp:1:
/home/ec2-user/anaconda3/envs/pr-ci/include/libavcodec/packet.h:506:6: note: declared here
void av_init_packet(AVPacket *pkt);
^~~~~~~~~~~~~~
[15/16] c++ -MMD -MF /home/ec2-user/nvme/srcs/vision/build/temp.linux-x86_64-3.7/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/video_reader/video_reader.o.d -pthread -B /home/ec2-user/anaconda3/envs/pr-ci/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder -I/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/video_reader -I/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/video -I/home/ec2-user/nvme/srcs/vision/torchvision/csrc -I/home/ec2-user/anaconda3/envs/pr-ci/include -I/home/ec2-user/nvme/srcs/vision/torchvision/csrc -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include/TH -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include/TH -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include/THC -I/home/ec2-user/anaconda3/envs/pr-ci/include/python3.7m -c -c /home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/video_reader/video_reader.cpp -o /home/ec2-user/nvme/srcs/vision/build/temp.linux-x86_64-3.7/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/video_reader/video_reader.o -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=video_reader -D_GLIBCXX_USE_CXX11_ABI=1
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
[16/16] c++ -MMD -MF /home/ec2-user/nvme/srcs/vision/build/temp.linux-x86_64-3.7/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/video/video.o.d -pthread -B /home/ec2-user/anaconda3/envs/pr-ci/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/decoder -I/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/video_reader -I/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/video -I/home/ec2-user/nvme/srcs/vision/torchvision/csrc -I/home/ec2-user/anaconda3/envs/pr-ci/include -I/home/ec2-user/nvme/srcs/vision/torchvision/csrc -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include/TH -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include/THC -I/usr/local/cuda/include -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include/torch/csrc/api/include -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include/TH -I/home/ec2-user/anaconda3/envs/pr-ci/lib/python3.7/site-packages/torch/include/THC -I/home/ec2-user/anaconda3/envs/pr-ci/include/python3.7m -c -c /home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/video/video.cpp -o /home/ec2-user/nvme/srcs/vision/build/temp.linux-x86_64-3.7/home/ec2-user/nvme/srcs/vision/torchvision/csrc/io/video/video.o -std=c++14 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=video_reader -D_GLIBCXX_USE_CXX11_ABI=1
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
The error doesn't happen with an older version of ffmpeg e.g. 4.4.1
Versions
Torchvision nightly + main branch
Reactions are currently unavailable