FFmpeg 3.1 adds support for OpenMAX encoding on Raspberry Pi, VA-API H.264 & H.265 Encoding, and more

FFmpeg is an open source multimedia framework used by many open source, as well as closed source, projects to handle audio and video containers parsing, hardware or software video decoding / encoding, and more. I also used it a few months ago to test H.265 hardware encoding with an Nvidia GPU using the development branch, but the developers have now released FFmpeg 3.1 “Laplace”, so it’s possible to use a stable release to perform H.265 hardware encoding. Some of the most noticeable features of the new version include: Generic OpenMAX IL H.264 & MPEG4 encoders for Raspberry Pi VA-API accelerated H.264/HEVC/MJPEG encoding VAAPI-accelerated format conversion and scaling Native Android MediaCodec API H.264 decoding CUDA (CUVID) HEVC & H.264 decoders CUDA accelerated format conversion and scaling DXVA2 accelerated HEVC Main10 decoding on Windows Many new muxers/demuxers A variety of new filters The complete list of changes for FFmpeg 3.1 can be found via the Changelog in Git. Thanks to Harley for …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

libavg on Raspberry Pi

libavg development team has recently announced a beta port of their multimedia library to the Raspberry Pi. libavg is a high-level development platform for media-centric applications using Python as scripting language and written in C++. I came to know this platform as I tried Xibo Digital Signage, and I tested it on ARM platforms. Up to know this would only work using software rendering/decoding, and everything was painfully slow on ARM, but libavg developers are now making use of OpenGL ES to boost graphics speed. More work is needed, and they intend to eventually support features such as hardware video decoding (OpenMAX possibly via gstreamer) and compressed textures. Installing libavg on Raspberry Pi. Pre-built packages are available for Raspberry, so installation is pretty straight forward: Running Samples Apps 32 samples are located in /usr/local/lib/python2.7/dist-packages/libavg/samples/ directory, and they rely on X11, so first start LXDE: Open a serial console (LXTerminal) and run one of the sample: This will show a smoothly spinning …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

XBMC for Android With Hardware Video Decoding on Telechips TCC8925 Processor

Taehyun Kim, a developer working for Inisoft (Korea), has been working on video hardware acceleration on Diceplayer for Telechips TCC8925 processor (The one used in CX-01 and Zero Devices Z900) and call this player from XBMC. He has uploaded a video to demo his progress and that’s pretty impressive. You can try it yourself by downloading and installing the following apps: xbmckor-armeabi-v7a-20120821.apk (Korean version). [Update: Kim has also uploaded the English version]. Diceplayer – Free app via Google Play You’ll also need to create a file called playercorefactory.xml in /sdcard/Android/data/org.xbmc.xbmc/files/.xbmc/userdata directory with the following content: <playercorefactory> <players> <player name=”MPC-HC” type=”ExternalPlayer” audio=”false” video=”true”> <filename>com.inisoft.mediaplayer.a</filename> <hidexbmc>true</hidexbmc> </player> </players> <rules action=”prepend”> <rule video=”true” player=”MPC-HC”/> </rules> </playercorefactory> I’ve tried it in Zero Devices Z900. The default language is Korean, but you should manage if you’re familiar with XBMC interface. When you play videos, you lose the usual XBMC interface, as those are played in Diceplayer. I haven’t connected external USB storage to the device, …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Telechips Releases Linux Kernel 3.0.8 and Android ICS Source Code

Telechips has just uploaded the GPL source code for kernel 3.0.8 and Android 4.0 to the open source section of their website. If downloading from telechips website is too slow, you can also try alternate downloads (Thanks Gabe!): Kernel-3.0.8.tar.gz Ics.tar.gz I’ve also created 2 repositories in github: telechips-linux – Linux kernel source code telechips-android – Android platform open source code (webkit + OpenMAX source code) It haven’t looked into the source code in details yet, but hopefully, this will allow developers to customize the firmware running on Telechips TCC8925 based mini PCs such as CX-01 mini Android TV Box or Zero Devices Z900. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011. http://www.cnx-software.com Support CNX Software – Donate via PayPal or become a Patron on Patreon

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Raspberry Pi OpenGL and OpenMAX IL “Hello World!” Applications

