All posts by romain bouqueau

5000th commit, 10 years of open-source software

Dear followers,

We are happy to celebrate the 5000th commit on the GPAC codebase.

GPAC is an adventure started by Jean Le Feuvre in 2000. It has been made open-source in 2003. Since then GPAC has grown regularly to provide you with new features around multimedia and streaming : )

It can now package MP4 and MPEG2-TS using MP4Box and MP42TS, stream with the DASH, HLS, RTP, … protocols , and play back with Osmo4 on many platforms (desktop, mobile, embedded). We even have a live transcoder named DashCast!

2013 has also been an important year for our professional users. They are now able to get professional licensing and services using GPAC Licensing. Don’t worry, GPAC will remain open-source software : )

According to the analytics site ohloh.net, GPAC has over 650k lines of code and has needed 177 years of effort!

20140122_gpac_stats

If you are interested in statistics, you can read this.

The GPAC team

The SVN repository was moved!

Dear users,

Editor’s note: GPAC source is now hosted on Github!

For maintenance and upgrade reasons, our host SourceForge has migrated GPAC to its new platform. You may see some changes in the forums but you’ll likely see that ‘svn update’ stays stucked at revision 4614.

Please ensure you have changed your local repository by following this tutorial: https://sourceforge.net/p/forge/community-docs/Repository%20Upgrade%20FAQ/#how-do-i-change-svn-to-point-to-the-new-repo .

For most users, this command will make the deal:

svn relocate svn://svn.code.sf.net/p/gpac/code/trunk/gpac

To check out GPAC:

svn co svn://svn.code.sf.net/p/gpac/code/trunk/gpac gpac

Sorry for the inconvenience. Please use our forums if needed.

Thanks,

Romain

JPEG support for Android: resolving libjpeg.so conflicts

When porting GPAC to Android (2.3 as of today), we’ve been facing a very strange and annoying problem: JPEG images didn’t load, and libjpeg was outputing the following message:

JPEG parameter struct mismatch: library thinks size is 480,
 caller expects 520

We couldn’t find any relevant help on the Web. Discussions always ended up with no response or even some “you don’t understand what you’re doing”. The thing is we have understood and solved the problem.

First, the GPAC Android package (generated as mentionned in the README.txt file) does contain its own libjpeg.so file. The libjpeg.so file is generated from the extra_libs package. When running the Android Osmo4 player within the Eclipse debugger, the Dalvik console prints the following message:

INFO/LibrariesLoader(294): Loading library jpeg...
DEBUG/dalvikvm(294): No JNI_OnLoad found in
  /data/data/com.gpac.Osmo4/lib/libjpeg.so 0x44ede8f0, skipping init
DEBUG/dalvikvm(294): Added shared lib
  /data/data/com.gpac.Osmo4/lib/libjpeg.so 0x44ede8f0

Don’t trust it.

There is a conflict between your local libraries and the ones provided by Android. Google’s dynamic libraries are always loaded first as of Android 2.3. This is annoying because this affects numerous programs and also other dynamic libraries (such as zlib, libpng, …). We could confirm our hypothesis by changing the error messages printed by our own libjpeg.so: it didn’t match the error message showing in the Dalvik console.

The best solution we found is to rename the dynamic library to a non-usual name. libjpeg.so is now named libjpegdroid.so for the GPAC package.

You can find more info on GPAC running on Android from here or watch the following video:

[youtube]http://www.youtube.com/watch?v=himalbWpga4[/youtube]

Romain Bouqueau, Stephane Thomas