Vireo is a lightweight and versatile video processing library written in C++11

Overview

Vireo is a lightweight and versatile video processing library that powers our video transcoding service, deep learning recognition systems and more. It is written in C++11 and built with functional programming principles. It also optionally comes with Scala wrappers that enable us to build scalable video processing applications within our backend services.

Vireo is built on top of best of class open source libraries (we did not reinvent the wheel), and defines a unified and modular interface for these libraries to communicate easily and efficiently. Thanks to a unified interface, it is easy to write new modules (e.g. new codec) or swap out the existing ones in favor of others (e.g. proprietary or hardware H.264 decoder).

Performance was a strong focus, as well as memory consumption: only the strictly required objects are kept in memory at all times, and we pick the fastest code, with negligible overhead. Some operations, such as trimming or remuxing, are blazing fast even on mobile!

Vireo caters to both high level engineers who want to focus on building products as well as lower level engineers focused on developing video technology. It is released under the MIT license and aims to make it easy for developers to do media processing and create both commercial and non-commercial (see Legal Disclaimer for details) applications.

Included are a number of additional command-line tools built with Vireo for common video processing tasks, such as inspecting a video or transcoding.

Included Tools:

  • frames: displays the contents of video files (list of audio/video samples, edit boxes, track durations etc.)
  • chunk: chunks GOPs of the input video as well as the audio track into separate mp4 files
  • psnr: compares the video quality of a test video against a reference video
  • remux: allows remuxing an input file into other compatible containers
  • stitch: stitches a number of input video files into a single video file
  • thumbnails: extracts keyframes from the input video and saves them as JPG images
  • transcode: transcodes an input video into another video with different format (able to change resolution, crop, change bitrate, convert containers/codecs)
  • trim: trims the input video at desired time boundaries without transcoding the input video
  • unchunk: puts the chunks created by the chunk tool together into a single mp4 file
  • validate: checks if the video is valid and if so, supported by vireo
  • viddiff: checks if two video files are functionally identical or not (does not compare data that does not affect the playback behavior)

How to Build Vireo and Tools

# within the main repository directory
$ cd vireo
$ export PREFIX=/path/to/install/dir
$ ./configure --prefix=$PREFIX
$ make
$ make install

Once built, you can find

  • the headers under $PREFIX/include
  • the compiled libraries under $PREFIX/lib
  • the tools under $PREFIX/bin

To run a tool and see their usage, simply execute:

$ $PREFIX/bin/<tool_name>

An exception to this rule is the validate tool which requires validate -h to show its usage as it uses STDIN for input.

Please note that some of the tools listed in List of Tools may not be built based on the availability of optional third-party libraries listed under Dependencies.

When compiling you can also optionally turn on C++ to Scala bindings by passing --enable-scala flag to configure. After you successfully build Vireo with these bindings, you can build the Scala wrappers by executing:

# within the main repository directory
$ cd vireo
$ ./build_scala.sh

This will place the built jar file under $PREFIX/lib.

Dependencies

Required tools (for building C++ library)

Optional tools (for building Scala wrappers)

Required libraries

Optional libraries

The following libraries are automatically enabled if present in your system

The following libraries are disabled by default. To enable GPL licensed components, they have to be present in your system and --enable-gpl flag have to be explicitly passed to configure

Legal Disclaimer

This installer allows you to select various third-party, pre-installed components to build with the Vireo platform. Some of these components are provided under licenses that may be incompatible with each other, so it may not be compliant to build all of the optional components together. You are responsible to determine what components to use for your build, and for complying with the applicable licenses. In addition, the use of some of the components of the Vireo platform, including those that implement the H.264, AAC, or MPEG-4 formats, may require licenses from third party patent holders. You are responsible for determining whether your contemplated use requires such a license.

Using Vireo in Your Own Project

Code Examples

To give you an idea on what you can build using Vireo, we provide 3 simple code snippets below.

  1. Remuxing an input file to mp4
/*
 * This function works without GPL dependencies
 */
void remux(string in, string out) {
  // setup the demux -> mux pipeline
  demux::Movie movie(in);
  mux::MP4 muxer(movie.video_track);
  // nothing is executed until muxer() is called
  auto binary = muxer();
  // save to file
  util::save(out, binary);
}
  1. Remuxing keyframes of an input file to mp4
/*
 * This function works without GPL dependencies
 */
void keyframes(string in, string out) {
  demux::Movie movie(in);
  // extract keyframes using .filter operator
  auto keyframes = movie.video_track.filter([](decode::Sample& sample) {
    return sample.keyframe;
  });
  mux::MP4 muxer(keyframes);
  // nothing is executed until muxer() is called
  auto binary = muxer();
  util::save(out, binary);
}
  1. Transcoding an input file to mp4
/*
 * This function requires vireo to be built with --enable-gpl flag
 */
void transcode(string in, string out) {
  // setup the demux -> decode -> encode -> mux pipeline
  demux::Movie movie(in);
  decode::Video decoder(movie.video_track);
  encode::H264 encoder(decoder, 30.0f, 3, movie.video_track.fps());
  mux::MP4 muxer(encoder);
  // nothing is executed until muxer() is called
  auto binary = muxer();
  // save to file
  util::save(out, binary);
}

Build a HelloWorld Application with Vireo

You can build your own application simply by using pkg-config. Just make sure you add the Vireo install directory to your PKG_CONFIG_PATH if you did not install Vireo to a path where pkg-config is already looking at.

To build the examples provided in Code Examples section, simply execute the following:

# within the main repository directory
$ export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig
$ cd vireo/helloworld
$ g++ `pkg-config --cflags --libs vireo` -std=c++14 -o helloworld helloworld.cpp
$ ./helloworld

Guidelines for Contributors

  • Make sure you have a detailed description about the change in your commit.
  • Prefer code readability over fast development and premature performance optimizations.
  • If you're making assumptions (can happen due to lack of enough test data, confusing documentation in the standards, or you're avoiding implementing a rare edge case in order to decrease code complexity and development cost), make sure they are documented in code. Both with a THROW_IF(..., Unsupported, "reason") (or CHECK(...)) and ideally in comments as well.
  • If there is any API or functionality change, make sure the affected tools (remux, transcode etc.) are also updated.
