1*4882a593SmuzhiyunFrom 4c92a2869b9a8f736a12ba859b74e5cadce62387 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Fabrice Fontaine <fontaine.fabrice@gmail.com> 3*4882a593SmuzhiyunDate: Fri, 12 Nov 2021 09:50:17 +0100 4*4882a593SmuzhiyunSubject: [PATCH] modules/videoio/src/cap_ffmpeg_impl.hpp: fix build with gcc 5*4882a593Smuzhiyun 4.8 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunFix the following build failure with gcc 4.8: 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunIn file included from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg_impl.hpp:100:0, 10*4882a593Smuzhiyun from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg.cpp:50: 11*4882a593Smuzhiyun/home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg_hw.hpp: In constructor 'HWAccelIterator::HWAccelIterator(cv::VideoAccelerationType, bool, AVDictionary*)': 12*4882a593Smuzhiyun/home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg_hw.hpp:939:23: error: use of deleted function 'std::basic_istringstream<char>& std::basic_istringstream<char>::operator=(const std::basic_istringstream<char>&)' 13*4882a593Smuzhiyun s_stream_ = std::istringstream(accel_list); 14*4882a593Smuzhiyun ^ 15*4882a593SmuzhiyunIn file included from /home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/arm-none-linux-gnueabi/include/c++/4.8.3/complex:45:0, 16*4882a593Smuzhiyun from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/core/include/opencv2/core/cvstd.inl.hpp:47, 17*4882a593Smuzhiyun from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/core/include/opencv2/core.hpp:3306, 18*4882a593Smuzhiyun from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/include/opencv2/videoio.hpp:46, 19*4882a593Smuzhiyun from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/precomp.hpp:57, 20*4882a593Smuzhiyun from /home/buildroot/autobuild/instance-3/output-1/build/opencv4-4.5.4/modules/videoio/src/cap_ffmpeg.cpp:42: 21*4882a593Smuzhiyun/home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/arm-none-linux-gnueabi/include/c++/4.8.3/sstream:272:11: note: 'std::basic_istringstream<char>& std::basic_istringstream<char>::operator=(const std::basic_istringstream<char>&)' is implicitly deleted because the default definition would be ill-formed: 22*4882a593Smuzhiyun class basic_istringstream : public basic_istream<_CharT, _Traits> 23*4882a593Smuzhiyun ^ 24*4882a593Smuzhiyun/home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/arm-none-linux-gnueabi/include/c++/4.8.3/sstream:272:11: error: use of deleted function 'std::basic_istream<char>& std::basic_istream<char>::operator=(const std::basic_istream<char>&)' 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunFixes: 27*4882a593Smuzhiyun - http://autobuild.buildroot.org/results/60f8846b435dafda0ced412d59ffe15bdff0810d 28*4882a593Smuzhiyun 29*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 30*4882a593Smuzhiyun[Retrieved from: 31*4882a593Smuzhiyunhttps://github.com/opencv/opencv/commit/4c92a2869b9a8f736a12ba859b74e5cadce62387] 32*4882a593Smuzhiyun--- 33*4882a593Smuzhiyun modules/videoio/src/cap_ffmpeg_impl.hpp | 6 ++++++ 34*4882a593Smuzhiyun 1 file changed, 6 insertions(+) 35*4882a593Smuzhiyun 36*4882a593Smuzhiyundiff --git a/modules/videoio/src/cap_ffmpeg_impl.hpp b/modules/videoio/src/cap_ffmpeg_impl.hpp 37*4882a593Smuzhiyunindex d393b73ff4a2..76e1b855b7c8 100644 38*4882a593Smuzhiyun--- a/modules/videoio/src/cap_ffmpeg_impl.hpp 39*4882a593Smuzhiyun+++ b/modules/videoio/src/cap_ffmpeg_impl.hpp 40*4882a593Smuzhiyun@@ -93,6 +93,12 @@ extern "C" { 41*4882a593Smuzhiyun } 42*4882a593Smuzhiyun #endif 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun+// GCC 4.x compilation bug. Details: https://github.com/opencv/opencv/issues/20292 45*4882a593Smuzhiyun+#if (defined(__GNUC__) && __GNUC__ < 5) && !defined(__clang__) 46*4882a593Smuzhiyun+#undef USE_AV_HW_CODECS 47*4882a593Smuzhiyun+#define USE_AV_HW_CODECS 0 48*4882a593Smuzhiyun+#endif 49*4882a593Smuzhiyun+ 50*4882a593Smuzhiyun //#define USE_AV_HW_CODECS 0 51*4882a593Smuzhiyun #ifndef USE_AV_HW_CODECS 52*4882a593Smuzhiyun #if LIBAVUTIL_VERSION_MAJOR >= 56 // FFMPEG 4.0+ 53