FS#51223 - [linphone] missing support for codec g729

Attached to Project: Community Packages
Opened by Antonio (asilva) - Tuesday, 04 October 2016, 10:09 GMT
Last edited by Sergej Pupykin (sergej) - Friday, 02 December 2016, 11:22 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Sergej Pupykin (sergej)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:

Is not possible to select the codec g729 in linphone codec list.

I manually try to create the symlinks that were missing to the the version on the system... but no success, at the end it just crash:

linphone-message : Loading plugin /usr/lib/mediastreamer/plugins/libmsbcg729.so...
linphone-error : ms_filter_register(): registration of 'MSBCG729Enc' filter has failed: no fallback factory has been defined
linphone-error : ms_filter_register(): registration of 'MSBCG729Dec' filter has failed: no fallback factory has been defined

** (linphone:4752): ERROR **: Bad level !
Trace/breakpoint trap (core dumped)

The links i manually create:

ln -s libmediastreamer_base.so.7.0.0 libmediastreamer_base.so.6
ln -s libmediastreamer_voip.so.7.0.0 libmediastreamer_voip.so.6
ln -s libortp.so.11.0.0 libortp.so.10



Additional info:
- linphone 3.10.2-1
- bcg729 1.0.1-2
- mediastreamer 2.14.0-1

Steps to reproduce:

linphone --verbose

...
linphone-message : Loading ms plugins from [/usr/lib/mediastreamer/plugins]
linphone-message : Loading plugin /usr/lib/mediastreamer/plugins/libmsbcg729.so...
linphone-warning : Fail to load plugin /usr/lib/mediastreamer/plugins/libmsbcg729.so : libmediastreamer_base.so.6: cannot open shared object file: No such file or directory


This task depends upon

Closed by  Sergej Pupykin (sergej)
Friday, 02 December 2016, 11:22 GMT
Reason for closing:  Fixed
Comment by Sergej Pupykin (sergej) - Tuesday, 04 October 2016, 11:07 GMT
Please try bcg729 1.0.1-3
Comment by Antonio (asilva) - Wednesday, 05 October 2016, 18:39 GMT
it solves part of the issue... i still can't see the codec g729 in the codec list...

The output when starting with verbose (filtered only g729 messages):

linphone-message : Loading plugin /usr/lib/mediastreamer/plugins/libmsbcg729.so...
linphone-error : ms_filter_register(): registration of 'MSBCG729Enc' filter has failed: no fallback factory has been defined
linphone-error : ms_filter_register(): registration of 'MSBCG729Dec' filter has failed: no fallback factory has been defined
linphone-message : libmsbcg729 debug plugin loaded
linphone-message : Plugin loaded (/usr/lib/mediastreamer/plugins/libmsbcg729.so)

...

linphone-message : Codec G729/8000 fmtp=[annexb=no] number=18, enabled=0) added to the list of possible codecs.
...
linphone-message : Could not find encoder for G729
linphone-message : Could not find decoder for G729


Comment by Thiago Coutinho (thiagoc) - Thursday, 01 December 2016, 20:52 GMT
@asilva do you know some workaround for this?
Comment by Antonio (asilva) - Thursday, 01 December 2016, 21:27 GMT
Yes, i manually compile it and replace the one installed by pkg bcg729:

git clone https://github.com/BelledonneCommunications/bcg729.git
cd bcg729/
./autogen.sh
./configure
make
make install
cd /usr/lib/mediastreamer/plugins/
rm -rf plugins
ln -s /usr/local/lib/mediastreamer/plugins
Comment by Thiago Coutinho (thiagoc) - Friday, 02 December 2016, 11:06 GMT
Thanks, it worked. I've created a package based on the original PKGBUILD:

```
# $Id$
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>

pkgname=bcg729
pkgver=1.0.2
pkgrel=1
pkgdesc="g729 codec"
arch=('i686' 'x86_64')
url="http://www.linphone.org/eng/documentation/dev/bcg729.html"
license=('GPL')
depends=('mediastreamer')
validpgpkeys=('9774BC1725758EB16D639F8B3ECD52DEE2F56985')
source=(https://download-mirror.savannah.gnu.org/releases/linphone/plugins/sources/$pkgname-$pkgver.tar.gz
"$pkgname-old-api.patch::https://bugs.archlinux.org/task/47938?getfile=13790")
md5sums=('2a3d9b422912024f97a41e56e9e3d357'
'a7139d23ecc928e94715b11c90b460d2')

#prepare() {
# cd $pkgname-$pkgver
# patch -p1 -i "$srcdir"/$pkgname-old-api.patch
#}

build() {
cd $pkgname-$pkgver
./configure --prefix=/usr --disable-strict
make
}

package() {
cd $pkgname-$pkgver
make DESTDIR="$pkgdir/" install
}
```

Loading...