Был пакет dvswitch (видео-микшер), вдруг в новом Debian решили, что он давно не обновлялся и вообще коммутировать DV-входы уже никому не нужно. Выкинули.
Ладно, решил скомпилить просто из официальных исходников.
Ok. Ищем исходники. Нашёл. https://alioth.debian.org/frs/?group_id=31092
Скачать исходник dvswitch-0.8.3.6.tar.gz от 2011 ещё года. Ого, wtf, какого ещё надо логин/пароль для скачивания?! Ну хрен с вами нашёл поиском на https://launchpad.net/ubuntu/ source/dvswitch/0.8.3.6-1.1 и скачал.
cmake и постепенно все нужные пакеты доставил и установил. Хотя отдельно замечу, что для установки всего для alsa оказалось проще всего apt-get build-dep alsa-tools иначе х.з., чего-то всё время не хватало.
Ладно, cmake отработал, получился Makefile.
make и читаем вывод.
[ 7%] Built target dvsink-command
...
[ 14%] Built target dvsink-files
...
[ 22%] Built target dvsource-alsa
...
[ 29%] Built target dvsource-dvgrab
...
[ 38%] Built target dvsource-file
...
Отлично, всё собирается, ура... И вдруг.
Scanning dependencies of target dvswitch
[ 40%] Building CXX object src/CMakeFiles/dvswitch.dir/dvswitch.o
In file included from /home/val/dvswitch/dvswitch-0.8.3.6/src/dv_display_widget.hpp:13:0,
from /home/val/dvswitch/dvswitch-0.8.3.6/src/mixer_window.hpp:21,
from /home/val/dvswitch/dvswitch-0.8.3.6/src/dvswitch.cpp:20:
/home/val/dvswitch/dvswitch-0.8.3.6/src/auto_codec.hpp:22:36: error: ‘CodecID’ was not declared in this scope
auto_codec auto_codec_open_decoder(CodecID);
И дальше ошибки. Так и хочется сказать, ну {.....} твою так перетак.
сам файл короткий
// Copyright 2008 Ben Hutchings <ben@decadent.org.uk>.
// See the file "COPYING" for licence details.
#ifndef INC_AUTO_CODEC_HPP
#define INC_AUTO_CODEC_HPP
#include "auto_handle.hpp"
#include "avcodec_wrap.h"
struct auto_codec_closer
{
void operator()(AVCodecContext * context) const;
};
struct auto_codec_factory
{
AVCodecContext * operator()() const { return 0; }
};
typedef auto_handle<AVCodecContext *, auto_codec_closer, auto_codec_factory>
auto_codec;
auto_codec auto_codec_open_decoder(CodecID);
void auto_codec_open_decoder(const auto_codec &, CodecID);
auto_codec auto_codec_open_encoder(CodecID);
void auto_codec_open_encoder(const auto_codec &, CodecID);
#endif // !INC_AUTO_CODEC_HPP
И вот по такой жаре ещё и сушить мозги выискивая где и что протухло, куда CodecID заховали и как пропатчить. Очень противно, ещё и результат не факт, что будет в течение ближайших часов. Подозреваю, что в libavcodec чего-то поменяли. Или не исключено в борьбе за соответствие стандартам gcc-4.9 чего-то не стал компилировать, что раньше компилировал. Или хотя cmake-у всего хватило, но чего-то неправильное скачал не то что надо на самом деле. Зла не хватает...