Linphone (Опять не собирается с видео)

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Archangel
Сообщения: 431
ОС: Slackware64-14.1

Linphone

Сообщение Archangel »

linphone опять не хочет собираться, Без видео собрался, а если выставить VIDEO=yes:

Код: Выделить всё

videoenc.c: В функции «ms_ffmpeg_check_init»:
videoenc.c:56:3: предупреждение: неявная декларация функции «avcodec_init» [-Wimplicit-function-declaration]
videoenc.c: В функции «prepare»:
videoenc.c:239:2: предупреждение: «avcodec_get_context_defaults» is deprecated (declared at /usr/include/libavcodec/avcodec.h:3260) [-Wdeprecated-declarations]
videoenc.c: В функции «prepare_h263»:
videoenc.c:303:13: ошибка: «CODEC_FLAG_H263P_UMV» undeclared (first use in this function)
videoenc.c:303:13: замечание: each undeclared identifier is reported only once for each function it appears in
videoenc.c:305:13: ошибка: «CODEC_FLAG_H263P_SLICE_STRUCT» undeclared (first use in this function)
videoenc.c: В функции «enc_preprocess»:
videoenc.c:345:2: предупреждение: «avcodec_open» is deprecated (declared at /usr/include/libavcodec/avcodec.h:3380) [-Wdeprecated-declarations]
videoenc.c: В функции «add_rfc2190_header»:
videoenc.c:375:41: ошибка: «FF_I_TYPE» undeclared (first use in this function)
videoenc.c: В функции «process_frame»:
videoenc.c:782:18: ошибка: «FF_I_TYPE» undeclared (first use in this function)
videoenc.c:794:2: предупреждение: «avcodec_encode_video» is deprecated (declared at /usr/include/libavcodec/avcodec.h:4077) [-Wdeprecated-declarations]
make[5]: *** [videoenc.lo] Ошибка 1
make[5]: Выход из каталога `/tmp/SBo/linphone-3.5.2/mediastreamer2/src'
make[4]: *** [all] Ошибка 2
make[4]: Выход из каталога `/tmp/SBo/linphone-3.5.2/mediastreamer2/src'
make[3]: *** [all-recursive] Ошибка 1
make[3]: Выход из каталога `/tmp/SBo/linphone-3.5.2/mediastreamer2'
make[2]: *** [all] Ошибка 2
make[2]: Выход из каталога `/tmp/SBo/linphone-3.5.2/mediastreamer2'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Выход из каталога `/tmp/SBo/linphone-3.5.2'
make: *** [all] Ошибка 2

ЗЫ Еще есть вопрос, немного не по теме. Когда запускаю SIP, при попытке авторизации, выбивает wi-fi на роутере. Независимо от того запускаю я SIP с мобильного или компьютера, в течении около 30 сек, никто не может подключится к роутеру. Потом свзь восстанавливается, если не попробовать повторно установить соединение. Пользуюсь SIP номером от Укртелекома, но провайдер не Укртелеком. Был в Европе в гостиницах вроде без проблем работало. В чем может быть проблема?
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: Linphone

Сообщение yars »

По первому вопросу - есть неразрешенные зависимости сборки. libavcodec требует либо обновления, либо параллельной установки куда-нибудь в /opt, с последующим подключением при сборке. Попробуйте с указанием LD_LIBRARY_PATH и PKG_CONFIG_PATH после того, как соберете свежую версию libavcodec.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
Archangel
Сообщения: 431
ОС: Slackware64-14.1

Re: Linphone

Сообщение Archangel »

Там для сборки с поддержкой видео требуется ffmpeg. ffmpeg у меня установлен, но может его нужно пересобрать в другой конфигурации?
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: Linphone

Сообщение yars »

ffmpeg у вас устаревший, с точки зрения linphone.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Linphone

Сообщение bormant »

yars писал(а):
22.12.2012 17:54
ffmpeg у вас устаревший, с точки зрения linphone.

Нет. Если правильно путаю, наоборот, слишком свежий.

Wed, 31 Aug 2011 11:28:26 +0000 (13:28 +0200)
Deprecate CODEC_FLAG_H263P_SLICE_STRUCT
http://git.videolan.org/gitweb.cgi/ffmpeg....66ad91e497d7184

и затем
Fri, 27 Jan 2012 09:38:33 +0000 (10:38 +0100)
lavc: remove disabled FF_API_MPEGVIDEO_GLOBAL_OPTS cruft.
http://git.videolan.org/gitweb.cgi/ffmpeg....5317d786a3f38d8
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Linphone

Сообщение bormant »

Вот с этим оно по крайней мере соберётся, но заработает ли, не знаю, проверяйте, рассказывайте.

Код: Выделить всё

$  cat mpeg-dirty.diff
diff -ru linphone-3.5.2/mediastreamer2/src/h264dec.c linphone-3.5.2/mediastreamer2/src/h264dec.c
--- linphone-3.5.2/mediastreamer2/src/h264dec.c    2012-02-22 15:54:58.000000000 +0400
+++ linphone-3.5.2/mediastreamer2/src/h264dec.c    2012-12-22 21:11:27.951128175 +0400
@@ -44,7 +44,7 @@
 static void ffmpeg_init(){
     static bool_t done=FALSE;
     if (!done){
-        avcodec_init();
+        //avcodec_init();
         avcodec_register_all();
         done=TRUE;
     }
diff -ru linphone-3.5.2/mediastreamer2/src/videoenc.c linphone-3.5.2/mediastreamer2/src/videoenc.c
--- linphone-3.5.2/mediastreamer2/src/videoenc.c    2012-02-22 15:54:58.000000000 +0400
+++ linphone-3.5.2/mediastreamer2/src/videoenc.c    2012-12-22 21:10:44.577670418 +0400
@@ -53,7 +53,7 @@

 void ms_ffmpeg_check_init(){
     if(!avcodec_initialized){
-        avcodec_init();
+        //avcodec_init();
         avcodec_register_all();
         avcodec_initialized=TRUE;
 #ifdef ENABLE_LOG_FFMPEG
@@ -300,10 +300,10 @@
     if (s->profile==0){
         s->codec=CODEC_ID_H263;
     }else{
-        c->flags|=CODEC_FLAG_H263P_UMV;
         c->flags|=CODEC_FLAG_AC_PRED;
-        c->flags|=CODEC_FLAG_H263P_SLICE_STRUCT;
         /*
+        c->flags|=CODEC_FLAG_H263P_UMV;
+        c->flags|=CODEC_FLAG_H263P_SLICE_STRUCT;
         c->flags|=CODEC_FLAG_OBMC;
         c->flags|=CODEC_FLAG_AC_PRED;
         */
@@ -372,7 +372,7 @@
     // assume video size is CIF or QCIF
     if (context->width == 352 && context->height == 288) header->b_wptr[1] = 0x60;
     else header->b_wptr[1] = 0x40;
-    if (context->coded_frame->pict_type != FF_I_TYPE) header->b_wptr[1] |= 0x10;
+    if (context->coded_frame->pict_type != AV_PICTURE_TYPE_I) header->b_wptr[1] |= 0x10;
     header->b_wptr += 4;
     header->b_cont = *packet;
     *packet = header;
@@ -779,7 +779,7 @@
         s->req_vfu=TRUE;
     }
     if (s->req_vfu){
-        pict.pict_type=FF_I_TYPE;
+        pict.pict_type=AV_PICTURE_TYPE_I;
         s->req_vfu=FALSE;
     }
     comp_buf->b_rptr=comp_buf->b_wptr=comp_buf->b_datap->db_base;
@@ -799,7 +799,7 @@
         if (s->framenum==1){
             video_starter_first_frame (&s->starter,f->ticker->time);
         }
-        if (c->coded_frame->pict_type==FF_I_TYPE){
+        if (c->coded_frame->pict_type==AV_PICTURE_TYPE_I){
             ms_message("Emitting I-frame");
         }
         comp_buf->b_wptr+=error;


Другие варианты: откатывать ffmpeg до совместимой версии или смотреть, нет ли у кого в разработке изменений linphone под свежий ffmpeg.
Спасибо сказали:
Аватара пользователя
Archangel
Сообщения: 431
ОС: Slackware64-14.1

Re: Linphone

Сообщение Archangel »

Вроде как пересобрал и установил, linphone работает, но видео так и нет.

PS Откатывать ffmpeg - не хотелось бы, потому как может где-то вылезти зависимость именно этой версии. Посмотрю лучше как бы linphone под него доточить, попробую глянуть как в других дистрибутивах это работает.
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: Linphone

Сообщение yars »

Можно поставить два пакета разных версий, но не знаю, насколько это хорошая (плохая) идея. Я так делал, но тут не уверен, может быть, что у ffmpeg в этом плане есть специфика. Один пакет стоит по стандартным путям, другой - в /opt/packagename.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
Archangel
Сообщения: 431
ОС: Slackware64-14.1

Re: Linphone

Сообщение Archangel »

Думаю стоит спросить на linuxquestions, может там аксакалы наставят на путь истинный. Смотрю в убунте(точнее в минте), работает без установки ffmpeg. Правда там используется libavcodec.so.53.45.0, а у нас libavcodec.so.54.23.100. Как я понял, там ушли от ffmpeg к libav.

PS Кстати, вопрос с обрывами при посылке авторизации решился. Оказалось кривая прошивка была у Dlink'a, обновил стало нормально. А так при первом пакете sip - роутер уходил в глухую оборону на 30 сек.
Спасибо сказали:
Ответить