videosegmentation / video_segment

Main repository for The Video Segmentation Project
Other
167 stars 80 forks source link

gcc version and c++11 support #5

Open shengxinzha opened 10 years ago

shengxinzha commented 10 years ago

What gcc/ g++ version does it require? It would be nice to list compiler version requirement.

grundman commented 10 years ago

Right, 4.6 is pretty outdated and has spotty c++11 support. We have successfully tested with clang 3.4 and gcc 4.7.2.

(810) 643-1383 www.mgrundmann.com

On Thu, Jul 10, 2014 at 8:23 AM, shengxinzha notifications@github.com wrote:

What gcc version does it require? Ubuntu 12.04 default gcc version is 4.6, which doesn't support some of the features implemented in c++11.

Reply to this email directly or view it on GitHub https://github.com/videosegmentation/video_segment/issues/5.

shengxinzha commented 10 years ago

Thanks Matthias! I generated the makefile by running "CC=gcc-4.7 CXX=g++-4.7 cmake ". But then the compiler complains about declaration and forward declaration of some class members. Any idea?

Thanks, Shengxin

grundman commented 10 years ago

Which errors are you getting? Note that 4.7 does not support delegating constructors, not sure if that might be an issue, as we only tested with 4.7.2. Can you paste your logs, plz.

(810) 643-1383 www.mgrundmann.com

On Thu, Jul 10, 2014 at 10:18 AM, shengxinzha notifications@github.com wrote:

Thanks Matthias! I generated the makefile by running "CC=gcc-4.7 CXX=g++-4.7 cmake ". But then the compiler complains about declaration and forward declaration of some class members. Any idea?

Thanks, Shengxin

Reply to this email directly or view it on GitHub https://github.com/videosegmentation/video_segment/issues/5#issuecomment-48635265 .

shengxinzha commented 10 years ago

Here's the make log. Thanks!

