You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Configuration:
OS: Ubuntu 18.04.1 LTS
Libsourcey: commit: ce311ff, date: Sun Mar 25 12:32:55 2018, tag: 1.1.4
WebRTC: webrtc-22215-ab42706-linux-x64.tar.gz from this page
OpenCV: 3.4.2 installed using this script
I've successfully compiled libsourcey flowing this tutorial
I've used prebuild WebRTC libraries except building it myself. The flags I've used:
To compile the mentioned example I've created ~/libsourcey/src/webrtc/samples/custom_opencv_video_capture which contains CustomVideoCapturer.cpp and CustomVideoCapturer.h and added add_subdirectory(custom_opencv_video_capture) to ~/libsourcey/src/webrtc/samples/CMakeLists.txt
Is suspect that the errors are due to old version of example (the former is from 2014)
Is there more recent version of mentioned example ?
Errors during compilation:
[ 97%] Building CXX object webrtc/samples/custom_opencv_video_capture/CMakeFiles/marek.dir/CustomVideoCapturer.cpp.o
In file included from /home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:1:0:
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:19:50: error: ‘uint32’ was not declared in this scope
virtual bool GetPreferredFourccs(std::vector<uint32>* fourccs) override;
^~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:19:50: note: suggested alternative: ‘rintf32’
virtual bool GetPreferredFourccs(std::vector<uint32>* fourccs) override;
^~~~~~
rintf32
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:19:56: error: template argument 1 is invalid
virtual bool GetPreferredFourccs(std::vector<uint32>* fourccs) override;
^
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:19:56: error: template argument 2 is invalid
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:24:49: error: ISO C++ forbids declaration of ‘DISALLOW_COPY_AND_ASSIGN’ with no type [-fpermissive]
DISALLOW_COPY_AND_ASSIGN(CustomVideoCapturer);
^
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:29:58: error: ‘CapturedFrame’ in namespace ‘cricket’ does not name a type
void SignalFrameCapturedOnStartThread(const cricket::CapturedFrame* frame);
^~~~~~~~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:32:10: error: ‘Thread’ in namespace ‘rtc’ does not name a type
rtc::Thread* m_startThread; //video capture thread
^~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:19:18: error: ‘virtual bool videocapture::CustomVideoCapturer::GetPreferredFourccs(int*)’ marked ‘override’, but does not override
virtual bool GetPreferredFourccs(std::vector<uint32>* fourccs) override;
^~~~~~~~~~~~~~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:24:30: error: cannot declare parameter to be of abstract type ‘videocapture::CustomVideoCapturer’
DISALLOW_COPY_AND_ASSIGN(CustomVideoCapturer);
^~~~~~~~~~~~~~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:8:7: note: because the following virtual functions are pure within ‘videocapture::CustomVideoCapturer’:
class CustomVideoCapturer :
^~~~~~~~~~~~~~~~~~~
In file included from /home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:4:0,
from /home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:1:
/home/marek/webrtc/include/media/base/videocapturer.h:227:16: note: virtual bool cricket::VideoCapturer::GetPreferredFourccs(std::vector<unsigned int>*)
virtual bool GetPreferredFourccs(std::vector<uint32_t>* fourccs) = 0;
^~~~~~~~~~~~~~~~~~~
In file included from /home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:1:0:
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:37:1: error: expected class-name before ‘{’ token
{
^
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:42:59: error: ‘Device’ in namespace ‘cricket’ does not name a type
virtual cricket::VideoCapturer* Create(const cricket::Device& device) {
^~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h: In member function ‘virtual cricket::VideoCapturer* videocapture::VideoCapturerFactoryCustom::Create(const int&)’:
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:45:53: error: request for member ‘id’ in ‘device’, which is of non-class type ‘const int’
return new CustomVideoCapturer( atoi(device.id.c_str()));
^~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:45:64: error: invalid new-expression of abstract class type ‘videocapture::CustomVideoCapturer’
return new CustomVideoCapturer( atoi(device.id.c_str()));
^
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp: In member function ‘virtual cricket::CaptureState videocapture::CustomVideoCapturer::Start(const cricket::VideoFormat&)’:
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:46:5: error: ‘m_startThread’ was not declared in this scope
m_startThread = rtc::Thread::Current();
^~~~~~~~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:46:5: note: suggested alternative: ‘g_pthread’
m_startThread = rtc::Thread::Current();
^~~~~~~~~~~~~
g_pthread
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp: In member function ‘virtual void videocapture::CustomVideoCapturer::Stop()’:
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:63:5: error: ‘m_startThread’ was not declared in this scope
m_startThread = nullptr;
^~~~~~~~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:63:5: note: suggested alternative: ‘g_pthread’
m_startThread = nullptr;
^~~~~~~~~~~~~
g_pthread
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp: In static member function ‘static void* videocapture::CustomVideoCapturer::grabCapture(void*)’:
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:84:28: error: no matching function for call to ‘webrtc::VideoFrame::VideoFrame()’
webrtc::VideoFrame vframe;
^~~~~~
In file included from /home/marek/webrtc/include/media/base/videobroadcaster.h:18:0,
from /home/marek/webrtc/include/media/base/videocapturer.h:25,
from /home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.h:4,
from /home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:1:
/home/marek/webrtc/include/api/video/video_frame.h:40:3: note: candidate: webrtc::VideoFrame::VideoFrame(webrtc::VideoFrame&&)
VideoFrame(VideoFrame&&);
^~~~~~~~~~
/home/marek/webrtc/include/api/video/video_frame.h:40:3: note: candidate expects 1 argument, 0 provided
/home/marek/webrtc/include/api/video/video_frame.h:39:3: note: candidate: webrtc::VideoFrame::VideoFrame(const webrtc::VideoFrame&)
VideoFrame(const VideoFrame&);
^~~~~~~~~~
/home/marek/webrtc/include/api/video/video_frame.h:39:3: note: candidate expects 1 argument, 0 provided
/home/marek/webrtc/include/api/video/video_frame.h:31:3: note: candidate: webrtc::VideoFrame::VideoFrame(const rtc::scoped_refptr<webrtc::VideoFrameBuffer>&, uint32_t, int64_t, webrtc::VideoRotation)
VideoFrame(const rtc::scoped_refptr<VideoFrameBuffer>& buffer,
^~~~~~~~~~
/home/marek/webrtc/include/api/video/video_frame.h:31:3: note: candidate expects 4 arguments, 0 provided
/home/marek/webrtc/include/api/video/video_frame.h:26:3: note: candidate: webrtc::VideoFrame::VideoFrame(const rtc::scoped_refptr<webrtc::VideoFrameBuffer>&, webrtc::VideoRotation, int64_t)
VideoFrame(const rtc::scoped_refptr<VideoFrameBuffer>& buffer,
^~~~~~~~~~
/home/marek/webrtc/include/api/video/video_frame.h:26:3: note: candidate expects 3 arguments, 0 provided
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:85:24: error: ‘class webrtc::VideoFrame’ has no member named ‘CreateEmptyFram ’
if(0 != vframe.CreateEmptyFrame(bgra.cols, bgra.rows, bgra.cols, (bgra.cols+1) /2, (bgra.cols+1) /2) )
^~~~~~~~~~~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:90:25: error: ‘ConvertToI420’ is not a member of ‘webrtc’
if(0 != webrtc::ConvertToI420(webrtc::kBGRA, bgra.ptr(), 0, 0, bgra.cols, bgra.rows, 0, webrtc::kVideoRotation_0, &vframe) ){
^~~~~~~~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:90:25: note: suggested alternative: ‘ConvertFromI420’
if(0 != webrtc::ConvertToI420(webrtc::kBGRA, bgra.ptr(), 0, 0, bgra.cols, bgra.rows, 0, webrtc::kVideoRotation_0, &vframe) ){
^~~~~~~~~~~~~
ConvertFromI420
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:90:47: error: ‘kBGRA’ is not a member of ‘webrtc’
if(0 != webrtc::ConvertToI420(webrtc::kBGRA, bgra.ptr(), 0, 0, bgra.cols, bgra.rows, 0, webrtc::kVideoRotation_0, &vframe) ){
^~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:97:34: error: ‘WebRtcCapturedFrame’ is not a member of ‘cricket’
std::shared_ptr<cricket::WebRtcCapturedFrame> webrtc_frame(new cricket::WebRtcCapturedFrame(vframe, &capture_buffer_[0], length));
^~~~~~~~~~~~~~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:97:34: error: ‘WebRtcCapturedFrame’ is not a member of ‘cricket’
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:97:53: error: template argument 1 is invalid
std::shared_ptr<cricket::WebRtcCapturedFrame> webrtc_frame(new cricket::WebRtcCapturedFrame(vframe, &capture_buffer_[0], length));
^
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:97:72: error: expected type-specifier
std::shared_ptr<cricket::WebRtcCapturedFrame> webrtc_frame(new cricket::WebRtcCapturedFrame(vframe, &capture_buffer_[0], length));
^~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:100:17: error: ‘class videocapture::CustomVideoCapturer’ has no member named m_startThread’
if (vc->m_startThread->IsCurrent()) {
^~~~~~~~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:101:17: error: ‘class videocapture::CustomVideoCapturer’ has no member named SignalFrameCaptured’; did you mean ‘grabCapture’?
vc->SignalFrameCaptured(vc, webrtc_frame.get());
^~~~~~~~~~~~~~~~~~~
grabCapture
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:101:54: error: request for member ‘get’ in ‘webrtc_frame’, which is of non-class type ‘int’
vc->SignalFrameCaptured(vc, webrtc_frame.get());
^~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:103:17: error: ‘class videocapture::CustomVideoCapturer’ has no member named m_startThread’
vc->m_startThread->Invoke<void>(rtc::Bind(&CustomVideoCapturer::SignalFrameCapturedOnStartThread, vc, webrtc_frame.get()));
^~~~~~~~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:103:39: error: expected primary-expression before ‘void’
vc->m_startThread->Invoke<void>(rtc::Bind(&CustomVideoCapturer::SignalFrameCapturedOnStartThread, vc, webrtc_frame.get()));
^~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp: At global scope:
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:109:75: error: ‘CapturedFrame’ in namespace ‘cricket’ does not name a type
void CustomVideoCapturer::SignalFrameCapturedOnStartThread(const cricket::CapturedFrame* frame)
^~~~~~~~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp: In member function ‘void videocapture::CustomVideoCapturer::SignalFrameCapturedOnStartThread(const int*)’:
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:111:5: error: ‘SignalFrameCaptured’ was not declared in this scope
SignalFrameCaptured(this, frame);
^~~~~~~~~~~~~~~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:111:5: note: suggested alternative: ‘grabCapture’
SignalFrameCaptured(this, frame);
^~~~~~~~~~~~~~~~~~~
grabCapture
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp: At global scope:
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:119:59: error: ‘uint32’ was not declared in this scope
bool CustomVideoCapturer::GetPreferredFourccs(std::vector<uint32>* fourccs)
^~~~~~
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:119:59: note: suggested alternative: ‘rintf32’
bool CustomVideoCapturer::GetPreferredFourccs(std::vector<uint32>* fourccs)
^~~~~~
rintf32
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:119:65: error: template argument 1 is invalid
bool CustomVideoCapturer::GetPreferredFourccs(std::vector<uint32>* fourccs)
^
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:119:65: error: template argument 2 is invalid
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp: In member function ‘virtual bool videocapture::CustomVideoCapturer::GetPreferredFourccs(int*)’:
/home/marek/libsourcey/src/webrtc/samples/custom_opencv_video_capture/CustomVideoCapturer.cpp:123:14: error: request for member ‘push_back’ in ‘* fourccs’, which is of non-class type ‘int’
fourccs->push_back(cricket::FOURCC_I420);
^~~~~~~~~
webrtc/samples/custom_opencv_video_capture/CMakeFiles/marek.dir/build.make:62: recipe for target 'webrtc/samples/custom_opencv_video_capture/CMakeFiles/marek.dir/CustomVideoCapturer.cpp.o' failed
make[2]: *** [webrtc/samples/custom_opencv_video_capture/CMakeFiles/marek.dir/CustomVideoCapturer.cpp.o] Error 1
CMakeFiles/Makefile2:2694: recipe for target 'webrtc/samples/custom_opencv_video_capture/CMakeFiles/marek.dir/all' failed
make[1]: *** [webrtc/samples/custom_opencv_video_capture/CMakeFiles/marek.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2
The text was updated successfully, but these errors were encountered:
Configuration:
OS: Ubuntu 18.04.1 LTS
Libsourcey: commit: ce311ff, date: Sun Mar 25 12:32:55 2018, tag: 1.1.4
WebRTC: webrtc-22215-ab42706-linux-x64.tar.gz from this page
OpenCV: 3.4.2 installed using this script
I've successfully compiled libsourcey flowing this tutorial
I've used prebuild WebRTC libraries except building it myself. The flags I've used:
But I'm unable to compile example from this page
To compile the mentioned example I've created
~/libsourcey/src/webrtc/samples/custom_opencv_video_capture
which containsCustomVideoCapturer.cpp
andCustomVideoCapturer.h
and addedadd_subdirectory(custom_opencv_video_capture)
to~/libsourcey/src/webrtc/samples/CMakeLists.txt
Is suspect that the errors are due to old version of example (the former is from 2014)
Is there more recent version of mentioned example ?
Errors during compilation:
The text was updated successfully, but these errors were encountered: