diff --git a/src/video/cameradevice.cpp b/src/video/cameradevice.cpp index 6f4370e36..15edb1470 100644 --- a/src/video/cameradevice.cpp +++ b/src/video/cameradevice.cpp @@ -28,6 +28,9 @@ extern "C" { #include "cameradevice.h" #include "src/persistence/settings.h" +// no longer needed when avformat version < 59 is no longer supported +using AvFindInputFormatRet = decltype(av_find_input_format("")); + #if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) #define USING_V4L 1 #else @@ -68,8 +71,8 @@ extern "C" { QHash CameraDevice::openDevices; QMutex CameraDevice::openDeviceLock, CameraDevice::iformatLock; -AVInputFormat* CameraDevice::iformat{nullptr}; -AVInputFormat* CameraDevice::idesktopFormat{nullptr}; +static AvFindInputFormatRet idesktopFormat{nullptr}; +static AvFindInputFormatRet iformat{nullptr}; CameraDevice::CameraDevice(const QString& devName, AVFormatContext* context) : devName{devName} @@ -89,7 +92,7 @@ CameraDevice* CameraDevice::open(QString devName, AVDictionary** options) goto out; } - AVInputFormat* format; + AvFindInputFormatRet format; if (devName.startsWith("x11grab#")) { devName = devName.mid(8); format = idesktopFormat; diff --git a/src/video/cameradevice.h b/src/video/cameradevice.h index 3ea59b3f2..a721152e1 100644 --- a/src/video/cameradevice.h +++ b/src/video/cameradevice.h @@ -65,7 +65,6 @@ private: std::atomic_int refcount; static QHash openDevices; static QMutex openDeviceLock, iformatLock; - static AVInputFormat *iformat, *idesktopFormat; }; #endif // CAMERADEVICE_H diff --git a/src/video/camerasource.cpp b/src/video/camerasource.cpp index a37856bd8..17d03dbac 100644 --- a/src/video/camerasource.cpp +++ b/src/video/camerasource.cpp @@ -277,7 +277,6 @@ void CameraSource::openDevice() } // We need to create a new CameraDevice - AVCodec* codec; device = CameraDevice::open(deviceName, mode); if (!device) { @@ -321,7 +320,7 @@ void CameraSource::openDevice() AVCodecParameters* cparams = device->context->streams[videoStreamIndex]->codecpar; codecId = cparams->codec_id; #endif - codec = avcodec_find_decoder(codecId); + const AVCodec* codec = avcodec_find_decoder(codecId); if (!codec) { qWarning() << "Codec not found"; emit openFailed();