[ 6%] Built target base [ 9%] Built target imagefilter [ 29%] Built target segment_util [ 32%] [ 35%] [ 38%] Building CXX object video_framework/CMakeFiles/video_framework.dir/video_reader_unit.cpp.o Building CXX object video_framework/CMakeFiles/video_framework.dir/video_writer_unit.cpp.o Building CXX object video_framework/CMakeFiles/video_framework.dir/flow_reader.cpp.o /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_reader_unit.cpp: In member function âvirtual bool video_framework::VideoReaderUnit::OpenStreams(videoframework::StreamSet)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_reader_unit.cpp:214:31: error: âav_frame_allocâ was not declared in this scope frameyuv = av_frame_alloc(); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_writer_unit.cpp: In member function âvirtual bool video_framework::VideoWriterUnit::OpenStreams(videoframework::StreamSet)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_writer_unit.cpp:126:53: error: âavformat_alloc_output_context2â was not declared in this scope videofile.c_str()); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_writer_unit.cpp:203:34: error: âav_frame_allocâ was not declared in this scope frameencode = av_frame_alloc(); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_writer_unit.cpp: In member function âint videoframework::VideoWriterUnit::EncodeFrame(AVFrame, int_)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_writer_unit.cpp:292:76: error: âavcodec_encode_video2â was not declared in this scope ret_val = avcodec_encode_video2(codeccontext, &packet, frame, got_frame); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_reader_unit.cpp: In member function âvideo_framework::VideoFrame* video_framework::VideoReaderUnit::ReadNextFrameImpl(const AVPacket&)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_reader_unit.cpp:380:72: error: âav_rescale_qâ was not declared in this scope formatcontext->streams[video_streamidx]->time_base); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_reader_unit.cpp: In member function âvirtual bool video_framework::VideoReaderUnit::SeekImpl(int64_t)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_reader_unit.cpp:411:33: error: âav_rescale_qâ was not declared in this scope source_timebase); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp: In member function âvirtual bool video_framework::DenseFlowUnit::OpenStreams(videoframework::StreamSet)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:190:19: error: âcreateOptFlow_DualTVL1â is not a member of âcvâ flowengine = cv::createOptFlow_DualTVL1(); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:191:18: error: invalid use of incomplete type âclass cv::DenseOpticalFlowâ (_flowengine)->set("warps", options_.num_warps); ^ In file included from /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:29:0: /home/shengxin/src/graph-videoseg/video_segment-master/seg_tree_sample/../video_framework/flow_reader.h:37:9: error: forward declaration of âclass cv::DenseOpticalFlowâ class DenseOpticalFlow; ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:192:18: error: invalid use of incomplete type âclass cv::DenseOpticalFlowâ (_flowengine)->set("iterations", options_.flow_iterations); ^ In file included from /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:29:0: /home/shengxin/src/graph-videoseg/video_segment-master/seg_tree_sample/../video_framework/flow_reader.h:37:9: error: forward declaration of âclass cv::DenseOpticalFlowâ class DenseOpticalFlow; ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp: In member function âvirtual void video_framework::DenseFlowUnit::ProcessFrame(video_framework::FrameSetPtr, std::liststd::shared_ptr<std::vector<std::shared_ptr > >_)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:277:22: error: invalid use of incomplete type âclass cv::DenseOpticalFlowâ (_flowengine)->calc(_previmg, image, flow_field); ^ In file included from /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:29:0: /home/shengxin/src/graph-videoseg/video_segment-master/seg_tree_sample/../video_framework/flow_reader.h:37:9: error: forward declaration of âclass cv::DenseOpticalFlowâ class DenseOpticalFlow; ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:294:22: error: invalid use of incomplete type âclass cv::DenseOpticalFlowâ (_flowengine)->calc(image, previmg, flow_field); ^ In file included from /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:29:0: /home/shengxin/src/graph-videoseg/video_segment-master/seg_tree_sample/../video_framework/flowreader.h:37:9: error: forward declaration of âclass cv::DenseOpticalFlowâ class DenseOpticalFlow; ^ make[2]: ** [video_framework/CMakeFiles/video_framework.dir/video_writer_unit.cpp.o] Error 1 make[2]: * Waiting for unfinished jobs.... make[2]: * [video_framework/CMakeFiles/video_framework.dir/video_reader_unit.cpp.o] Error 1 make[2]: * [video_framework/CMakeFiles/video_framework.dir/flow_reader.cpp.o] Error 1 make[1]: * [video_framework/CMakeFiles/video_framework.dir/all] Error 2 make: *\ [all] Error 2

grundman commented 10 years ago

Looks like you are using outdated versions of ffmpeg and OpenCV. (I will update the readme with required minimum version). Please try updating both libraries to the most recent versions. For ffmpeg there are some pre-compiled packages that can be downloaded from their website.

(810) 643-1383 www.mgrundmann.com

On Thu, Jul 10, 2014 at 10:29 AM, shengxinzha notifications@github.com wrote:

Here's the make log. Thanks!