Owner
Twitter
Twitter 💙 #opensource
Twitter
Comments
  • Compilation issue on ubuntu

    Compilation issue on ubuntu

    Hi, I get the following issue while trying to build:

    ./configure --prefix=$PREFIX checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for g++... g++ checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for style of include used by make... GNU checking dependency style of g++... gcc3 checking for gawk... (cached) gawk checking for gcc... gcc checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for ranlib... ranlib checking whether g++ supports C++14 features by default... no checking whether g++ supports C++14 features with -std=gnu++14... yes checking whether C++ compiler accepts -fvisibility=hidden... yes checking for lsmash_free in -llsmash... yes checking for aacDecoder_Open in -lfdk-aac... yes checking for ogg_packet_clear in -logg... yes checking for pthread_create in -lpthread... yes checking for vorbis_block_init in -lvorbis... yes checking for vorbis_encode_init in -lvorbisenc... yes checking for vpx_free in -lvpx... no checking for _ZN8mkvmuxer10AudioTrackC1EPj in -lwebm... no checking for deflate in -lz... yes checking how to run the C++ preprocessor... g++ -std=gnu++14 -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking fcntl.h usability... yes checking fcntl.h presence... yes checking for fcntl.h... yes checking stddef.h usability... yes checking stddef.h presence... yes checking for stddef.h... yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking for unistd.h... (cached) yes checking for stdbool.h that conforms to C99... no checking for _Bool... no checking for inline... inline checking for int16_t... yes checking for int32_t... yes checking for int64_t... yes checking for size_t... yes checking for uint16_t... yes checking for uint32_t... yes checking for uint64_t... yes checking for uint8_t... yes checking for stdlib.h... (cached) yes checking for unistd.h... (cached) yes checking for sys/param.h... (cached) yes checking for getpagesize... yes checking for working mmap... yes checking for getcwd... yes checking for memset... yes checking for mkdir... yes checking for munmap... yes checking for sqrt... yes checking for strrchr... yes checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... (cached) ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... no checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking how to run the C++ preprocessor... g++ -std=gnu++14 -E checking for ld used by g++ -std=gnu++14... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ -std=gnu++14 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ -std=gnu++14 option to produce PIC... -fPIC -DPIC checking if g++ -std=gnu++14 PIC flag -fPIC -DPIC works... yes checking if g++ -std=gnu++14 static flag -static works... no checking if g++ -std=gnu++14 supports -c -o file.o... yes checking if g++ -std=gnu++14 supports -c -o file.o... (cached) yes checking whether the g++ -std=gnu++14 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... (cached) GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating vireo.pc config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands config.status: executing libtool commands === configuring in ../imagecore (/media/sanil/SanilED/Video/Twitter/vireo/vireo/../imagecore) configure: running /bin/bash ./configure --disable-option-checking '--prefix=/media/sanil/SanilED/Video/Twitter/install' --cache-file=/dev/null --srcdir=. checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking for jpeg_mem_src in -ljpeg... no checking for png_create_read_struct in -lpng16... no checking for WebPDecode in -lwebp... yes checking for cmsCloseProfile in -llcms2... no checking whether C++ compiler accepts -msse4.1... yes checking whether g++ supports C++11 features by default... no checking whether g++ supports C++11 features with -std=gnu++11... yes checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking how to run the C++ preprocessor... g++ -std=gnu++11 -E checking for ld used by g++ -std=gnu++11... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ -std=gnu++11 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ -std=gnu++11 option to produce PIC... -fPIC -DPIC checking if g++ -std=gnu++11 PIC flag -fPIC -DPIC works... yes checking if g++ -std=gnu++11 static flag -static works... yes checking if g++ -std=gnu++11 supports -c -o file.o... yes checking if g++ -std=gnu++11 supports -c -o file.o... (cached) yes checking whether the g++ -std=gnu++11 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... (cached) GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: executing depfiles commands config.status: executing libtool commands

    make make all-recursive make[1]: Entering directory '/media/sanil/SanilED/Video/Twitter/vireo/vireo' Making all in ../imagecore make[2]: Entering directory '/media/sanil/SanilED/Video/Twitter/vireo/imagecore' CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /media/sanil/SanilED/Video/Twitter/vireo/imagecore/missing aclocal-1.15 ../m4/m4-ax_cxx_compile_stdcxx_11.m4:38: error: macro AX_CXX_COMPILE_STDCXX is not defined; is a m4 file missing? /usr/share/aclocal/ax_require_defined.m4:35: AX_REQUIRE_DEFINED is expanded from... ../m4/m4-ax_cxx_compile_stdcxx_11.m4:38: the top level autom4te: /usr/bin/m4 failed with exit status: 1 aclocal-1.15: error: echo failed with exit status: 1 Makefile:499: recipe for target 'aclocal.m4' failed make[2]: *** [aclocal.m4] Error 1 make[2]: Leaving directory '/media/sanil/SanilED/Video/Twitter/vireo/imagecore' Makefile:2087: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/media/sanil/SanilED/Video/Twitter/vireo/vireo' Makefile:649: recipe for target 'all' failed make: *** [all] Error 2

    Can someone please let me know how I should resolve it?

    Thanks!

  • Re-factor post-increments to pre-increments and reserve where performace will increase.

    Re-factor post-increments to pre-increments and reserve where performace will increase.

    Change all post-increments to pre-increments where necessary to improve performance.

    For example consider the following:

    class Integer {
    
      public:
    
      // Sample implementation of pre-incrementing.
      Integer & operator++() {
        myInt += 1;
        return *this;
      }
      // Sample implementation of post-incrementing.
      const Integer operator++(int) {
        Integer temporary = *this;
        ++*this;
        return temporary;
      }
    
      private:
    
      int myInt;
    };
    

    The additional copy (temporary) in post-incrementing step is unnecessary.

    Also optimized a vector which was not being reserved even though we knew the exact number of elements that were going into it.

  • fix: an overflow bug for div2_round

    fix: an overflow bug for div2_round

    There is a potential overflow bug for div2_round function.

    When parameter a of function div2_round (in vireo/imagecore/utils/mathutils.h) has the maximum value, the result is 0 which is incorrect.

  • 'vireo/config.h' file not found

    'vireo/config.h' file not found

    Hi, I was testing helloworld.cpp outside of the video directory and I got the following error:

    /Users/multi/GestioneProgetti/Development/vireo/vireoBinaries/include/vireo/dependency.hpp:28:10: fatal error: 'vireo/config.h' file not found #include "vireo/config.h"

    I guess, since 'vireo/config.h' is included from 'vireo/dependency.hpp', I guess 'vireo/config.h' has to be installed during the 'make install' command.

    Do you agree?

    To solve this issue I copied manually config.h into the vireo installation directory.

    Best regards Giuliano

  • Debug information option for the vireo and l-smash binaries

    Debug information option for the vireo and l-smash binaries

    Hi, I'm having a crash and I'm doing some debugging...

    Anyway, it would be good if vireo and l-smash would have the compile option to set debug information in his binaries.

    Because of that, inside the vireo/vireo/configure.ac, I added the following option to add debug information: AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug], [enable debugging, default: no]), [case "${enableval}" in
    yes) debug=true ;; no) debug=false ;; *) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;; esac], [debug=false])
    AM_CONDITIONAL(DEBUG, test x"$debug" = x"true")

    Is it possible

    1. to add the above option/code in the github release
    2. to make same change in configure of the l-smash project

    Best regards Giuliano

  • so what was wrong with gstreamer ?

    so what was wrong with gstreamer ?

    it would be very instructive to get some information in the README about how vireo compares to other existing frameworks. Being able to understand the pros and cons is a decision maker.

  • Update license to remove comment formatting

    Update license to remove comment formatting

    As part of some GitHub cleanup, Twitter's OSPO is updating license text to use the full text of the stated license with correct formatting. If there are no objections in the next 7 days, we will go ahead and merge this PR.

  • Bad value

    Bad value

    ==> make /usr/bin/ld: //usr/local/lib/libvpx.a(vpx_codec.c.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC //usr/local/lib/libvpx.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status

  • Add Dockerfile

    Add Dockerfile

    You can compile vireo with docker ...

    FROM ubuntu:16.04 RUN mkdir ytimoumi WORKDIR ./ytimoumi RUN apt-get update && apt-get -y install autoconf automake build-essential pkg-config git RUN apt-get -y install libpng-dev libjpeg-dev libfdk-aac-dev libvpx-dev libogg-dev libvorbis-dev libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libx264-dev
    && export TERM=xterm
    && git clone https://github.com/twitter/vireo.git
    && git clone https://github.com/l-smash/l-smash.git
    && cd l-smash && git fetch --all --tags --prune && git checkout tags/v2.9.1 && ./configure --enable-shared && make && make install && ldconfig
    && cd ../vireo/vireo && export PREFIX=/usr/local/ && ./configure --prefix=$PREFIX && make && make install #33 && cd ../vireo/vireo && export PREFIX=/usr/local/ && ./configure --prefix=$PREFIX --enable-gpl && make && make install

    #33 Build : docker build -t ytimoumi/vireo . #33 Run : docker run -it ytimoumi/vireo bash

  • Resource leak

    Resource leak

    Stream is opened https://github.com/twitter/vireo/blob/f950cba87014045e11b5690285e1c75081cd5787/imagetool/commands/frames.cpp#L72 Opened file never closed https://github.com/twitter/vireo/blob/f950cba87014045e11b5690285e1c75081cd5787/imagetool/commands/frames.cpp#L84

  • Unable to compile: Makefile:1324: recipe for target 'common/libvireo_la-data.lo' failed

    Unable to compile: Makefile:1324: recipe for target 'common/libvireo_la-data.lo' failed

    Trying to compile vireo simply to transcode avis before uploading them to twitter (twitter always fails to transcode online)

    ./configure --enable-gpl

    This file contains any messages produced by compilers while
    running configure, to aid debugging if configure makes a mistake.
    
    It was created by vireo configure 2.4.22, which was
    generated by GNU Autoconf 2.69.  Invocation command line was
    
      $ ./configure --enable-gpl
    
    ## --------- ##
    ## Platform. ##
    ## --------- ##
    
    hostname = puppypc26290
    uname -m = i686
    uname -r = 4.4.95
    uname -s = Linux
    uname -v = #1 SMP Mon Nov 13 17:15:42 GMT 2017
    
    /usr/bin/uname -p = unknown
    /bin/uname -X     = unknown
    
    /bin/arch              = i686
    /usr/bin/arch -k       = unknown
    /usr/convex/getsysinfo = unknown
    /usr/bin/hostinfo      = unknown
    /bin/machine           = unknown
    /usr/bin/oslevel       = unknown
    /bin/universe          = unknown
    
    PATH: /bin
    PATH: /usr/bin
    PATH: /sbin
    PATH: /usr/sbin
    PATH: /usr/local/bin
    PATH: /usr/X11R7/bin
    PATH: /root/my-applications/bin
    PATH: /usr/games
    
    
    ## ----------- ##
    ## Core tests. ##
    ## ----------- ##
    
    configure:2717: checking for a BSD-compatible install
    configure:2785: result: /usr/bin/ginstall -c
    configure:2796: checking whether build environment is sane
    configure:2851: result: yes
    configure:3002: checking for a thread-safe mkdir -p
    configure:3041: result: ./install-sh -c -d
    configure:3048: checking for gawk
    configure:3064: found /bin/gawk
    configure:3075: result: gawk
    configure:3086: checking whether make sets $(MAKE)
    configure:3108: result: yes
    configure:3137: checking whether make supports nested variables
    configure:3154: result: yes
    configure:3291: checking whether make supports nested variables
    configure:3308: result: yes
    configure:3324: checking build system type
    configure:3338: result: i686-pc-linux-gnu
    configure:3358: checking host system type
    configure:3371: result: i686-pc-linux-gnu
    configure:3454: checking for g++
    configure:3470: found /usr/bin/g++
    configure:3481: result: g++
    configure:3508: checking for C++ compiler version
    configure:3517: g++ --version >&5
    g++ (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609
    Copyright (C) 2015 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    configure:3528: $? = 0
    configure:3517: g++ -v >&5
    Using built-in specs.
    COLLECT_GCC=g++
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/5/lto-wrapper
    Target: i686-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.5' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-i386/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-i386 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-i386 --with-arch-directory=i386 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-targets=all --enable-multiarch --disable-werror --with-arch-32=i686 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
    Thread model: posix
    gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 
    configure:3528: $? = 0
    configure:3517: g++ -V >&5
    g++: error: unrecognized command line option '-V'
    g++: fatal error: no input files
    compilation terminated.
    configure:3528: $? = 1
    configure:3517: g++ -qversion >&5
    g++: error: unrecognized command line option '-qversion'
    g++: fatal error: no input files
    compilation terminated.
    configure:3528: $? = 1
    configure:3548: checking whether the C++ compiler works
    configure:3570: g++    conftest.cpp  >&5
    configure:3574: $? = 0
    configure:3622: result: yes
    configure:3625: checking for C++ compiler default output file name
    configure:3627: result: a.out
    configure:3633: checking for suffix of executables
    configure:3640: g++ -o conftest    conftest.cpp  >&5
    configure:3644: $? = 0
    configure:3666: result: 
    configure:3688: checking whether we are cross compiling
    configure:3696: g++ -o conftest    conftest.cpp  >&5
    configure:3700: $? = 0
    configure:3707: ./conftest
    configure:3711: $? = 0
    configure:3726: result: no
    configure:3731: checking for suffix of object files
    configure:3753: g++ -c   conftest.cpp >&5
    configure:3757: $? = 0
    configure:3778: result: o
    configure:3782: checking whether we are using the GNU C++ compiler
    configure:3801: g++ -c   conftest.cpp >&5
    configure:3801: $? = 0
    configure:3810: result: yes
    configure:3819: checking whether g++ accepts -g
    configure:3839: g++ -c -g  conftest.cpp >&5
    configure:3839: $? = 0
    configure:3880: result: yes
    configure:3914: checking for style of include used by make
    configure:3942: result: GNU
    configure:3968: checking dependency style of g++
    configure:4079: result: gcc3
    configure:4098: checking for gawk
    configure:4125: result: gawk
    configure:4184: checking for gcc
    configure:4200: found /usr/bin/gcc
    configure:4211: result: gcc
    configure:4440: checking for C compiler version
    configure:4449: gcc --version >&5
    gcc (Ubuntu 5.4.0-6ubuntu1~16.04.5) 5.4.0 20160609
    Copyright (C) 2015 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    configure:4460: $? = 0
    configure:4449: gcc -v >&5
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/5/lto-wrapper
    Target: i686-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.5' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-i386/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-i386 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-i386 --with-arch-directory=i386 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-targets=all --enable-multiarch --disable-werror --with-arch-32=i686 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
    Thread model: posix
    gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 
    configure:4460: $? = 0
    configure:4449: gcc -V >&5
    gcc: error: unrecognized command line option '-V'
    gcc: fatal error: no input files
    compilation terminated.
    configure:4460: $? = 1
    configure:4449: gcc -qversion >&5
    gcc: error: unrecognized command line option '-qversion'
    gcc: fatal error: no input files
    compilation terminated.
    configure:4460: $? = 1
    configure:4464: checking whether we are using the GNU C compiler
    configure:4483: gcc -c   conftest.c >&5
    configure:4483: $? = 0
    configure:4492: result: yes
    configure:4501: checking whether gcc accepts -g
    configure:4521: gcc -c -g  conftest.c >&5
    configure:4521: $? = 0
    configure:4562: result: yes
    configure:4579: checking for gcc option to accept ISO C89
    configure:4642: gcc  -c -g -O2  conftest.c >&5
    configure:4642: $? = 0
    configure:4655: result: none needed
    configure:4680: checking whether gcc understands -c and -o together
    configure:4702: gcc -c conftest.c -o conftest2.o
    configure:4705: $? = 0
    configure:4702: gcc -c conftest.c -o conftest2.o
    configure:4705: $? = 0
    configure:4717: result: yes
    configure:4736: checking dependency style of gcc
    configure:4847: result: gcc3
    configure:4867: checking how to run the C preprocessor
    configure:4898: gcc -E  conftest.c
    configure:4898: $? = 0
    configure:4912: gcc -E  conftest.c
    conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory
    compilation terminated.
    configure:4912: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | /* end confdefs.h.  */
    | #include <ac_nonexistent.h>
    configure:4937: result: gcc -E
    configure:4957: gcc -E  conftest.c
    configure:4957: $? = 0
    configure:4971: gcc -E  conftest.c
    conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory
    compilation terminated.
    configure:4971: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | /* end confdefs.h.  */
    | #include <ac_nonexistent.h>
    configure:5000: checking whether ln -s works
    configure:5004: result: yes
    configure:5011: checking whether make sets $(MAKE)
    configure:5033: result: yes
    configure:5085: checking for ranlib
    configure:5101: found /usr/bin/ranlib
    configure:5112: result: ranlib
    configure:5148: checking whether g++ supports C++14 features by default
    configure:5562: g++ -c -g -O2  conftest.cpp >&5
    conftest.cpp:22:2: error: #error "This is not a C++11 compiler"
     #error "This is not a C++11 compiler"
      ^
    conftest.cpp:307:2: error: #error "This is not a C++14 compiler"
     #error "This is not a C++14 compiler"
      ^
    configure:5562: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | /* end confdefs.h.  */
    | 
    | 
    | // If the compiler admits that it is not ready for C++11, why torture it?
    | // Hopefully, this will speed up the test.
    | 
    | #ifndef __cplusplus
    | 
    | #error "This is not a C++ compiler"
    | 
    | #elif __cplusplus < 201103L
    | 
    | #error "This is not a C++11 compiler"
    | 
    | #else
    | 
    | namespace cxx11
    | {
    | 
    |   namespace test_static_assert
    |   {
    | 
    |     template <typename T>
    |     struct check
    |     {
    |       static_assert(sizeof(int) <= sizeof(T), "not big enough");
    |     };
    | 
    |   }
    | 
    |   namespace test_final_override
    |   {
    | 
    |     struct Base
    |     {
    |       virtual void f() {}
    |     };
    | 
    |     struct Derived : public Base
    |     {
    |       virtual void f() override {}
    |     };
    | 
    |   }
    | 
    |   namespace test_double_right_angle_brackets
    |   {
    | 
    |     template < typename T >
    |     struct check {};
    | 
    |     typedef check<void> single_type;
    |     typedef check<check<void>> double_type;
    |     typedef check<check<check<void>>> triple_type;
    |     typedef check<check<check<check<void>>>> quadruple_type;
    | 
    |   }
    | 
    |   namespace test_decltype
    |   {
    | 
    |     int
    |     f()
    |     {
    |       int a = 1;
    |       decltype(a) b = 2;
    |       return a + b;
    |     }
    | 
    |   }
    | 
    |   namespace test_type_deduction
    |   {
    | 
    |     template < typename T1, typename T2 >
    |     struct is_same
    |     {
    |       static const bool value = false;
    |     };
    | 
    |     template < typename T >
    |     struct is_same<T, T>
    |     {
    |       static const bool value = true;
    |     };
    | 
    |     template < typename T1, typename T2 >
    |     auto
    |     add(T1 a1, T2 a2) -> decltype(a1 + a2)
    |     {
    |       return a1 + a2;
    |     }
    | 
    |     int
    |     test(const int c, volatile int v)
    |     {
    |       static_assert(is_same<int, decltype(0)>::value == true, "");
    |       static_assert(is_same<int, decltype(c)>::value == false, "");
    |       static_assert(is_same<int, decltype(v)>::value == false, "");
    |       auto ac = c;
    |       auto av = v;
    |       auto sumi = ac + av + 'x';
    |       auto sumf = ac + av + 1.0;
    |       static_assert(is_same<int, decltype(ac)>::value == true, "");
    |       static_assert(is_same<int, decltype(av)>::value == true, "");
    |       static_assert(is_same<int, decltype(sumi)>::value == true, "");
    |       static_assert(is_same<int, decltype(sumf)>::value == false, "");
    |       static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
    |       return (sumf > 0.0) ? sumi : add(c, v);
    |     }
    | 
    |   }
    | 
    |   namespace test_noexcept
    |   {
    | 
    |     int f() { return 0; }
    |     int g() noexcept { return 0; }
    | 
    |     static_assert(noexcept(f()) == false, "");
    |     static_assert(noexcept(g()) == true, "");
    | 
    |   }
    | 
    |   namespace test_constexpr
    |   {
    | 
    |     template < typename CharT >
    |     unsigned long constexpr
    |     strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
    |     {
    |       return *s ? strlen_c_r(s + 1, acc + 1) : acc;
    |     }
    | 
    |     template < typename CharT >
    |     unsigned long constexpr
    |     strlen_c(const CharT *const s) noexcept
    |     {
    |       return strlen_c_r(s, 0UL);
    |     }
    | 
    |     static_assert(strlen_c("") == 0UL, "");
    |     static_assert(strlen_c("1") == 1UL, "");
    |     static_assert(strlen_c("example") == 7UL, "");
    |     static_assert(strlen_c("another\0example") == 7UL, "");
    | 
    |   }
    | 
    |   namespace test_rvalue_references
    |   {
    | 
    |     template < int N >
    |     struct answer
    |     {
    |       static constexpr int value = N;
    |     };
    | 
    |     answer<1> f(int&)       { return answer<1>(); }
    |     answer<2> f(const int&) { return answer<2>(); }
    |     answer<3> f(int&&)      { return answer<3>(); }
    | 
    |     void
    |     test()
    |     {
    |       int i = 0;
    |       const int c = 0;
    |       static_assert(decltype(f(i))::value == 1, "");
    |       static_assert(decltype(f(c))::value == 2, "");
    |       static_assert(decltype(f(0))::value == 3, "");
    |     }
    | 
    |   }
    | 
    |   namespace test_uniform_initialization
    |   {
    | 
    |     struct test
    |     {
    |       static const int zero {};
    |       static const int one {1};
    |     };
    | 
    |     static_assert(test::zero == 0, "");
    |     static_assert(test::one == 1, "");
    | 
    |   }
    | 
    |   namespace test_lambdas
    |   {
    | 
    |     void
    |     test1()
    |     {
    |       auto lambda1 = [](){};
    |       auto lambda2 = lambda1;
    |       lambda1();
    |       lambda2();
    |     }
    | 
    |     int
    |     test2()
    |     {
    |       auto a = [](int i, int j){ return i + j; }(1, 2);
    |       auto b = []() -> int { return '0'; }();
    |       auto c = [=](){ return a + b; }();
    |       auto d = [&](){ return c; }();
    |       auto e = [a, &b](int x) mutable {
    |         const auto identity = [](int y){ return y; };
    |         for (auto i = 0; i < a; ++i)
    |           a += b--;
    |         return x + identity(a + b);
    |       }(0);
    |       return a + b + c + d + e;
    |     }
    | 
    |     int
    |     test3()
    |     {
    |       const auto nullary = [](){ return 0; };
    |       const auto unary = [](int x){ return x; };
    |       using nullary_t = decltype(nullary);
    |       using unary_t = decltype(unary);
    |       const auto higher1st = [](nullary_t f){ return f(); };
    |       const auto higher2nd = [unary](nullary_t f1){
    |         return [unary, f1](unary_t f2){ return f2(unary(f1())); };
    |       };
    |       return higher1st(nullary) + higher2nd(nullary)(unary);
    |     }
    | 
    |   }
    | 
    |   namespace test_variadic_templates
    |   {
    | 
    |     template <int...>
    |     struct sum;
    | 
    |     template <int N0, int... N1toN>
    |     struct sum<N0, N1toN...>
    |     {
    |       static constexpr auto value = N0 + sum<N1toN...>::value;
    |     };
    | 
    |     template <>
    |     struct sum<>
    |     {
    |       static constexpr auto value = 0;
    |     };
    | 
    |     static_assert(sum<>::value == 0, "");
    |     static_assert(sum<1>::value == 1, "");
    |     static_assert(sum<23>::value == 23, "");
    |     static_assert(sum<1, 2>::value == 3, "");
    |     static_assert(sum<5, 5, 11>::value == 21, "");
    |     static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
    | 
    |   }
    | 
    |   // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
    |   // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
    |   // because of this.
    |   namespace test_template_alias_sfinae
    |   {
    | 
    |     struct foo {};
    | 
    |     template<typename T>
    |     using member = typename T::member_type;
    | 
    |     template<typename T>
    |     void func(...) {}
    | 
    |     template<typename T>
    |     void func(member<T>*) {}
    | 
    |     void test();
    | 
    |     void test() { func<foo>(0); }
    | 
    |   }
    | 
    | }  // namespace cxx11
    | 
    | #endif  // __cplusplus >= 201103L
    | 
    | 
    | 
    | 
    | // If the compiler admits that it is not ready for C++14, why torture it?
    | // Hopefully, this will speed up the test.
    | 
    | #ifndef __cplusplus
    | 
    | #error "This is not a C++ compiler"
    | 
    | #elif __cplusplus < 201402L
    | 
    | #error "This is not a C++14 compiler"
    | 
    | #else
    | 
    | namespace cxx14
    | {
    | 
    |   namespace test_polymorphic_lambdas
    |   {
    | 
    |     int
    |     test()
    |     {
    |       const auto lambda = [](auto&&... args){
    |         const auto istiny = [](auto x){
    |           return (sizeof(x) == 1UL) ? 1 : 0;
    |         };
    |         const int aretiny[] = { istiny(args)... };
    |         return aretiny[0];
    |       };
    |       return lambda(1, 1L, 1.0f, '1');
    |     }
    | 
    |   }
    | 
    |   namespace test_binary_literals
    |   {
    | 
    |     constexpr auto ivii = 0b0000000000101010;
    |     static_assert(ivii == 42, "wrong value");
    | 
    |   }
    | 
    |   namespace test_generalized_constexpr
    |   {
    | 
    |     template < typename CharT >
    |     constexpr unsigned long
    |     strlen_c(const CharT *const s) noexcept
    |     {
    |       auto length = 0UL;
    |       for (auto p = s; *p; ++p)
    |         ++length;
    |       return length;
    |     }
    | 
    |     static_assert(strlen_c("") == 0UL, "");
    |     static_assert(strlen_c("x") == 1UL, "");
    |     static_assert(strlen_c("test") == 4UL, "");
    |     static_assert(strlen_c("another\0test") == 7UL, "");
    | 
    |   }
    | 
    |   namespace test_lambda_init_capture
    |   {
    | 
    |     int
    |     test()
    |     {
    |       auto x = 0;
    |       const auto lambda1 = [a = x](int b){ return a + b; };
    |       const auto lambda2 = [a = lambda1(x)](){ return a; };
    |       return lambda2();
    |     }
    | 
    |   }
    | 
    |   namespace test_digit_separators
    |   {
    | 
    |     constexpr auto ten_million = 100'000'000;
    |     static_assert(ten_million == 100000000, "");
    | 
    |   }
    | 
    |   namespace test_return_type_deduction
    |   {
    | 
    |     auto f(int& x) { return x; }
    |     decltype(auto) g(int& x) { return x; }
    | 
    |     template < typename T1, typename T2 >
    |     struct is_same
    |     {
    |       static constexpr auto value = false;
    |     };
    | 
    |     template < typename T >
    |     struct is_same<T, T>
    |     {
    |       static constexpr auto value = true;
    |     };
    | 
    |     int
    |     test()
    |     {
    |       auto x = 0;
    |       static_assert(is_same<int, decltype(f(x))>::value, "");
    |       static_assert(is_same<int&, decltype(g(x))>::value, "");
    |       return x;
    |     }
    | 
    |   }
    | 
    | }  // namespace cxx14
    | 
    | #endif  // __cplusplus >= 201402L
    | 
    | 
    | 
    configure:5569: result: no
    configure:5579: checking whether g++ supports C++14 features with -std=gnu++14
    configure:5995: g++ -std=gnu++14 -c -g -O2  conftest.cpp >&5
    configure:5995: $? = 0
    configure:6004: result: yes
    configure:6044: checking whether C++ compiler accepts -fvisibility=hidden
    configure:6063: g++ -std=gnu++14 -c -g -O2  -fvisibility=hidden  conftest.cpp >&5
    configure:6063: $? = 0
    configure:6071: result: yes
    configure:6359: checking for lsmash_free in -llsmash
    configure:6384: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -llsmash   >&5
    configure:6384: $? = 0
    configure:6393: result: yes
    configure:6407: checking for aacDecoder_Open in -lfdk-aac
    configure:6432: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lfdk-aac  -llsmash  >&5
    /usr/bin/ld: cannot find -lfdk-aac
    collect2: error: ld returned 1 exit status
    configure:6432: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | #define HAVE_CXX14 1
    | #define HAVE_LIBLSMASH 1
    | /* end confdefs.h.  */
    | 
    | /* Override any GCC internal prototype to avoid an error.
    |    Use char because int might match the return type of a GCC
    |    builtin and then its argument prototype would still apply.  */
    | #ifdef __cplusplus
    | extern "C"
    | #endif
    | char aacDecoder_Open ();
    | int
    | main ()
    | {
    | return aacDecoder_Open ();
    |   ;
    |   return 0;
    | }
    configure:6441: result: no
    configure:6452: checking for ogg_packet_clear in -logg
    configure:6477: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -logg  -llsmash  >&5
    configure:6477: $? = 0
    configure:6486: result: yes
    configure:6497: checking for pthread_create in -lpthread
    configure:6522: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lpthread  -logg -llsmash  >&5
    configure:6522: $? = 0
    configure:6531: result: yes
    configure:6542: checking for vorbis_block_init in -lvorbis
    configure:6567: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lvorbis  -lpthread -logg -llsmash  >&5
    configure:6567: $? = 0
    configure:6576: result: yes
    configure:6587: checking for vorbis_encode_init in -lvorbisenc
    configure:6612: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lvorbisenc  -lvorbis -lpthread -logg -llsmash  >&5
    configure:6612: $? = 0
    configure:6621: result: yes
    configure:6632: checking for vpx_free in -lvpx
    configure:6657: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lvpx  -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    /tmp/ccOAEshx.o: In function `main':
    /root/src/vireo-master/vireo/conftest.cpp:28: undefined reference to `vpx_free'
    collect2: error: ld returned 1 exit status
    configure:6657: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | #define HAVE_CXX14 1
    | #define HAVE_LIBLSMASH 1
    | #define HAVE_LIBOGG 1
    | #define HAVE_LIBPTHREAD 1
    | #define HAVE_LIBVORBIS 1
    | #define HAVE_LIBVORBISENC 1
    | /* end confdefs.h.  */
    | 
    | /* Override any GCC internal prototype to avoid an error.
    |    Use char because int might match the return type of a GCC
    |    builtin and then its argument prototype would still apply.  */
    | #ifdef __cplusplus
    | extern "C"
    | #endif
    | char vpx_free ();
    | int
    | main ()
    | {
    | return vpx_free ();
    |   ;
    |   return 0;
    | }
    configure:6666: result: no
    configure:6677: checking for _ZN8mkvmuxer10AudioTrackC1EPj in -lwebm
    configure:6702: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lwebm  -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    /usr/bin/ld: cannot find -lwebm
    collect2: error: ld returned 1 exit status
    configure:6702: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | #define HAVE_CXX14 1
    | #define HAVE_LIBLSMASH 1
    | #define HAVE_LIBOGG 1
    | #define HAVE_LIBPTHREAD 1
    | #define HAVE_LIBVORBIS 1
    | #define HAVE_LIBVORBISENC 1
    | /* end confdefs.h.  */
    | 
    | /* Override any GCC internal prototype to avoid an error.
    |    Use char because int might match the return type of a GCC
    |    builtin and then its argument prototype would still apply.  */
    | #ifdef __cplusplus
    | extern "C"
    | #endif
    | char _ZN8mkvmuxer10AudioTrackC1EPj ();
    | int
    | main ()
    | {
    | return _ZN8mkvmuxer10AudioTrackC1EPj ();
    |   ;
    |   return 0;
    | }
    configure:6711: result: no
    configure:6722: checking for deflate in -lz
    configure:6747: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lz  -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:6747: $? = 0
    configure:6756: result: yes
    configure:6770: checking for av_init_packet in -lavcodec
    configure:6795: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lavcodec  -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:6795: $? = 0
    configure:6804: result: yes
    configure:6822: checking for av_add_index_entry in -lavformat
    configure:6847: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lavformat  -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:6847: $? = 0
    configure:6856: result: yes
    configure:6874: checking for av_asprintf in -lavutil
    configure:6899: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lavutil  -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:6899: $? = 0
    configure:6908: result: yes
    configure:6926: checking for swscale_version in -lswscale
    configure:6951: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lswscale  -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:6951: $? = 0
    configure:6960: result: yes
    configure:6978: checking for x264_free in -lx264
    configure:7003: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lx264  -lswscale -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:7003: $? = 0
    configure:7012: result: yes
    configure:7125: checking how to run the C++ preprocessor
    configure:7152: g++ -std=gnu++14 -E  conftest.cpp
    configure:7152: $? = 0
    configure:7166: g++ -std=gnu++14 -E  conftest.cpp
    conftest.cpp:23:28: fatal error: ac_nonexistent.h: No such file or directory
    compilation terminated.
    configure:7166: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | #define HAVE_CXX14 1
    | #define HAVE_LIBLSMASH 1
    | #define HAVE_LIBOGG 1
    | #define HAVE_LIBPTHREAD 1
    | #define HAVE_LIBVORBIS 1
    | #define HAVE_LIBVORBISENC 1
    | #define HAVE_LIBZ 1
    | #define HAVE_LIBAVCODEC 1
    | #define HAVE_LIBAVFORMAT 1
    | #define HAVE_LIBAVUTIL 1
    | #define HAVE_LIBSWSCALE 1
    | #define HAVE_LIBX264 1
    | /* end confdefs.h.  */
    | #include <ac_nonexistent.h>
    configure:7191: result: g++ -std=gnu++14 -E
    configure:7211: g++ -std=gnu++14 -E  conftest.cpp
    configure:7211: $? = 0
    configure:7225: g++ -std=gnu++14 -E  conftest.cpp
    conftest.cpp:23:28: fatal error: ac_nonexistent.h: No such file or directory
    compilation terminated.
    configure:7225: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | #define HAVE_CXX14 1
    | #define HAVE_LIBLSMASH 1
    | #define HAVE_LIBOGG 1
    | #define HAVE_LIBPTHREAD 1
    | #define HAVE_LIBVORBIS 1
    | #define HAVE_LIBVORBISENC 1
    | #define HAVE_LIBZ 1
    | #define HAVE_LIBAVCODEC 1
    | #define HAVE_LIBAVFORMAT 1
    | #define HAVE_LIBAVUTIL 1
    | #define HAVE_LIBSWSCALE 1
    | #define HAVE_LIBX264 1
    | /* end confdefs.h.  */
    | #include <ac_nonexistent.h>
    configure:7254: checking for grep that handles long lines and -e
    configure:7312: result: /bin/grep
    configure:7317: checking for egrep
    configure:7379: result: /bin/grep -E
    configure:7384: checking for ANSI C header files
    configure:7404: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7404: $? = 0
    configure:7477: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lx264 -lswscale -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:7477: $? = 0
    configure:7477: ./conftest
    configure:7477: $? = 0
    configure:7488: result: yes
    configure:7501: checking for sys/types.h
    configure:7501: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7501: $? = 0
    configure:7501: result: yes
    configure:7501: checking for sys/stat.h
    configure:7501: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7501: $? = 0
    configure:7501: result: yes
    configure:7501: checking for stdlib.h
    configure:7501: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7501: $? = 0
    configure:7501: result: yes
    configure:7501: checking for string.h
    configure:7501: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7501: $? = 0
    configure:7501: result: yes
    configure:7501: checking for memory.h
    configure:7501: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7501: $? = 0
    configure:7501: result: yes
    configure:7501: checking for strings.h
    configure:7501: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7501: $? = 0
    configure:7501: result: yes
    configure:7501: checking for inttypes.h
    configure:7501: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7501: $? = 0
    configure:7501: result: yes
    configure:7501: checking for stdint.h
    configure:7501: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7501: $? = 0
    configure:7501: result: yes
    configure:7501: checking for unistd.h
    configure:7501: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7501: $? = 0
    configure:7501: result: yes
    configure:7516: checking fcntl.h usability
    configure:7516: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7516: $? = 0
    configure:7516: result: yes
    configure:7516: checking fcntl.h presence
    configure:7516: g++ -std=gnu++14 -E  conftest.cpp
    configure:7516: $? = 0
    configure:7516: result: yes
    configure:7516: checking for fcntl.h
    configure:7516: result: yes
    configure:7516: checking stddef.h usability
    configure:7516: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7516: $? = 0
    configure:7516: result: yes
    configure:7516: checking stddef.h presence
    configure:7516: g++ -std=gnu++14 -E  conftest.cpp
    configure:7516: $? = 0
    configure:7516: result: yes
    configure:7516: checking for stddef.h
    configure:7516: result: yes
    configure:7516: checking for stdlib.h
    configure:7516: result: yes
    configure:7516: checking for string.h
    configure:7516: result: yes
    configure:7516: checking sys/param.h usability
    configure:7516: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7516: $? = 0
    configure:7516: result: yes
    configure:7516: checking sys/param.h presence
    configure:7516: g++ -std=gnu++14 -E  conftest.cpp
    configure:7516: $? = 0
    configure:7516: result: yes
    configure:7516: checking for sys/param.h
    configure:7516: result: yes
    configure:7516: checking for unistd.h
    configure:7516: result: yes
    configure:7528: checking for stdbool.h that conforms to C99
    configure:7595: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    conftest.cpp:42:15: error: expected unqualified-id before string constant
                   "error: bool is not defined"
                   ^
    conftest.cpp:60:48: error: 's' does not name a type
                  struct s { _Bool s: 1; _Bool t; } s;
                                                    ^
    conftest.cpp:70:28: error: 's' was not declared in this scope
                  char i[sizeof s.t];
                                ^
    conftest.cpp: In function 'int main()':
    conftest.cpp:88:24: error: 's' was not declared in this scope
                  bool e = &s;
                            ^
    conftest.cpp:92:63: error: 'i' was not declared in this scope
                  return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
                                                                   ^
    configure:7595: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | #define HAVE_CXX14 1
    | #define HAVE_LIBLSMASH 1
    | #define HAVE_LIBOGG 1
    | #define HAVE_LIBPTHREAD 1
    | #define HAVE_LIBVORBIS 1
    | #define HAVE_LIBVORBISENC 1
    | #define HAVE_LIBZ 1
    | #define HAVE_LIBAVCODEC 1
    | #define HAVE_LIBAVFORMAT 1
    | #define HAVE_LIBAVUTIL 1
    | #define HAVE_LIBSWSCALE 1
    | #define HAVE_LIBX264 1
    | #define STDC_HEADERS 1
    | #define HAVE_SYS_TYPES_H 1
    | #define HAVE_SYS_STAT_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_MEMORY_H 1
    | #define HAVE_STRINGS_H 1
    | #define HAVE_INTTYPES_H 1
    | #define HAVE_STDINT_H 1
    | #define HAVE_UNISTD_H 1
    | #define HAVE_FCNTL_H 1
    | #define HAVE_STDDEF_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_SYS_PARAM_H 1
    | #define HAVE_UNISTD_H 1
    | /* end confdefs.h.  */
    | 
    |              #include <stdbool.h>
    |              #ifndef bool
    |               "error: bool is not defined"
    |              #endif
    |              #ifndef false
    |               "error: false is not defined"
    |              #endif
    |              #if false
    |               "error: false is not 0"
    |              #endif
    |              #ifndef true
    |               "error: true is not defined"
    |              #endif
    |              #if true != 1
    |               "error: true is not 1"
    |              #endif
    |              #ifndef __bool_true_false_are_defined
    |               "error: __bool_true_false_are_defined is not defined"
    |              #endif
    | 
    |              struct s { _Bool s: 1; _Bool t; } s;
    | 
    |              char a[true == 1 ? 1 : -1];
    |              char b[false == 0 ? 1 : -1];
    |              char c[__bool_true_false_are_defined == 1 ? 1 : -1];
    |              char d[(bool) 0.5 == true ? 1 : -1];
    |              /* See body of main program for 'e'.  */
    |              char f[(_Bool) 0.0 == false ? 1 : -1];
    |              char g[true];
    |              char h[sizeof (_Bool)];
    |              char i[sizeof s.t];
    |              enum { j = false, k = true, l = false * true, m = true * 256 };
    |              /* The following fails for
    |                 HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
    |              _Bool n[m];
    |              char o[sizeof n == m * sizeof n[0] ? 1 : -1];
    |              char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
    |              /* Catch a bug in an HP-UX C compiler.  See
    |                 http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
    |                 http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
    |               */
    |              _Bool q = true;
    |              _Bool *pq = &q;
    | 
    | int
    | main ()
    | {
    | 
    |              bool e = &s;
    |              *pq |= q;
    |              *pq |= ! q;
    |              /* Refer to every declared value, to avoid compiler optimizations.  */
    |              return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
    |                      + !m + !n + !o + !p + !q + !pq);
    | 
    |   ;
    |   return 0;
    | }
    configure:7602: result: no
    configure:7604: checking for _Bool
    configure:7604: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    conftest.cpp: In function 'int main()':
    conftest.cpp:75:13: error: '_Bool' was not declared in this scope
     if (sizeof (_Bool))
                 ^
    configure:7604: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | #define HAVE_CXX14 1
    | #define HAVE_LIBLSMASH 1
    | #define HAVE_LIBOGG 1
    | #define HAVE_LIBPTHREAD 1
    | #define HAVE_LIBVORBIS 1
    | #define HAVE_LIBVORBISENC 1
    | #define HAVE_LIBZ 1
    | #define HAVE_LIBAVCODEC 1
    | #define HAVE_LIBAVFORMAT 1
    | #define HAVE_LIBAVUTIL 1
    | #define HAVE_LIBSWSCALE 1
    | #define HAVE_LIBX264 1
    | #define STDC_HEADERS 1
    | #define HAVE_SYS_TYPES_H 1
    | #define HAVE_SYS_STAT_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_MEMORY_H 1
    | #define HAVE_STRINGS_H 1
    | #define HAVE_INTTYPES_H 1
    | #define HAVE_STDINT_H 1
    | #define HAVE_UNISTD_H 1
    | #define HAVE_FCNTL_H 1
    | #define HAVE_STDDEF_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_SYS_PARAM_H 1
    | #define HAVE_UNISTD_H 1
    | /* end confdefs.h.  */
    | #include <stdio.h>
    | #ifdef HAVE_SYS_TYPES_H
    | # include <sys/types.h>
    | #endif
    | #ifdef HAVE_SYS_STAT_H
    | # include <sys/stat.h>
    | #endif
    | #ifdef STDC_HEADERS
    | # include <stdlib.h>
    | # include <stddef.h>
    | #else
    | # ifdef HAVE_STDLIB_H
    | #  include <stdlib.h>
    | # endif
    | #endif
    | #ifdef HAVE_STRING_H
    | # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
    | #  include <memory.h>
    | # endif
    | # include <string.h>
    | #endif
    | #ifdef HAVE_STRINGS_H
    | # include <strings.h>
    | #endif
    | #ifdef HAVE_INTTYPES_H
    | # include <inttypes.h>
    | #endif
    | #ifdef HAVE_STDINT_H
    | # include <stdint.h>
    | #endif
    | #ifdef HAVE_UNISTD_H
    | # include <unistd.h>
    | #endif
    | int
    | main ()
    | {
    | if (sizeof (_Bool))
    | 	 return 0;
    |   ;
    |   return 0;
    | }
    configure:7604: result: no
    configure:7615: checking for inline
    configure:7631: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7631: $? = 0
    configure:7639: result: inline
    configure:7657: checking for int16_t
    configure:7657: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7657: $? = 0
    configure:7657: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    conftest.cpp: In function 'int main()':
    conftest.cpp:77:58: error: size of array 'test_array' is negative
        < (int16_t) (((((int16_t) 1 << N) << N) - 1) * 2 + 2))];
                                                              ^
    configure:7657: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | #define HAVE_CXX14 1
    | #define HAVE_LIBLSMASH 1
    | #define HAVE_LIBOGG 1
    | #define HAVE_LIBPTHREAD 1
    | #define HAVE_LIBVORBIS 1
    | #define HAVE_LIBVORBISENC 1
    | #define HAVE_LIBZ 1
    | #define HAVE_LIBAVCODEC 1
    | #define HAVE_LIBAVFORMAT 1
    | #define HAVE_LIBAVUTIL 1
    | #define HAVE_LIBSWSCALE 1
    | #define HAVE_LIBX264 1
    | #define STDC_HEADERS 1
    | #define HAVE_SYS_TYPES_H 1
    | #define HAVE_SYS_STAT_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_MEMORY_H 1
    | #define HAVE_STRINGS_H 1
    | #define HAVE_INTTYPES_H 1
    | #define HAVE_STDINT_H 1
    | #define HAVE_UNISTD_H 1
    | #define HAVE_FCNTL_H 1
    | #define HAVE_STDDEF_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_SYS_PARAM_H 1
    | #define HAVE_UNISTD_H 1
    | /* end confdefs.h.  */
    | #include <stdio.h>
    | #ifdef HAVE_SYS_TYPES_H
    | # include <sys/types.h>
    | #endif
    | #ifdef HAVE_SYS_STAT_H
    | # include <sys/stat.h>
    | #endif
    | #ifdef STDC_HEADERS
    | # include <stdlib.h>
    | # include <stddef.h>
    | #else
    | # ifdef HAVE_STDLIB_H
    | #  include <stdlib.h>
    | # endif
    | #endif
    | #ifdef HAVE_STRING_H
    | # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
    | #  include <memory.h>
    | # endif
    | # include <string.h>
    | #endif
    | #ifdef HAVE_STRINGS_H
    | # include <strings.h>
    | #endif
    | #ifdef HAVE_INTTYPES_H
    | # include <inttypes.h>
    | #endif
    | #ifdef HAVE_STDINT_H
    | # include <stdint.h>
    | #endif
    | #ifdef HAVE_UNISTD_H
    | # include <unistd.h>
    | #endif
    | 	        enum { N = 16 / 2 - 1 };
    | int
    | main ()
    | {
    | static int test_array [1 - 2 * !((int16_t) (((((int16_t) 1 << N) << N) - 1) * 2 + 1)
    | 		 < (int16_t) (((((int16_t) 1 << N) << N) - 1) * 2 + 2))];
    | test_array [0] = 0;
    | return test_array [0];
    | 
    |   ;
    |   return 0;
    | }
    configure:7657: result: yes
    configure:7668: checking for int32_t
    configure:7668: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7668: $? = 0
    configure:7668: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    conftest.cpp: In function 'int main()':
    conftest.cpp:77:53: warning: integer overflow in expression [-Woverflow]
        < (int32_t) (((((int32_t) 1 << N) << N) - 1) * 2 + 2))];
                                                         ^
    conftest.cpp:77:58: error: size of array 'test_array' is negative
        < (int32_t) (((((int32_t) 1 << N) << N) - 1) * 2 + 2))];
                                                              ^
    configure:7668: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | #define HAVE_CXX14 1
    | #define HAVE_LIBLSMASH 1
    | #define HAVE_LIBOGG 1
    | #define HAVE_LIBPTHREAD 1
    | #define HAVE_LIBVORBIS 1
    | #define HAVE_LIBVORBISENC 1
    | #define HAVE_LIBZ 1
    | #define HAVE_LIBAVCODEC 1
    | #define HAVE_LIBAVFORMAT 1
    | #define HAVE_LIBAVUTIL 1
    | #define HAVE_LIBSWSCALE 1
    | #define HAVE_LIBX264 1
    | #define STDC_HEADERS 1
    | #define HAVE_SYS_TYPES_H 1
    | #define HAVE_SYS_STAT_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_MEMORY_H 1
    | #define HAVE_STRINGS_H 1
    | #define HAVE_INTTYPES_H 1
    | #define HAVE_STDINT_H 1
    | #define HAVE_UNISTD_H 1
    | #define HAVE_FCNTL_H 1
    | #define HAVE_STDDEF_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_SYS_PARAM_H 1
    | #define HAVE_UNISTD_H 1
    | /* end confdefs.h.  */
    | #include <stdio.h>
    | #ifdef HAVE_SYS_TYPES_H
    | # include <sys/types.h>
    | #endif
    | #ifdef HAVE_SYS_STAT_H
    | # include <sys/stat.h>
    | #endif
    | #ifdef STDC_HEADERS
    | # include <stdlib.h>
    | # include <stddef.h>
    | #else
    | # ifdef HAVE_STDLIB_H
    | #  include <stdlib.h>
    | # endif
    | #endif
    | #ifdef HAVE_STRING_H
    | # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
    | #  include <memory.h>
    | # endif
    | # include <string.h>
    | #endif
    | #ifdef HAVE_STRINGS_H
    | # include <strings.h>
    | #endif
    | #ifdef HAVE_INTTYPES_H
    | # include <inttypes.h>
    | #endif
    | #ifdef HAVE_STDINT_H
    | # include <stdint.h>
    | #endif
    | #ifdef HAVE_UNISTD_H
    | # include <unistd.h>
    | #endif
    | 	        enum { N = 32 / 2 - 1 };
    | int
    | main ()
    | {
    | static int test_array [1 - 2 * !((int32_t) (((((int32_t) 1 << N) << N) - 1) * 2 + 1)
    | 		 < (int32_t) (((((int32_t) 1 << N) << N) - 1) * 2 + 2))];
    | test_array [0] = 0;
    | return test_array [0];
    | 
    |   ;
    |   return 0;
    | }
    configure:7668: result: yes
    configure:7679: checking for int64_t
    configure:7679: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7679: $? = 0
    configure:7679: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    conftest.cpp: In function 'int main()':
    conftest.cpp:77:53: warning: integer overflow in expression [-Woverflow]
        < (int64_t) (((((int64_t) 1 << N) << N) - 1) * 2 + 2))];
                                                         ^
    conftest.cpp:77:58: error: size of array 'test_array' is negative
        < (int64_t) (((((int64_t) 1 << N) << N) - 1) * 2 + 2))];
                                                              ^
    configure:7679: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | #define HAVE_CXX14 1
    | #define HAVE_LIBLSMASH 1
    | #define HAVE_LIBOGG 1
    | #define HAVE_LIBPTHREAD 1
    | #define HAVE_LIBVORBIS 1
    | #define HAVE_LIBVORBISENC 1
    | #define HAVE_LIBZ 1
    | #define HAVE_LIBAVCODEC 1
    | #define HAVE_LIBAVFORMAT 1
    | #define HAVE_LIBAVUTIL 1
    | #define HAVE_LIBSWSCALE 1
    | #define HAVE_LIBX264 1
    | #define STDC_HEADERS 1
    | #define HAVE_SYS_TYPES_H 1
    | #define HAVE_SYS_STAT_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_MEMORY_H 1
    | #define HAVE_STRINGS_H 1
    | #define HAVE_INTTYPES_H 1
    | #define HAVE_STDINT_H 1
    | #define HAVE_UNISTD_H 1
    | #define HAVE_FCNTL_H 1
    | #define HAVE_STDDEF_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_SYS_PARAM_H 1
    | #define HAVE_UNISTD_H 1
    | /* end confdefs.h.  */
    | #include <stdio.h>
    | #ifdef HAVE_SYS_TYPES_H
    | # include <sys/types.h>
    | #endif
    | #ifdef HAVE_SYS_STAT_H
    | # include <sys/stat.h>
    | #endif
    | #ifdef STDC_HEADERS
    | # include <stdlib.h>
    | # include <stddef.h>
    | #else
    | # ifdef HAVE_STDLIB_H
    | #  include <stdlib.h>
    | # endif
    | #endif
    | #ifdef HAVE_STRING_H
    | # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
    | #  include <memory.h>
    | # endif
    | # include <string.h>
    | #endif
    | #ifdef HAVE_STRINGS_H
    | # include <strings.h>
    | #endif
    | #ifdef HAVE_INTTYPES_H
    | # include <inttypes.h>
    | #endif
    | #ifdef HAVE_STDINT_H
    | # include <stdint.h>
    | #endif
    | #ifdef HAVE_UNISTD_H
    | # include <unistd.h>
    | #endif
    | 	        enum { N = 64 / 2 - 1 };
    | int
    | main ()
    | {
    | static int test_array [1 - 2 * !((int64_t) (((((int64_t) 1 << N) << N) - 1) * 2 + 1)
    | 		 < (int64_t) (((((int64_t) 1 << N) << N) - 1) * 2 + 2))];
    | test_array [0] = 0;
    | return test_array [0];
    | 
    |   ;
    |   return 0;
    | }
    configure:7679: result: yes
    configure:7690: checking for size_t
    configure:7690: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7690: $? = 0
    configure:7690: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    conftest.cpp: In function 'int main()':
    conftest.cpp:75:20: error: expected primary-expression before ')' token
     if (sizeof ((size_t)))
                        ^
    configure:7690: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | #define HAVE_CXX14 1
    | #define HAVE_LIBLSMASH 1
    | #define HAVE_LIBOGG 1
    | #define HAVE_LIBPTHREAD 1
    | #define HAVE_LIBVORBIS 1
    | #define HAVE_LIBVORBISENC 1
    | #define HAVE_LIBZ 1
    | #define HAVE_LIBAVCODEC 1
    | #define HAVE_LIBAVFORMAT 1
    | #define HAVE_LIBAVUTIL 1
    | #define HAVE_LIBSWSCALE 1
    | #define HAVE_LIBX264 1
    | #define STDC_HEADERS 1
    | #define HAVE_SYS_TYPES_H 1
    | #define HAVE_SYS_STAT_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_MEMORY_H 1
    | #define HAVE_STRINGS_H 1
    | #define HAVE_INTTYPES_H 1
    | #define HAVE_STDINT_H 1
    | #define HAVE_UNISTD_H 1
    | #define HAVE_FCNTL_H 1
    | #define HAVE_STDDEF_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_SYS_PARAM_H 1
    | #define HAVE_UNISTD_H 1
    | /* end confdefs.h.  */
    | #include <stdio.h>
    | #ifdef HAVE_SYS_TYPES_H
    | # include <sys/types.h>
    | #endif
    | #ifdef HAVE_SYS_STAT_H
    | # include <sys/stat.h>
    | #endif
    | #ifdef STDC_HEADERS
    | # include <stdlib.h>
    | # include <stddef.h>
    | #else
    | # ifdef HAVE_STDLIB_H
    | #  include <stdlib.h>
    | # endif
    | #endif
    | #ifdef HAVE_STRING_H
    | # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
    | #  include <memory.h>
    | # endif
    | # include <string.h>
    | #endif
    | #ifdef HAVE_STRINGS_H
    | # include <strings.h>
    | #endif
    | #ifdef HAVE_INTTYPES_H
    | # include <inttypes.h>
    | #endif
    | #ifdef HAVE_STDINT_H
    | # include <stdint.h>
    | #endif
    | #ifdef HAVE_UNISTD_H
    | # include <unistd.h>
    | #endif
    | int
    | main ()
    | {
    | if (sizeof ((size_t)))
    | 	    return 0;
    |   ;
    |   return 0;
    | }
    configure:7690: result: yes
    configure:7701: checking for uint16_t
    configure:7701: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7701: $? = 0
    configure:7701: result: yes
    configure:7713: checking for uint32_t
    configure:7713: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7713: $? = 0
    configure:7713: result: yes
    configure:7727: checking for uint64_t
    configure:7727: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7727: $? = 0
    configure:7727: result: yes
    configure:7741: checking for uint8_t
    configure:7741: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:7741: $? = 0
    configure:7741: result: yes
    configure:7763: checking for stdlib.h
    configure:7763: result: yes
    configure:7763: checking for unistd.h
    configure:7763: result: yes
    configure:7763: checking for sys/param.h
    configure:7763: result: yes
    configure:7783: checking for getpagesize
    configure:7783: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lx264 -lswscale -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:7783: $? = 0
    configure:7783: result: yes
    configure:7792: checking for working mmap
    configure:7939: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lx264 -lswscale -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:7939: $? = 0
    configure:7939: ./conftest
    configure:7939: $? = 0
    configure:7949: result: yes
    configure:7961: checking for getcwd
    configure:7961: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lx264 -lswscale -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:7961: $? = 0
    configure:7961: result: yes
    configure:7961: checking for memset
    configure:7961: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lx264 -lswscale -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:7961: $? = 0
    configure:7961: result: yes
    configure:7961: checking for mkdir
    configure:7961: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lx264 -lswscale -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:7961: $? = 0
    configure:7961: result: yes
    configure:7961: checking for munmap
    configure:7961: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lx264 -lswscale -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:7961: $? = 0
    configure:7961: result: yes
    configure:7961: checking for sqrt
    configure:7961: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lx264 -lswscale -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:7961: $? = 0
    configure:7961: result: yes
    configure:7961: checking for strrchr
    configure:7961: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp -lx264 -lswscale -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:7961: $? = 0
    configure:7961: result: yes
    configure:8017: checking how to print strings
    configure:8044: result: printf
    configure:8065: checking for a sed that does not truncate output
    configure:8129: result: /bin/sed
    configure:8147: checking for fgrep
    configure:8209: result: /bin/grep -F
    configure:8244: checking for ld used by gcc
    configure:8311: result: /usr/bin/ld
    configure:8318: checking if the linker (/usr/bin/ld) is GNU ld
    configure:8333: result: yes
    configure:8345: checking for BSD- or MS-compatible name lister (nm)
    configure:8399: result: /usr/bin/nm -B
    configure:8529: checking the name lister (/usr/bin/nm -B) interface
    configure:8536: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:8539: /usr/bin/nm -B "conftest.o"
    configure:8542: output
    00000000 B some_variable
    configure:8549: result: BSD nm
    configure:8553: checking the maximum length of command line arguments
    configure:8684: result: 1572864
    configure:8732: checking how to convert i686-pc-linux-gnu file names to i686-pc-linux-gnu format
    configure:8772: result: func_convert_file_noop
    configure:8779: checking how to convert i686-pc-linux-gnu file names to toolchain format
    configure:8799: result: func_convert_file_noop
    configure:8806: checking for /usr/bin/ld option to reload object files
    configure:8813: result: -r
    configure:8887: checking for objdump
    configure:8903: found /usr/bin/objdump
    configure:8914: result: objdump
    configure:8946: checking how to recognize dependent libraries
    configure:9146: result: pass_all
    configure:9231: checking for dlltool
    configure:9261: result: no
    configure:9291: checking how to associate runtime and link libraries
    configure:9318: result: printf %s\n
    configure:9378: checking for ar
    configure:9394: found /usr/bin/ar
    configure:9405: result: ar
    configure:9442: checking for archiver @FILE support
    configure:9459: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:9459: $? = 0
    configure:9462: ar cru libconftest.a @conftest.lst >&5
    ar: `u' modifier ignored since `D' is the default (see `U')
    configure:9465: $? = 0
    configure:9470: ar cru libconftest.a @conftest.lst >&5
    ar: `u' modifier ignored since `D' is the default (see `U')
    ar: conftest.o: No such file or directory
    configure:9473: $? = 1
    configure:9485: result: @
    configure:9543: checking for strip
    configure:9559: found /usr/bin/strip
    configure:9570: result: strip
    configure:9642: checking for ranlib
    configure:9669: result: ranlib
    configure:9771: checking command to parse /usr/bin/nm -B output from gcc object
    configure:9924: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:9927: $? = 0
    configure:9931: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm
    configure:9934: $? = 0
    configure:10000: g++ -std=gnu++14 -o conftest -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden   conftest.cpp conftstm.o >&5
    configure:10003: $? = 0
    configure:10041: result: ok
    configure:10088: checking for sysroot
    configure:10118: result: no
    configure:10125: checking for a working dd
    configure:10163: result: /bin/dd
    configure:10167: checking how to truncate binary pipes
    configure:10182: result: /bin/dd bs=4096 count=1
    configure:10512: checking for mt
    configure:10542: result: no
    configure:10562: checking if : is a manifest tool
    configure:10568: : '-?'
    configure:10576: result: no
    configure:11250: checking for dlfcn.h
    configure:11250: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:11250: $? = 0
    configure:11250: result: yes
    configure:11516: checking for objdir
    configure:11531: result: .libs
    configure:11795: checking if gcc supports -fno-rtti -fno-exceptions
    configure:11813: gcc -c -g -O2  -fno-rtti -fno-exceptions conftest.c >&5
    cc1: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C
    configure:11817: $? = 0
    configure:11830: result: no
    configure:12188: checking for gcc option to produce PIC
    configure:12195: result: -fPIC -DPIC
    configure:12203: checking if gcc PIC flag -fPIC -DPIC works
    configure:12221: gcc -c -g -O2  -fPIC -DPIC -DPIC conftest.c >&5
    configure:12225: $? = 0
    configure:12238: result: yes
    configure:12267: checking if gcc static flag -static works
    configure:12295: result: yes
    configure:12310: checking if gcc supports -c -o file.o
    configure:12331: gcc -c -g -O2  -o out/conftest2.o conftest.c >&5
    configure:12335: $? = 0
    configure:12357: result: yes
    configure:12365: checking if gcc supports -c -o file.o
    configure:12412: result: yes
    configure:12445: checking whether the gcc linker (/usr/bin/ld) supports shared libraries
    configure:13704: result: yes
    configure:13741: checking whether -lc should be explicitly linked in
    configure:13749: gcc -c -g -O2  conftest.c >&5
    configure:13752: $? = 0
    configure:13767: gcc -shared  -fPIC -DPIC conftest.o  -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /bin/grep  -lc  \>/dev/null 2\>\&1
    configure:13770: $? = 0
    configure:13784: result: no
    configure:13944: checking dynamic linker characteristics
    configure:14525: gcc -o conftest -g -O2   -Wl,-rpath -Wl,/foo conftest.c -lx264 -lswscale -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash  >&5
    configure:14525: $? = 0
    configure:14762: result: GNU/Linux ld.so
    configure:14884: checking how to hardcode library paths into programs
    configure:14909: result: immediate
    configure:15457: checking whether stripping libraries is possible
    configure:15462: result: yes
    configure:15497: checking if libtool supports shared libraries
    configure:15499: result: yes
    configure:15502: checking whether to build shared libraries
    configure:15527: result: yes
    configure:15530: checking whether to build static libraries
    configure:15534: result: yes
    configure:15557: checking how to run the C++ preprocessor
    configure:15623: result: g++ -std=gnu++14 -E
    configure:15643: g++ -std=gnu++14 -E  conftest.cpp
    configure:15643: $? = 0
    configure:15657: g++ -std=gnu++14 -E  conftest.cpp
    conftest.cpp:52:28: fatal error: ac_nonexistent.h: No such file or directory
    compilation terminated.
    configure:15657: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME "vireo"
    | #define PACKAGE_TARNAME "vireo"
    | #define PACKAGE_VERSION "2.4.22"
    | #define PACKAGE_STRING "vireo 2.4.22"
    | #define PACKAGE_BUGREPORT "[email protected]"
    | #define PACKAGE_URL ""
    | #define PACKAGE "vireo"
    | #define VERSION "2.4.22"
    | #define HAVE_CXX14 1
    | #define HAVE_LIBLSMASH 1
    | #define HAVE_LIBOGG 1
    | #define HAVE_LIBPTHREAD 1
    | #define HAVE_LIBVORBIS 1
    | #define HAVE_LIBVORBISENC 1
    | #define HAVE_LIBZ 1
    | #define HAVE_LIBAVCODEC 1
    | #define HAVE_LIBAVFORMAT 1
    | #define HAVE_LIBAVUTIL 1
    | #define HAVE_LIBSWSCALE 1
    | #define HAVE_LIBX264 1
    | #define STDC_HEADERS 1
    | #define HAVE_SYS_TYPES_H 1
    | #define HAVE_SYS_STAT_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_MEMORY_H 1
    | #define HAVE_STRINGS_H 1
    | #define HAVE_INTTYPES_H 1
    | #define HAVE_STDINT_H 1
    | #define HAVE_UNISTD_H 1
    | #define HAVE_FCNTL_H 1
    | #define HAVE_STDDEF_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_STRING_H 1
    | #define HAVE_SYS_PARAM_H 1
    | #define HAVE_UNISTD_H 1
    | #define HAVE_STDLIB_H 1
    | #define HAVE_UNISTD_H 1
    | #define HAVE_SYS_PARAM_H 1
    | #define HAVE_GETPAGESIZE 1
    | #define HAVE_MMAP 1
    | #define HAVE_GETCWD 1
    | #define HAVE_MEMSET 1
    | #define HAVE_MKDIR 1
    | #define HAVE_MUNMAP 1
    | #define HAVE_SQRT 1
    | #define HAVE_STRRCHR 1
    | #define HAVE_DLFCN_H 1
    | #define LT_OBJDIR ".libs/"
    | /* end confdefs.h.  */
    | #include <ac_nonexistent.h>
    configure:15819: checking for ld used by g++ -std=gnu++14
    configure:15886: result: /usr/bin/ld
    configure:15893: checking if the linker (/usr/bin/ld) is GNU ld
    configure:15908: result: yes
    configure:15963: checking whether the g++ -std=gnu++14 linker (/usr/bin/ld) supports shared libraries
    configure:17036: result: yes
    configure:17072: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  conftest.cpp >&5
    configure:17075: $? = 0
    configure:17556: checking for g++ -std=gnu++14 option to produce PIC
    configure:17563: result: -fPIC -DPIC
    configure:17571: checking if g++ -std=gnu++14 PIC flag -fPIC -DPIC works
    configure:17589: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  -fPIC -DPIC -DPIC conftest.cpp >&5
    configure:17593: $? = 0
    configure:17606: result: yes
    configure:17629: checking if g++ -std=gnu++14 static flag -static works
    configure:17657: result: yes
    configure:17669: checking if g++ -std=gnu++14 supports -c -o file.o
    configure:17690: g++ -std=gnu++14 -c -g -O2 -fvisibility=hidden -fvisibility-inlines-hidden  -o out/conftest2.o conftest.cpp >&5
    configure:17694: $? = 0
    configure:17716: result: yes
    configure:17721: checking if g++ -std=gnu++14 supports -c -o file.o
    configure:17768: result: yes
    configure:17798: checking whether the g++ -std=gnu++14 linker (/usr/bin/ld) supports shared libraries
    configure:17838: result: yes
    configure:17979: checking dynamic linker characteristics
    configure:18724: result: GNU/Linux ld.so
    configure:18789: checking how to hardcode library paths into programs
    configure:18814: result: immediate
    configure:19048: checking that generated files are newer than configure
    configure:19054: result: done
    configure:19133: creating ./config.status
    
    ## ---------------------- ##
    ## Running config.status. ##
    ## ---------------------- ##
    
    This file was extended by vireo config.status 2.4.22, which was
    generated by GNU Autoconf 2.69.  Invocation command line was
    
      CONFIG_FILES    = 
      CONFIG_HEADERS  = 
      CONFIG_LINKS    = 
      CONFIG_COMMANDS = 
      $ ./config.status 
    
    on puppypc26290
    
    config.status:1208: creating Makefile
    config.status:1208: creating vireo.pc
    config.status:1208: creating config.h
    config.status:1389: config.h is unchanged
    config.status:1437: executing depfiles commands
    config.status:1437: executing libtool commands
    configure:21608: === configuring in ../imagecore (/root/src/vireo-master/vireo/../imagecore)
    configure:21671: running /bin/sh ./configure --disable-option-checking '--prefix=/usr/local'  '--enable-gpl' --cache-file=/dev/null --srcdir=.
    
    ## ---------------- ##
    ## Cache variables. ##
    ## ---------------- ##
    
    ac_cv_build=i686-pc-linux-gnu
    ac_cv_c_compiler_gnu=yes
    ac_cv_c_inline=inline
    ac_cv_c_int16_t=yes
    ac_cv_c_int32_t=yes
    ac_cv_c_int64_t=yes
    ac_cv_c_uint16_t=yes
    ac_cv_c_uint32_t=yes
    ac_cv_c_uint64_t=yes
    ac_cv_c_uint8_t=yes
    ac_cv_cxx_compiler_gnu=yes
    ac_cv_env_CCC_set=
    ac_cv_env_CCC_value=
    ac_cv_env_CC_set=
    ac_cv_env_CC_value=
    ac_cv_env_CFLAGS_set=
    ac_cv_env_CFLAGS_value=
    ac_cv_env_CPPFLAGS_set=
    ac_cv_env_CPPFLAGS_value=
    ac_cv_env_CPP_set=
    ac_cv_env_CPP_value=
    ac_cv_env_CXXCPP_set=
    ac_cv_env_CXXCPP_value=
    ac_cv_env_CXXFLAGS_set=
    ac_cv_env_CXXFLAGS_value=
    ac_cv_env_CXX_set=
    ac_cv_env_CXX_value=
    ac_cv_env_LDFLAGS_set=
    ac_cv_env_LDFLAGS_value=
    ac_cv_env_LIBS_set=
    ac_cv_env_LIBS_value=
    ac_cv_env_LT_SYS_LIBRARY_PATH_set=
    ac_cv_env_LT_SYS_LIBRARY_PATH_value=
    ac_cv_env_build_alias_set=
    ac_cv_env_build_alias_value=
    ac_cv_env_host_alias_set=
    ac_cv_env_host_alias_value=
    ac_cv_env_target_alias_set=
    ac_cv_env_target_alias_value=
    ac_cv_func_getcwd=yes
    ac_cv_func_getpagesize=yes
    ac_cv_func_memset=yes
    ac_cv_func_mkdir=yes
    ac_cv_func_mmap_fixed_mapped=yes
    ac_cv_func_munmap=yes
    ac_cv_func_sqrt=yes
    ac_cv_func_strrchr=yes
    ac_cv_header_dlfcn_h=yes
    ac_cv_header_fcntl_h=yes
    ac_cv_header_inttypes_h=yes
    ac_cv_header_memory_h=yes
    ac_cv_header_stdbool_h=no
    ac_cv_header_stdc=yes
    ac_cv_header_stddef_h=yes
    ac_cv_header_stdint_h=yes
    ac_cv_header_stdlib_h=yes
    ac_cv_header_string_h=yes
    ac_cv_header_strings_h=yes
    ac_cv_header_sys_param_h=yes
    ac_cv_header_sys_stat_h=yes
    ac_cv_header_sys_types_h=yes
    ac_cv_header_unistd_h=yes
    ac_cv_host=i686-pc-linux-gnu
    ac_cv_lib_avcodec_av_init_packet=yes
    ac_cv_lib_avformat_av_add_index_entry=yes
    ac_cv_lib_avutil_av_asprintf=yes
    ac_cv_lib_fdk_aac_aacDecoder_Open=no
    ac_cv_lib_lsmash_lsmash_free=yes
    ac_cv_lib_ogg_ogg_packet_clear=yes
    ac_cv_lib_pthread_pthread_create=yes
    ac_cv_lib_swscale_swscale_version=yes
    ac_cv_lib_vorbis_vorbis_block_init=yes
    ac_cv_lib_vorbisenc_vorbis_encode_init=yes
    ac_cv_lib_vpx_vpx_free=no
    ac_cv_lib_webm__ZN8mkvmuxer10AudioTrackC1EPj=no
    ac_cv_lib_x264_x264_free=yes
    ac_cv_lib_z_deflate=yes
    ac_cv_objext=o
    ac_cv_path_EGREP='/bin/grep -E'
    ac_cv_path_FGREP='/bin/grep -F'
    ac_cv_path_GREP=/bin/grep
    ac_cv_path_SED=/bin/sed
    ac_cv_path_install='/usr/bin/ginstall -c'
    ac_cv_path_lt_DD=/bin/dd
    ac_cv_prog_AWK=gawk
    ac_cv_prog_CPP='gcc -E'
    ac_cv_prog_CXXCPP='g++ -std=gnu++14 -E'
    ac_cv_prog_ac_ct_AR=ar
    ac_cv_prog_ac_ct_CC=gcc
    ac_cv_prog_ac_ct_CXX=g++
    ac_cv_prog_ac_ct_OBJDUMP=objdump
    ac_cv_prog_ac_ct_RANLIB=ranlib
    ac_cv_prog_ac_ct_STRIP=strip
    ac_cv_prog_cc_c89=
    ac_cv_prog_cc_g=yes
    ac_cv_prog_cxx_g=yes
    ac_cv_prog_make_make_set=yes
    ac_cv_type__Bool=no
    ac_cv_type_size_t=yes
    am_cv_CC_dependencies_compiler_type=gcc3
    am_cv_CXX_dependencies_compiler_type=gcc3
    am_cv_make_support_nested_variables=yes
    am_cv_prog_cc_c_o=yes
    ax_cv_check_cxxflags___fvisibility_hidden=yes
    ax_cv_cxx_compile_cxx14=no
    ax_cv_cxx_compile_cxx14__std_gnupp14=yes
    [email protected]
    lt_cv_archive_cmds_need_lc=no
    lt_cv_deplibs_check_method=pass_all
    lt_cv_file_magic_cmd='$MAGIC_CMD'
    lt_cv_file_magic_test_file=
    lt_cv_ld_reload_flag=-r
    lt_cv_nm_interface='BSD nm'
    lt_cv_objdir=.libs
    lt_cv_path_LD=/usr/bin/ld
    lt_cv_path_LDCXX=/usr/bin/ld
    lt_cv_path_NM='/usr/bin/nm -B'
    lt_cv_path_mainfest_tool=no
    lt_cv_prog_compiler_c_o=yes
    lt_cv_prog_compiler_c_o_CXX=yes
    lt_cv_prog_compiler_pic='-fPIC -DPIC'
    lt_cv_prog_compiler_pic_CXX='-fPIC -DPIC'
    lt_cv_prog_compiler_pic_works=yes
    lt_cv_prog_compiler_pic_works_CXX=yes
    lt_cv_prog_compiler_rtti_exceptions=no
    lt_cv_prog_compiler_static_works=yes
    lt_cv_prog_compiler_static_works_CXX=yes
    lt_cv_prog_gnu_ld=yes
    lt_cv_prog_gnu_ldcxx=yes
    lt_cv_sharedlib_from_linklib_cmd='printf %s\n'
    lt_cv_shlibpath_overrides_runpath=no
    lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\'''
    lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \(.*\) .*$/  {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/  {"\1", (void *) \&\1},/p'\'''
    lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \(.*\) .*$/  {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/  {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/  {"lib\1", (void *) \&\1},/p'\'''
    lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\'''
    lt_cv_sys_global_symbol_to_import=
    lt_cv_sys_max_cmd_len=1572864
    lt_cv_to_host_file_cmd=func_convert_file_noop
    lt_cv_to_tool_file_cmd=func_convert_file_noop
    lt_cv_truncate_bin='/bin/dd bs=4096 count=1'
    
    ## ----------------- ##
    ## Output variables. ##
    ## ----------------- ##
    
    ACLOCAL='${SHELL} /root/src/vireo-master/vireo/missing aclocal-1.15'
    AMDEPBACKSLASH='\'
    AMDEP_FALSE='#'
    AMDEP_TRUE=''
    AMTAR='$${TAR-tar}'
    AM_BACKSLASH='\'
    AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
    AM_DEFAULT_VERBOSITY='0'
    AM_V='$(V)'
    AR='ar'
    AUTOCONF='${SHELL} /root/src/vireo-master/vireo/missing autoconf'
    AUTOHEADER='${SHELL} /root/src/vireo-master/vireo/missing autoheader'
    AUTOMAKE='${SHELL} /root/src/vireo-master/vireo/missing automake-1.15'
    AWK='gawk'
    BUILD_SCALA_FALSE=''
    BUILD_SCALA_TRUE='#'
    CC='gcc'
    CCDEPMODE='depmode=gcc3'
    CFLAGS='-g -O2'
    CPP='gcc -E'
    CPPFLAGS=''
    CXX='g++ -std=gnu++14'
    CXXCPP='g++ -std=gnu++14 -E'
    CXXDEPMODE='depmode=gcc3'
    CXXFLAGS='-g -O2 -fvisibility=hidden -fvisibility-inlines-hidden'
    CYGPATH_W='echo'
    DEFS='-DHAVE_CONFIG_H'
    DEPDIR='.deps'
    DLLTOOL='false'
    DSYMUTIL=''
    DUMPBIN=''
    ECHO_C=''
    ECHO_N='-n'
    ECHO_T=''
    EGREP='/bin/grep -E'
    EXEEXT=''
    FGREP='/bin/grep -F'
    GREP='/bin/grep'
    HAVE_CXX14='1'
    INSTALL_DATA='${INSTALL} -m 644'
    INSTALL_PROGRAM='${INSTALL}'
    INSTALL_SCRIPT='${INSTALL}'
    INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
    JAVA_HOME=''
    JAVA_HOME_SET_FALSE=''
    JAVA_HOME_SET_TRUE='#'
    JAVA_PATH_NAME=''
    JNI_CPPFLAGS=''
    LD='/usr/bin/ld'
    LDFLAGS=''
    LIBOBJS=''
    LIBS='-lx264 -lswscale -lavutil -lavformat -lavcodec -lz -lvorbisenc -lvorbis -lpthread -logg -llsmash '
    LIBTOOL='$(SHELL) $(top_builddir)/libtool'
    LIPO=''
    LN_S='ln -s'
    LTLIBOBJS=''
    LT_SYS_LIBRARY_PATH=''
    MAKEINFO='${SHELL} /root/src/vireo-master/vireo/missing makeinfo'
    MANIFEST_TOOL=':'
    MKDIR_P='./install-sh -c -d'
    NM='/usr/bin/nm -B'
    NMEDIT=''
    OBJDUMP='objdump'
    OBJEXT='o'
    OTOOL64=''
    OTOOL=''
    PACKAGE='vireo'
    PACKAGE_BUGREPORT='[email protected]'
    PACKAGE_NAME='vireo'
    PACKAGE_STRING='vireo 2.4.22'
    PACKAGE_TARNAME='vireo'
    PACKAGE_URL=''
    PACKAGE_VERSION='2.4.22'
    PATH_SEPARATOR=':'
    RANLIB='ranlib'
    SED='/bin/sed'
    SET_MAKE=''
    SHELL='/bin/sh'
    STRIP='strip'
    USE_LIBAVCODEC_FALSE='#'
    USE_LIBAVCODEC_TRUE=''
    USE_LIBAVFORMAT_FALSE='#'
    USE_LIBAVFORMAT_TRUE=''
    USE_LIBAVUTIL_FALSE='#'
    USE_LIBAVUTIL_TRUE=''
    USE_LIBFDK_AAC_FALSE=''
    USE_LIBFDK_AAC_TRUE='#'
    USE_LIBLSMASH_FALSE='#'
    USE_LIBLSMASH_TRUE=''
    USE_LIBSWSCALE_FALSE='#'
    USE_LIBSWSCALE_TRUE=''
    USE_LIBVORBISENC_FALSE='#'
    USE_LIBVORBISENC_TRUE=''
    USE_LIBVORBIS_FALSE=''
    USE_LIBVORBIS_TRUE='#'
    USE_LIBVPX_FALSE=''
    USE_LIBVPX_TRUE='#'
    USE_LIBWEBM_FALSE=''
    USE_LIBWEBM_TRUE='#'
    USE_LIBX264_FALSE='#'
    USE_LIBX264_TRUE=''
    VERSION='2.4.22'
    _ACJNI_JAVAC=''
    ac_ct_AR='ar'
    ac_ct_CC='gcc'
    ac_ct_CXX='g++'
    ac_ct_DUMPBIN=''
    am__EXEEXT_FALSE=''
    am__EXEEXT_TRUE='#'
    am__fastdepCC_FALSE='#'
    am__fastdepCC_TRUE=''
    am__fastdepCXX_FALSE='#'
    am__fastdepCXX_TRUE=''
    am__include='include'
    am__isrc=''
    am__leading_dot='.'
    am__nodep='_no'
    am__quote=''
    am__tar='$${TAR-tar} chof - "$$tardir"'
    am__untar='$${TAR-tar} xf -'
    bindir='${exec_prefix}/bin'
    build='i686-pc-linux-gnu'
    build_alias=''
    build_cpu='i686'
    build_os='linux-gnu'
    build_vendor='pc'
    datadir='${datarootdir}'
    datarootdir='${prefix}/share'
    docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
    dvidir='${docdir}'
    exec_prefix='${prefix}'
    host='i686-pc-linux-gnu'
    host_alias=''
    host_cpu='i686'
    host_os='linux-gnu'
    host_vendor='pc'
    htmldir='${docdir}'
    includedir='${prefix}/include'
    infodir='${datarootdir}/info'
    install_sh='${SHELL} /root/src/vireo-master/vireo/install-sh'
    libdir='${exec_prefix}/lib'
    libexecdir='${exec_prefix}/libexec'
    localedir='${datarootdir}/locale'
    localstatedir='${prefix}/var'
    mandir='${datarootdir}/man'
    mkdir_p='$(MKDIR_P)'
    oldincludedir='/usr/include'
    pdfdir='${docdir}'
    prefix='/usr/local'
    program_transform_name='s,x,x,'
    psdir='${docdir}'
    sbindir='${exec_prefix}/sbin'
    sharedstatedir='${prefix}/com'
    subdirs=' ../imagecore'
    sysconfdir='${prefix}/etc'
    target_alias=''
    
    ## ----------- ##
    ## confdefs.h. ##
    ## ----------- ##
    
    /* confdefs.h */
    #define PACKAGE_NAME "vireo"
    #define PACKAGE_TARNAME "vireo"
    #define PACKAGE_VERSION "2.4.22"
    #define PACKAGE_STRING "vireo 2.4.22"
    #define PACKAGE_BUGREPORT "[email protected]"
    #define PACKAGE_URL ""
    #define PACKAGE "vireo"
    #define VERSION "2.4.22"
    #define HAVE_CXX14 1
    #define HAVE_LIBLSMASH 1
    #define HAVE_LIBOGG 1
    #define HAVE_LIBPTHREAD 1
    #define HAVE_LIBVORBIS 1
    #define HAVE_LIBVORBISENC 1
    #define HAVE_LIBZ 1
    #define HAVE_LIBAVCODEC 1
    #define HAVE_LIBAVFORMAT 1
    #define HAVE_LIBAVUTIL 1
    #define HAVE_LIBSWSCALE 1
    #define HAVE_LIBX264 1
    #define STDC_HEADERS 1
    #define HAVE_SYS_TYPES_H 1
    #define HAVE_SYS_STAT_H 1
    #define HAVE_STDLIB_H 1
    #define HAVE_STRING_H 1
    #define HAVE_MEMORY_H 1
    #define HAVE_STRINGS_H 1
    #define HAVE_INTTYPES_H 1
    #define HAVE_STDINT_H 1
    #define HAVE_UNISTD_H 1
    #define HAVE_FCNTL_H 1
    #define HAVE_STDDEF_H 1
    #define HAVE_STDLIB_H 1
    #define HAVE_STRING_H 1
    #define HAVE_SYS_PARAM_H 1
    #define HAVE_UNISTD_H 1
    #define HAVE_STDLIB_H 1
    #define HAVE_UNISTD_H 1
    #define HAVE_SYS_PARAM_H 1
    #define HAVE_GETPAGESIZE 1
    #define HAVE_MMAP 1
    #define HAVE_GETCWD 1
    #define HAVE_MEMSET 1
    #define HAVE_MKDIR 1
    #define HAVE_MUNMAP 1
    #define HAVE_SQRT 1
    #define HAVE_STRRCHR 1
    #define HAVE_DLFCN_H 1
    #define LT_OBJDIR ".libs/"
    
    configure: exit 0
    

    make

    make[2]: Leaving directory '/initrd/mnt/dev_save/data/src/vireo-master/imagecore'
    make[2]: Entering directory '/initrd/mnt/dev_save/data/src/vireo-master/vireo'
      CXX      common/libvireo_la-bitreader.lo
      CXX      common/libvireo_la-data.lo
    common/data.cpp:207:16: error: duplicate explicit instantiation of ‘class vireo::common::Data<unsigned char, unsigned int>’ [-fpermissive]
     template class Data<Y, X>;\
                    ^
    common/data.cpp:215:1: note: in expansion of macro ‘DATA_EXPLICIT_INSTANTIATION’
     DATA_EXPLICIT_INSTANTIATION(uint8_t, uint32_t); // Data32
     ^
    common/data.cpp:208:65: error: duplicate explicit instantiation of ‘void vireo::common::operator<<(std::ostream&, const vireo::common::Data<Y, X>&) [with Y = unsigned char; X = unsigned int; std::ostream = std::basic_ostream<char>]’ [-fpermissive]
     template void operator<<(std::ostream& os, const Data<Y, X>& obj);\
                                                                     ^
    common/data.cpp:215:1: note: in expansion of macro ‘DATA_EXPLICIT_INSTANTIATION’
     DATA_EXPLICIT_INSTANTIATION(uint8_t, uint32_t); // Data32
     ^
    common/data.cpp:209:58: error: duplicate explicit instantiation of ‘void vireo::common::operator<<(FILE*, const vireo::common::Data<Y, X>&) [with Y = unsigned char; X = unsigned int; FILE = _IO_FILE]’ [-fpermissive]
     template void operator<<(FILE* out, const Data<Y, X>& obj);\
                                                              ^
    common/data.cpp:215:1: note: in expansion of macro ‘DATA_EXPLICIT_INSTANTIATION’
     DATA_EXPLICIT_INSTANTIATION(uint8_t, uint32_t); // Data32
     ^
    common/data.cpp:210:59: error: duplicate explicit instantiation of ‘void vireo::common::operator<<(int, const vireo::common::Data<Y, X>&) [with Y = unsigned char; X = unsigned int]’ [-fpermissive]
     template void operator<<(int out_fd, const Data<Y, X>& obj);
                                                               ^
    common/data.cpp:215:1: note: in expansion of macro ‘DATA_EXPLICIT_INSTANTIATION’
     DATA_EXPLICIT_INSTANTIATION(uint8_t, uint32_t); // Data32
     ^
    Makefile:1324: recipe for target 'common/libvireo_la-data.lo' failed
    make[2]: *** [common/libvireo_la-data.lo] Error 1
    make[2]: Leaving directory '/initrd/mnt/dev_save/data/src/vireo-master/vireo'
    Makefile:2086: recipe for target 'all-recursive' failed
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory '/initrd/mnt/dev_save/data/src/vireo-master/vireo'
    Makefile:648: recipe for target 'all' failed
    make: *** [all] Error 2
    
  • Segmentation fault (core dumped)

    Segmentation fault (core dumped)

    Hello, I was looking for a tool to cut video without re-encoding in none key-frames and found vireo.

    I used this command to trim a video: trim "23000" "14000" "1.mp4" "3.mp4" but it gives me this output: Segmentation fault (core dumped) What is the problem?

  • Optimized 5 different buffers.

    Optimized 5 different buffers.

    Many vectors weren't being reserved where we already know the size.

    This makes the vector re-allocate(expensive) more times than necessary.

    I reserved the 5 vectors where we already knew how many elements will get pushed in.

    I also reduced the scope of audio_samples,video_samples,edit_boxes because they were declared way earlier than they are actually used. (prefer to delay declaration, as much as possible.)

    Also made edit_box a constant and a reference to save a copy cost and const because it isn't changed.

Related tags
OpenShot Video Library (libopenshot) is a free, open-source C++ library dedicated to delivering high quality video editing, animation, and playback solutions to the world

OpenShot Video Library (libopenshot) is a free, open-source C++ library dedicated to delivering high quality video editing, animation, and playback solutions to the world

Aug 11, 2022
yangwebrtc is a self-developed rtc architecture supporting Webrtc/Srt/Rtmp, including a variety of video and audio codecs and processing, etc.
yangwebrtc is a self-developed rtc architecture supporting Webrtc/Srt/Rtmp, including a variety of video and audio codecs and processing, etc.

YangWebrtc Overview yangwebrtc是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。 支持视频会议、高清录播直播、直播互动等多种视音频应用。 可用于远程教育、远程医疗、指挥调度、安防监控、影视录播、协同办公、直播互动等多种行业应用

Aug 5, 2022
Video stabilization is a software-based approach in real-time to eliminating environmental effects (wind, heavy vehicle etc.) and enhance the visual performance that degrade video streaming quality.
Video stabilization is a software-based approach in real-time to eliminating environmental effects (wind, heavy vehicle etc.) and enhance the visual performance that degrade video streaming quality.

Video Stabilization Contents General Info Installation To Do General Info Video stabilization is a software-based approach in real-time to eliminating

Mar 7, 2022
Minimalist video maker -- simplify your music score video making process!

VisualScores 极简视频制作程序,简化你的乐谱视频制作! 如果需要编译,请解压 lib 文件夹中压缩包。 使用前请参考 manual 文件夹中的用户手册。 请勿修改、移动或删除 resource 文件夹中的任何文件。 VisualScores Minimalist video maker

Jan 11, 2022
Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.
Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.

An open source video game library manager and launcher with support for 3rd party libraries like Steam, GOG, Origin, Battle.net and Uplay. Includes game emulation support, providing one unified interface for your games.

Aug 17, 2022
Color composite video code from ESP_8_BIT as an Arduino library

ESP_8_BIT Color Composite Video Out Library Purpose The composite video generation code from ESP_8_BIT extracted and packaged into a standalone Arduin

Aug 2, 2022
theora-player is an embeddable theora video player C++ library based on the libtheora sample. It has no audio support at this moment.

theora-player Description theora-player is an embeddable theora video player C++ library based on the libtheora sample. It has no audio support at thi

Jun 18, 2022
DTV is a library that provides a simple interface for generating video files from a C++ application
DTV is a library that provides a simple interface for generating video files from a C++ application

Direct to Video (DTV) What does DTV do? DTV is a library that provides a simple interface for generating video files from a C++ application. It uses F

Aug 13, 2022
Olive is a free non-linear video editor for Windows, macOS, and Linux.
Olive is a free non-linear video editor for Windows, macOS, and Linux.

Olive is a free non-linear video editor for Windows, macOS, and Linux.

Aug 8, 2022
A WFH utility to visually indicate user engagement of audio and video
A WFH utility to visually indicate user engagement of audio and video

DIY: In meeting indicator - WFH Utility The need for in meeting indicator at home So many of you have gotten accustomed to work from home by now. This

Jun 28, 2021
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

Aug 14, 2022
NymphCast is a audio and video casting system with support for custom applications.
NymphCast is a audio and video casting system with support for custom applications.

NymphCast is a software solution which turns your choice of Linux-capable hardware into an audio and video source for a television or powered speakers. It enables the streaming of audio and video over the network from a wide range of client devices, as well as the streaming of internet media to a NymphCast server, controlled by a client device.

Aug 16, 2022
SortNode is a JS binding for SORT: Simple, online, and real-time tracking of multiple objects in a video sequence.

SortNode is a JS binding for SORT: Simple, online, and real-time tracking of multiple objects in a video sequence.

Aug 2, 2022
ScanNet is an RGB-D video dataset containing 2.5 million views in more than 1500 scans, annotated with 3D camera poses, surface reconstructions, and instance-level semantic segmentations.

ScanNet is an RGB-D video dataset containing 2.5 million views in more than 1500 scans, annotated with 3D camera poses, surface reconstructions, and instance-level semantic segmentations.

Aug 12, 2022
🎬 ScreenToGif allows you to record a selected area of your screen, edit and save it as a gif or video.
🎬 ScreenToGif allows you to record a selected area of your screen, edit and save it as a gif or video.

ScreenToGif ?? screentogif.com This tool allows you to record a selected area of your screen, live feed from your webcam or live drawings from a sketc

Aug 10, 2022
Open h.265 video codec implementation.
Open h.265 video codec implementation.

libde265 - open h.265 codec implementation libde265 is an open source implementation of the h.265 video codec. It is written from scratch and has a pl

Aug 4, 2022
Video player for 3ds
Video player for 3ds

Video player for 3DS Patch note v1.0.1 Added allow skip frames option v1.0.0 Initial release Summary Video player for 3DS Performance 256x144(144p)@30

Aug 9, 2022
Plugin for VLC that pauses/plays video on mouse click

Pause Click plugin for VLC VLC plugin that allows you to pause/play a video by clicking on the video image. Can be configured to work nicely with doub

Aug 13, 2022
Real-Time Intermediate Flow Estimation for Video Frame Interpolation filter for VapourSynth

Description RIFE filter for VapourSynth, based on rife-ncnn-vulkan. Usage rife.RIFE(clip clip[, int model=0, int gpu_id=auto, int gpu_thread=2, bint t

Aug 15, 2022