diff --git a/.travis.yml b/.travis.yml index 9d565e17..08f7ca96 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,14 @@ +env: + matrix: + - DEPENDENCY_MODE=libav + - DEPENDENCY_MODE=ffmpeg + +language: cpp + os: - linux - osx -language: cpp - compiler: - gcc - clang @@ -28,4 +33,4 @@ script: # Launch tests - cd .. - chmod +x tools/travis.python.nosetests.sh - - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then ./tools/travis.python.nosetests.sh; fi + - if [ "${TRAVIS_OS_NAME}" = "linux" && "${DEPENDENCY_MODE}" = "ffmpeg" ]; then ./tools/travis.python.nosetests.sh; fi diff --git a/src/AvTranscoder/mediaProperty/VideoProperties.cpp b/src/AvTranscoder/mediaProperty/VideoProperties.cpp index 7e522ce4..926ab050 100644 --- a/src/AvTranscoder/mediaProperty/VideoProperties.cpp +++ b/src/AvTranscoder/mediaProperty/VideoProperties.cpp @@ -405,7 +405,7 @@ size_t VideoProperties::getBitRate() const if( ! _codecContext->width || ! _codecContext->height ) throw std::runtime_error( "cannot compute bit rate: invalid frame size" ); - + // discard no frame type when decode _codecContext->skip_frame = AVDISCARD_NONE; @@ -429,7 +429,11 @@ size_t VideoProperties::getBitRate() const avcodec_decode_video2( _codecContext, frame, &gotFrame, &pkt ); if( gotFrame ) { - gopFramesSize += frame->pkt_size; +#if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT( 54, 7, 100 ) + gopFramesSize += av_frame_get_pkt_size( frame ); +#else + gopFramesSize += pkt.size; +#endif ++count; } } diff --git a/tools/travis.linux.install.deps.sh b/tools/travis.linux.install.deps.sh index 534f08e2..c3af0376 100644 --- a/tools/travis.linux.install.deps.sh +++ b/tools/travis.linux.install.deps.sh @@ -10,9 +10,19 @@ sudo apt-get install -qq python-dev doxygen sudo apt-get install -qq freeglut3-dev libxmu-dev sudo apt-get install -qq python-nose -# Build FFmpeg 2.2.9 -sudo wget https://www.ffmpeg.org/releases/ffmpeg-2.2.9.tar.bz2 -sudo bunzip2 ffmpeg-2.2.9.tar.bz2 -sudo tar -xvf ffmpeg-2.2.9.tar -cd ffmpeg-2.2.9 -./configure --disable-yasm --enable-shared --disable-static && make && sudo make install +if [[ ${DEPENDENCY_MODE} == "ffmpeg" ]]; then + export FFMPEG_VERSION=2.2.9 + sudo wget https://www.ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2 + sudo bunzip2 ffmpeg-${FFMPEG_VERSION}.tar.bz2 + sudo tar -xvf ffmpeg-${FFMPEG_VERSION}.tar + cd ffmpeg-${FFMPEG_VERSION} + sudo ./configure --disable-yasm --enable-shared --disable-static && sudo make && sudo make install + +elif [[ ${DEPENDENCY_MODE} == "libav" ]]; then + export LIBAV_VERSION=11.3 + sudo wget https://libav.org/releases/libav-${LIBAV_VERSION}.tar.gz + sudo tar -xvf libav-${LIBAV_VERSION}.tar.gz + cd libav-${LIBAV_VERSION} + sudo ./configure --disable-yasm --enable-shared --disable-static && sudo make && sudo make install + +fi diff --git a/tools/travis.osx.install.deps.sh b/tools/travis.osx.install.deps.sh index 1896b401..3c168552 100644 --- a/tools/travis.osx.install.deps.sh +++ b/tools/travis.osx.install.deps.sh @@ -3,4 +3,10 @@ brew update brew install gcc cmake swig -brew install ffmpeg freeglut doxygen +brew install freeglut doxygen + +if [[ ${DEPENDENCY_MODE} == "ffmpeg" ]]; then + brew install ffmpeg + +elif [[ ${DEPENDENCY_MODE} == "libav" ]]; then + brew install libav