[ 6%] Built target base [ 9%] Built target imagefilter [ 29%] Built target segment_util [ 32%] [ 35%] [ 38%] Building CXX object video_framework/CMakeFiles/video_framework.dir/video_reader_unit.cpp.o Building CXX object video_framework/CMakeFiles/video_framework.dir/video_writer_unit.cpp.o Building CXX object video_framework/CMakeFiles/video_framework.dir/flow_reader.cpp.o /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_reader_unit.cpp: In member function âvirtual bool video_framework::VideoReaderUnit::OpenStreams(videoframework::StreamSet)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_reader_unit.cpp:214:31: error: âav_frame_allocâ was not declared in this scope frameyuv = av_frame_alloc(); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_writer_unit.cpp: In member function âvirtual bool video_framework::VideoWriterUnit::OpenStreams(videoframework::StreamSet)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_writer_unit.cpp:126:53: error: âavformat_alloc_output_context2â was not declared in this scope videofile.c_str()); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_writer_unit.cpp:203:34: error: âav_frame_allocâ was not declared in this scope frameencode = av_frame_alloc(); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_writer_unit.cpp: In member function âint videoframework::VideoWriterUnit::EncodeFrame(AVFrame, int_)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_writer_unit.cpp:292:76: error: âavcodec_encode_video2â was not declared in this scope ret_val = avcodec_encode_video2(codeccontext, &packet, frame, got_frame); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_reader_unit.cpp: In member function âvideo_framework::VideoFrame video_framework::VideoReaderUnit::ReadNextFrameImpl(const AVPacket&)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_reader_unit.cpp:380:72: error: âav_rescale_qâ was not declared in this scope formatcontext->streams[video_streamidx]->time_base); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_reader_unit.cpp: In member function âvirtual bool video_framework::VideoReaderUnit::SeekImpl(int64_t)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/video_reader_unit.cpp:411:33: error: âav_rescale_qâ was not declared in this scope source_timebase); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp: In member function âvirtual bool video_framework::DenseFlowUnit::OpenStreams(video_framework::StreamSet)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:190:19: error: âcreateOptFlow_DualTVL1â is not a member of âcvâ

_flowengine = cv::createOptFlow_DualTVL1(); ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:191:18: error: invalid use of incomplete type âclass cv::DenseOpticalFlowâ (_flowengine)->set("warps", options_.num_warps); ^ In file included from /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:29:0: /home/shengxin/src/graph-videoseg/video_segment-master/seg_tree_sample/../video_framework/flow_reader.h:37:9: error: forward declaration of âclass cv::DenseOpticalFlowâ class DenseOpticalFlow; ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:192:18: error: invalid use of incomplete type âclass cv::DenseOpticalFlowâ (*flowengine)->set("iterations", options_.flow_iterations); ^ In file included from /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:29:0: /home/shengxin/src/graph-videoseg/video_segment-master/seg_tree_sample/../video_framework/flow_reader.h:37:9: error: forward declaration of âclass cv::DenseOpticalFlowâ class DenseOpticalFlow; ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp: In member function âvirtual void video_framework::DenseFlowUnit::ProcessFrame(video_framework::FrameSetPtr, std::liststd::shared_ptr<std::vector<std::shared_ptr<video_framework::Frame

*)â: /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:277:22: error: invalid use of incomplete type âclass cv::DenseOpticalFlowâ (

_flowengine)->calc(previmg, image, flow_field); ^ In file included from /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:29:0: /home/shengxin/src/graph-videoseg/video_segment-master/seg_tree_sample/../video_framework/flow_reader.h:37:9: error: forward declaration of âclass cv::DenseOpticalFlowâ class DenseOpticalFlow; ^ /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:294:22: error: invalid use of incomplete type âclass cv::DenseOpticalFlowâ (_flowengine)->calc(image, _previmg, flow_field); ^ In file included from /home/shengxin/src/graph-videoseg/video_segment-master/video_framework/flow_reader.cpp:29:0: /home/shengxin/src/graph-videoseg/video_segment-master/seg_tree_sample/../video_framework/flowreader.h:37:9: error: forward declaration of âclass cv::DenseOpticalFlowâ class DenseOpticalFlow; ^ make[2]: * [video_framework/CMakeFiles/video_framework.dir/video_writer_unit.cpp.o] Error 1 make[2]: * Waiting for unfinished jobs.... make[2]: ** [video_framework/CMakeFiles/video_framework.dir/video_reader_unit.cpp.o] Error 1 make[2]: [video_framework/CMakeFiles/video_framework.dir/flow_reader.cpp.o] Error 1 make[1]: * [video_framework/CMakeFiles/video_framework.dir/all] Error 2 make: * [all] Error 2

Reply to this email directly or view it on GitHub https://github.com/videosegmentation/video_segment/issues/5#issuecomment-48636810 .

shengxinzha commented 10 years ago

Thanks, Matthias!