As you may already know, Raspberry Pi has released their first SD card image with Debian. This morning, I explained how to use that image in qemu. I’ve been waiting for samples to take advantage of the power Videocore GPU inside Broadcom BCM2835 SoC used in the Raspberry Pi board and the goods news is that they added Hello World code samples in C to make use of those capabilities. The sample are located in /opt/vc/src/hello_pi directory: hello_audio – Audio output demo using OpenMAX IL through the ilcient helper library hello_triangle – A rotating cube rendered with OpenGL ES with 3 images used as textures on the cube faces. hello_video – Video decode demo using OpenMAX IL through the ilcient helper library You can either compile those samples in the board or cross-compile them in your host machine. Since you need the GPU, you will obviously not be able to test those in the emulator but it’s still good to …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Raspberry Pi Codecs and Graphics/Video APIs

The Raspberry Pi Foundation has announced which codecs and API would be supported in the Raspberry Pi. The Raspberry Pi board will support the following Graphics and Video API via a set of closed source libraries that give access to the GPU acceleration features: OpenGL ES 2.0 –  OpenGL is a 3D Graphics API defined by the Khronos Group. OpenVG – OpenVG is a 2D vector drawing API also defined by the Khronos Group. EGL – EGL is the interface between Khronos rendering APIs such as OpenGL ES or OpenVG and the underlying native platform window system. OpenMAX IL – OpenMAX supplies a set of API’s that provides abstractions for routines used during audio, video, and still images processing. OpenMAX defines 3 layers, Raspberry Pi library will provide an interface to the IL layer, which provides an interface between media framework such as Gstreamer and a set of multimedia components. The first three libraries are standard in Linux, so porting …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Android NDK Revision 7 for Android 4.0 (ICS)

Google has just released Android Native Development Kit Revision 7, the Android SDK that allows developers to reuse C/C++ code. This version adds new native APIs available in Android 4.0. Here’s the changelog of the most important new features and bug fixes: NDK APIs for Android 4.0 (API level 14): Low-level streaming multimedia: A new API based on Khronos OpenMAX AL 1.0.1 provides a direct, efficient path for low-level streaming multimedia. The new path is ideal for applications that need to maintain complete control over media data before passing it to the platform for presentation. Audio decoding into PCM: Extensions to the existing native audio API based on Khronos OpenSL ES let native apps decode compressed audio assets to PCM format. CCache support to allow faster rebuilds. Added support for setting APP_ABI to all to indicate that you want to build your NDK modules for all the ABIs supported by your given NDK release. Imported shared libraries are now installed …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

OpenMAX (Open Media Acceleration)

OpenMAX (Open Media Acceleration) is a royalty-free, cross-platform set of C-language programming interfaces that provides abstractions for routines especially useful for audio, video, and still images. OpenMAX standard is managed by the non-profit technology consortium Khronos Group. OpenMAX allows developers to take advantages of hardware media decoding/encoding. For example, If you want to play video using Raspberry Pi hardware (VideoCore IV GPU in Broadcom BCM2835) you’ll have to use OpenMAX IL. OpenMAX provides three layers of interfaces: Application Layer (AL): Open standard for accelerating the capture, and presentation of audio, video, and images in multimedia applications on embedded and mobile devices. Integration Layer (IL) : API defining a standardized media component interface to enable developers and platform providers to integrate and communicate with multimedia codecs implemented in hardware or software. Development Layer (DL): APIs containing a comprehensive set of audio, video and imaging functions that can be implemented and optimized on new CPUs , hardware engines, and DSPs and then …

Support CNX Software – Donate via PayPal or become a Patron on Patreon