uoip / pangolin

Python binding of 3D visualization library Pangolin
MIT License
292 stars 91 forks source link

Make Error OSX Mojave #17

Open Samyakkumar opened 5 years ago

Samyakkumar commented 5 years ago

Hey! So while following the install instructions, I seem to be running into a lot of errors that I can't seem to figure out how to resolve. Most of the errors in the make process seem to come from ffmpeg.cpp, specifically, of the form :

use of undeclared identifier
      'AV_PIX_FMT_XVMC_MPEG2_MC' 

My cmake output is:

-- The C compiler identification is AppleClang 10.0.1.10010046
-- The CXX compiler identification is AppleClang 10.0.1.10010046
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Build type not set (defaults to release)
-DCMAKE_BUILD_TYPE=Debug for debug
-- Python Found and Enabled
-- Eigen Found and Enabled
-- Performing Test HAVE_FFMPEG_MAX_ANALYZE_DURATION2
-- Performing Test HAVE_FFMPEG_MAX_ANALYZE_DURATION2 - Failed
-- Performing Test HAVE_FFMPEG_AVFORMAT_ALLOC_OUTPUT_CONTEXT2
-- Performing Test HAVE_FFMPEG_AVFORMAT_ALLOC_OUTPUT_CONTEXT2 - Success
-- Performing Test HAVE_FFMPEG_AVPIXELFORMAT
-- Performing Test HAVE_FFMPEG_AVPIXELFORMAT - Success
-- ffmpeg Found and Enabled
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2")
-- libpng Found and Enabled
-- libjpeg Found and Enabled
-- libtiff Found and Enabled
-- libopenexr Found and Enabled
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Found PythonInterp: /usr/local/bin/python3.7 (found version "3.7.3")
-- Found PythonLibs: /usr/local/Frameworks/Python.framework/Versions/3.7/lib/libpython3.7m.dylib
-- Performing Test HAS_CPP14_FLAG
-- Performing Test HAS_CPP14_FLAG - Success
-- Performing Test HAS_FLTO
-- Performing Test HAS_FLTO - Success
-- LTO enabled
-- Configuring done
-- Generating done

A snippet of some of the errors (16 in total):

/pyp/pangolin/src/video/drivers/ffmpeg.cpp:83:5: error: use of undeclared identifier
      'AV_PIX_FMT_XVMC_MPEG2_MC'
    TEST_PIX_FMT_RETURN(XVMC_MPEG2_MC);
    ^
/pyp/pangolin/src/video/drivers/ffmpeg.cpp:47:41: note: expanded from macro
      'TEST_PIX_FMT_RETURN'
#  define TEST_PIX_FMT_RETURN(fmt) case AV_PIX_FMT_##fmt: return #fmt;
                                        ^
<scratch space>:179:1: note: expanded from here
AV_PIX_FMT_XVMC_MPEG2_MC
^
/pyp/pangolin/src/video/drivers/ffmpeg.cpp:84:5: error: use of undeclared identifier
      'AV_PIX_FMT_XVMC_MPEG2_IDCT'; did you mean 'AV_PIX_FMT_VAAPI_IDCT'?
    TEST_PIX_FMT_RETURN(XVMC_MPEG2_IDCT);
    ^
/pyp/pangolin/src/video/drivers/ffmpeg.cpp:47:41: note: expanded from macro
      'TEST_PIX_FMT_RETURN'
#  define TEST_PIX_FMT_RETURN(fmt) case AV_PIX_FMT_##fmt: return #fmt;
                                        ^
<scratch space>:181:1: note: expanded from here
AV_PIX_FMT_XVMC_MPEG2_IDCT
^
/usr/local/include/libavutil/pixfmt.h:119:5: note: 'AV_PIX_FMT_VAAPI_IDCT' declared here
    AV_PIX_FMT_VAAPI_IDCT, ///< HW acceleration through VA API at IDCT entry-point, Picture.data[3] contains ...
    ^
/pyp/pangolin/src/video/drivers/ffmpeg.cpp:104:5: error: use of undeclared identifier
      'AV_PIX_FMT_VDPAU_H264'; did you mean 'AV_PIX_FMT_VDPAU'?
    TEST_PIX_FMT_RETURN(VDPAU_H264);
    ^
/pyp/pangolin/src/video/drivers/ffmpeg.cpp:47:41: note: expanded from macro
      'TEST_PIX_FMT_RETURN'
#  define TEST_PIX_FMT_RETURN(fmt) case AV_PIX_FMT_##fmt: return #fmt;
                                        ^
<scratch space>:221:1: note: expanded from here
AV_PIX_FMT_VDPAU_H264
^
/usr/local/include/libavutil/pixfmt.h:197:5: note: 'AV_PIX_FMT_VDPAU' declared here
    AV_PIX_FMT_VDPAU,     ///< HW acceleration through VDPAU, Picture.data[3] contains a VdpVideoSurface
    ^
/pyp/pangolin/src/video/drivers/ffmpeg.cpp:105:5: error: use of undeclared identifier
      'AV_PIX_FMT_VDPAU_MPEG1'; did you mean 'AV_PIX_FMT_VDPAU'?
    TEST_PIX_FMT_RETURN(VDPAU_MPEG1);
    ^
/pyp/pangolin/src/video/drivers/ffmpeg.cpp:47:41: note: expanded from macro
      'TEST_PIX_FMT_RETURN'
#  define TEST_PIX_FMT_RETURN(fmt) case AV_PIX_FMT_##fmt: return #fmt;

I would be extremely grateful for any help!!!

onlytailei commented 5 years ago

The same for me. Waiting for meaningful feedback.

plasticuproject commented 5 years ago

This library is a fork that wasn't properly forked from the source, and the maintainer hasn't made a commit or responded to a query in over a year. So you may be waiting a while.

I forked uoip's code from the original repo so you can compare diffs from the original if that helps at all.

onlytailei commented 5 years ago

This commit solves my case. https://github.com/stevenlovegrove/Pangolin/commit/d9daba62dfa3f6c786699723621b5ca4566206dd

plasticuproject commented 5 years ago

It's kind of messed up that the maintainer of this library didn't properly forked it from stevenlovegrove so you could compare. Probably didn't realize this many people would be interested in their bindings.

markoelez commented 3 years ago

Try this: https://github.com/markoelez/Pangolin/blob/master/README.md#building

Merged with the source repo and updated build, working on MacOS now.